Change the way of fetching data from datastore and write user's intents into datastor...
[nemo.git] / nemo-impl / src / main / java / org / opendaylight / nemo / user / vnspacemanager / structurestyle / deleteintent / DeleteOperation.java
index 5d9a0c9aed8bb7225361c45367d0d8b06e74ae51..c3998241034fd66dc5e1bfddbfcfc60fac7ff330 100644 (file)
@@ -9,91 +9,40 @@ package org.opendaylight.nemo.user.vnspacemanager.structurestyle.deleteintent;
 \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