\r
import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
+import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOConstants;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.OperationId;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Operations;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.OperationKey;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;\r
-import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;\r
-import com.google.common.util.concurrent.CheckedFuture;\r
-import com.google.common.util.concurrent.FutureCallback;\r
-import com.google.common.util.concurrent.Futures;\r
-import org.slf4j.Logger;\r
-import org.slf4j.LoggerFactory;\r
-\r
-import java.util.List;\r
\r
/**\r
* Created by z00293636 on 2015/9/2.\r
*/\r
public class DeleteOperation {\r
-\r
- private DataBroker dataBroker;\r
private TenantManage tenantManage;\r
- private static final Logger LOG = LoggerFactory.getLogger(DeleteOperation.class);\r
\r
public DeleteOperation(DataBroker dataBroker, TenantManage tenantManage){\r
- this.dataBroker = dataBroker;\r
this.tenantManage = tenantManage;\r
}\r
\r
public String DeleteOperationhandling(UserId userId, OperationId operationId){\r
- Boolean OperationExist = false;\r
- String errorInfo = null;\r
- tenantManage.fetchVNSpace(userId);\r
- User user = tenantManage.getUser();\r
+ Boolean operationExist = false;\r
\r
- if (user != null){\r
- if (user.getOperations() != null){\r
- if (user.getOperations().getOperation() != null){\r
- List<Operation> operationList = tenantManage.getUser().getOperations().getOperation();\r
- for (Operation operation : operationList){\r
- if (operation.getOperationId().equals(operationId)){\r
- OperationExist = true;\r
- break;\r
- }\r
- }\r
- if (OperationExist){\r
- DeleteOperationInstance(userId,operationId);\r
- }\r
- else{\r
- errorInfo = "The operation instance " +operationId.getValue()+" is not exist. Could not be deleted.";\r
- }\r
- }\r
- else{\r
- errorInfo = "There are no operation instances in the data store.";\r
- }\r
+ if (tenantManage.getOperation(userId)!=null){\r
+ if (tenantManage.getOperation(userId).containsKey(operationId)){\r
+ operationExist = true;\r
+ tenantManage.getOperation(userId).remove(operationId);\r
+ tenantManage.getUserNameIdMap(userId).remove(tenantManage.getName(userId,operationId.getValue()));\r
}\r
}\r
- else{\r
- errorInfo = "There are no user in the data store.";\r
- }\r
- return errorInfo;\r
- }\r
-\r
- private void DeleteOperationInstance(UserId userId, OperationId operationId){\r
- WriteTransaction t = dataBroker.newWriteOnlyTransaction();\r
- UserKey userKey = new UserKey(userId);\r
- OperationKey operationKey = new OperationKey(operationId);\r
-\r
- InstanceIdentifier<Operation> operationid = InstanceIdentifier.builder(Users.class).child(User.class, userKey).child(Operations.class).child(Operation.class,operationKey).build();\r
- t.delete(LogicalDatastoreType.CONFIGURATION, operationid);\r
- CheckedFuture<Void, TransactionCommitFailedException> f = t.submit();\r
- Futures.addCallback(f, new FutureCallback<Void>() {\r
- @Override\r
- public void onFailure(Throwable t) {\r
- LOG.error("Could not write endpoint base container", t);\r
- }\r
-\r
- @Override\r
- public void onSuccess(Void result) {\r
+ if (tenantManage.getOperationDataStore(userId)!=null){\r
+ if (tenantManage.getOperationDataStore(userId).containsKey(operationId)){\r
+ operationExist = true;\r
+ tenantManage.setUserDeleteIntent(userId, NEMOConstants.operation, operationId.getValue());\r
+ tenantManage.getUserNameIdMap(userId).remove(tenantManage.getName(userId,operationId.getValue()));\r
}\r
- });\r
+ }\r
+ if (!operationExist){\r
+ return "The operation instance " +operationId.getValue()+" is not exist.";\r
+ }\r
+ return null;\r
}\r
}\r