Fixed as per comments group and meter
[controller.git] / opendaylight / md-sal / forwardingrules-manager / src / main / java / org / opendaylight / controller / forwardingrulesmanager / consumer / impl / GroupConsumerImpl.java
index 714ac89ba13ccf66f3de6e211276d2aace61aba9..7d16cb5b428452dfa25e110ebbc7ad795c298a18 100644 (file)
@@ -35,15 +35,13 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.Gro
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.GroupRemoved;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.GroupUpdated;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroupInputBuilder;
-
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.SalGroupListener;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.SalGroupService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroupInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.group.update.UpdatedGroupBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupTypes.GroupType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupTypes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.Buckets;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.config.rev131024.meters.Meter;
 import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
@@ -60,7 +58,7 @@ public class GroupConsumerImpl implements IForwardingRulesManager {
     private final GroupEventListener groupEventListener = new GroupEventListener();
     private Registration<NotificationListener> groupListener;
     private SalGroupService groupService;
-    private GroupDataCommitHandler commitHandler;
+    private GroupDataCommitHandler groupCommitHandler;
 
     private ConcurrentMap<GroupKey, Group> originalSwGroupView;
     private ConcurrentMap<GroupKey, Group> installedSwGroupView;
@@ -73,13 +71,9 @@ public class GroupConsumerImpl implements IForwardingRulesManager {
 
     public GroupConsumerImpl() {
 
-        InstanceIdentifier<? extends DataObject> path = InstanceIdentifier.builder(Groups.class).child(Group.class)
-                .toInstance();
+        InstanceIdentifier<? extends DataObject> path = InstanceIdentifier.builder(Groups.class).toInstance();
         groupService = FRMConsumerImpl.getProviderSession().getRpcService(SalGroupService.class);
 
-        clusterGroupContainerService = FRMConsumerImpl.getClusterContainerService();
-        container = FRMConsumerImpl.getContainer();
-
         if (!(cacheStartup())) {
             logger.error("Unanle to allocate/retrieve group cache");
             System.out.println("Unable to allocate/retrieve group cache");
@@ -100,8 +94,10 @@ public class GroupConsumerImpl implements IForwardingRulesManager {
             return;
         }
 
-        commitHandler = new GroupDataCommitHandler();
-        FRMConsumerImpl.getDataProviderService().registerCommitHandler(path, commitHandler);
+        groupCommitHandler = new GroupDataCommitHandler();
+        FRMConsumerImpl.getDataProviderService().registerCommitHandler(path, groupCommitHandler);
+        clusterGroupContainerService = FRMConsumerImpl.getClusterContainerService();
+        container = FRMConsumerImpl.getContainer();
     }
 
     private boolean allocateGroupCaches() {
@@ -223,25 +219,15 @@ public class GroupConsumerImpl implements IForwardingRulesManager {
                 logger.error("Container Name is invalid %s" + containerName);
                 return new Status(StatusCode.BADREQUEST, "Container Name is invalid");
             }
-
+            
             groupName = group.getGroupName();
             if (!FRMUtil.isNameValid(groupName)) {
                 logger.error("Group Name is invalid %s" + groupName);
                 return new Status(StatusCode.BADREQUEST, "Group Name is invalid");
             }
-
-           /* returnResult = doesGroupEntryExists(group.getKey(), groupName, containerName);
-
-            if (FRMUtil.operation.ADD == operation && returnResult) {
-                logger.error("Record with same Group Name exists");
-                return new Status(StatusCode.BADREQUEST, "Group record exists");
-            } else if (!returnResult) {
-                logger.error("Group record does not exist");
-                return new Status(StatusCode.BADREQUEST, "Group record does not exist");
-            }*/
-
-            if (!(group.getGroupType().getIntValue() >= GroupType.GroupAll.getIntValue() && group.getGroupType()
-                    .getIntValue() <= GroupType.GroupFf.getIntValue())) {
+            
+            if (!(group.getGroupType().getIntValue() >= GroupTypes.GroupAll.getIntValue() && group.getGroupType()
+                    .getIntValue() <= GroupTypes.GroupFf.getIntValue())) {
                 logger.error("Invalid Group type %d" + group.getGroupType().getIntValue());
                 return new Status(StatusCode.BADREQUEST, "Invalid Group type");
             }
@@ -261,24 +247,8 @@ public class GroupConsumerImpl implements IForwardingRulesManager {
         }
 
         return new Status(StatusCode.SUCCESS);
-
     }
 
-   /* private boolean doesGroupEntryExists(GroupKey key, String groupName, String containerName) {
-        if (!originalSwGroupView.containsKey(key)) {
-            return false;
-        }
-
-        for (ConcurrentMap.Entry<GroupKey, Group> entry : originalSwGroupView.entrySet()) {
-            if (entry.getValue().getGroupName().equals(groupName)) {
-                if (entry.getValue().getContainerName().equals(containerName)) {
-                    return true;
-                }
-            }
-        }
-        return true;
-    }*/
-
     /**
      * Update Group entries to the southbound plugin/inventory and our internal
      * database
@@ -296,27 +266,12 @@ public class GroupConsumerImpl implements IForwardingRulesManager {
             logger.error("Group data object validation failed %s" + groupUpdateDataObject.getGroupName());
             return groupOperationStatus;
         }
-
-        /*if (originalSwGroupView.containsKey(groupKey)) {
-            originalSwGroupView.remove(groupKey);
-            originalSwGroupView.put(groupKey, groupUpdateDataObject);
-        }
-*/
-        if (groupUpdateDataObject.isInstall()) {
-            UpdateGroupInputBuilder groupData = new UpdateGroupInputBuilder();
-            updateGroupBuilder = new UpdatedGroupBuilder();
-            updateGroupBuilder.fieldsFrom(groupUpdateDataObject);
-            groupData.setUpdatedGroup(updateGroupBuilder.build());
-            // TODO how to get original group and modified group.
-
-          /*  if (installedSwGroupView.containsKey(groupKey)) {
-                installedSwGroupView.remove(groupKey);
-                installedSwGroupView.put(groupKey, groupUpdateDataObject);
-            }*/
-
-            groupService.updateGroup(groupData.build());
-        }
-
+        
+        UpdateGroupInputBuilder groupData = new UpdateGroupInputBuilder();
+        updateGroupBuilder = new UpdatedGroupBuilder();
+        updateGroupBuilder.fieldsFrom(groupUpdateDataObject);
+        groupData.setUpdatedGroup(updateGroupBuilder.build());        
+        groupService.updateGroup(groupData.build());
         return groupOperationStatus;
     }
 
@@ -334,20 +289,14 @@ public class GroupConsumerImpl implements IForwardingRulesManager {
             logger.error("Group data object validation failed %s" + groupAddDataObject.getGroupName());
             return groupOperationStatus;
         }
-
-        //originalSwGroupView.put(groupKey, groupAddDataObject);
-
-        if (groupAddDataObject.isInstall()) {
-            AddGroupInputBuilder groupData = new AddGroupInputBuilder();
-            groupData.setBuckets(groupAddDataObject.getBuckets());
-            groupData.setContainerName(groupAddDataObject.getContainerName());
-            groupData.setGroupId(groupAddDataObject.getGroupId());
-            groupData.setGroupType(groupAddDataObject.getGroupType());
-            groupData.setNode(groupAddDataObject.getNode());
-        //   installedSwGroupView.put(groupKey, groupAddDataObject);
-            groupService.addGroup(groupData.build());
-        }
-
+        
+        AddGroupInputBuilder groupData = new AddGroupInputBuilder();
+        groupData.setBuckets(groupAddDataObject.getBuckets());
+        groupData.setContainerName(groupAddDataObject.getContainerName());
+        groupData.setGroupId(groupAddDataObject.getGroupId());
+        groupData.setGroupType(groupAddDataObject.getGroupType());
+        groupData.setNode(groupAddDataObject.getNode());    
+        groupService.addGroup(groupData.build());
         return groupOperationStatus;
     }
 
@@ -365,19 +314,14 @@ public class GroupConsumerImpl implements IForwardingRulesManager {
             logger.error("Group data object validation failed %s" + groupRemoveDataObject.getGroupName());
             return groupOperationStatus;
         }
-        //originalSwGroupView.put(groupKey, groupAddDataObject);
-
-        if (groupRemoveDataObject.isInstall()) {
-            RemoveGroupInputBuilder groupData = new RemoveGroupInputBuilder();
-            groupData.setBuckets(groupRemoveDataObject.getBuckets());
-            groupData.setContainerName(groupRemoveDataObject.getContainerName());
-            groupData.setGroupId(groupRemoveDataObject.getGroupId());
-            groupData.setGroupType(groupRemoveDataObject.getGroupType());
-            groupData.setNode(groupRemoveDataObject.getNode());
-        //   installedSwGroupView.put(groupKey, groupAddDataObject);
-            groupService.removeGroup(groupData.build());
-        }
-
+       
+        RemoveGroupInputBuilder groupData = new RemoveGroupInputBuilder();
+        groupData.setBuckets(groupRemoveDataObject.getBuckets());
+        groupData.setContainerName(groupRemoveDataObject.getContainerName());
+        groupData.setGroupId(groupRemoveDataObject.getGroupId());
+        groupData.setGroupType(groupRemoveDataObject.getGroupType());
+        groupData.setNode(groupRemoveDataObject.getNode());    
+        groupService.removeGroup(groupData.build());  
         return groupOperationStatus;
     }
     
@@ -408,7 +352,7 @@ public class GroupConsumerImpl implements IForwardingRulesManager {
                        }
         }
 
-        return Rpcs.getRpcResult(true, null, null);
+        return Rpcs.getRpcResult(true, null, Collections.<RpcError>emptySet());
     }
 
     private final class GroupDataCommitHandler implements DataCommitHandler<InstanceIdentifier<?>, DataObject> {
@@ -509,7 +453,6 @@ public class GroupConsumerImpl implements IForwardingRulesManager {
 
         @Override
         public void onGroupAdded(GroupAdded notification) {
-            System.out.println("added Group..........................");
             addedGroups.add(notification);
         }