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;
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;
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");
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() {
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");
}
}
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
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;
}
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;
}
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;
}
}
}
- return Rpcs.getRpcResult(true, null, null);
+ return Rpcs.getRpcResult(true, null, Collections.<RpcError>emptySet());
}
private final class GroupDataCommitHandler implements DataCommitHandler<InstanceIdentifier<?>, DataObject> {
@Override
public void onGroupAdded(GroupAdded notification) {
- System.out.println("added Group..........................");
addedGroups.add(notification);
}