--- /dev/null
+/*
+ * Copyright (c) 2016 Inocybe Technologies. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.aaa.cli.dmstore;
+
+import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Option;
+import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.opendaylight.aaa.api.IIDMStore;
+import org.opendaylight.aaa.cli.AaaCliAbstractCommand;
+import org.opendaylight.aaa.cli.utils.CliUtils;
+import org.opendaylight.aaa.cli.utils.DataStoreUtils;
+
+@Command(name = "remove-role", scope = "aaa", description = "Remove role.")
+
+/**
+ * @author mserngawy
+ *
+ */
+public class RemoveRole extends AaaCliAbstractCommand {
+
+ @Option(name = "-name",
+ aliases = { "--roleName" },
+ description = "The role name",
+ required = true,
+ multiValued = false)
+ private String roleName = "";
+
+ public RemoveRole(final IIDMStore identityStore) {
+ super(identityStore);
+ }
+
+ @Override
+ protected Object doExecute() throws Exception {
+ if (super.doExecute() == null) {
+ return CliUtils.LOGIN_FAILED_MESS;
+ }
+ final String roleId = DataStoreUtils.getRoleId(identityStore, roleName);
+ if (roleId == null) {
+ return "Role does not exist";
+ }
+ if (identityStore.deleteUser(roleId) == null) {
+ return "Failed to delete role " + roleName;
+ }
+ return "Role " + roleName + "has been deleted.";
+ }
+}