X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fcontainermanager%2Fimplementation%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcontainermanager%2Finternal%2FContainerManager.java;h=98378e81354742327e912199a44619febbaa5905;hp=0fee183b67b8c1be06725b310c4111fbf3f9f8a8;hb=839cdfb56df36d689cd249b6fc51e85cd0bf81ac;hpb=fa1fa1e80351e6f86e81f95d5c50a0521d0cbb93 diff --git a/opendaylight/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerManager.java b/opendaylight/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerManager.java index 0fee183b67..98378e8135 100644 --- a/opendaylight/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerManager.java +++ b/opendaylight/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerManager.java @@ -44,6 +44,7 @@ import org.opendaylight.controller.containermanager.ContainerFlowChangeEvent; import org.opendaylight.controller.containermanager.ContainerFlowConfig; import org.opendaylight.controller.containermanager.IContainerAuthorization; import org.opendaylight.controller.containermanager.IContainerManager; +import org.opendaylight.controller.containermanager.IContainerManagerShell; import org.opendaylight.controller.containermanager.NodeConnectorsChangeEvent; import org.opendaylight.controller.sal.authorization.AppRoleLevel; import org.opendaylight.controller.sal.authorization.Privilege; @@ -71,7 +72,7 @@ import org.slf4j.LoggerFactory; public class ContainerManager extends Authorization implements IContainerManager, IObjectReader, CommandProvider, ICacheUpdateAware, IContainerInternal, IContainerAuthorization, - IConfigurationAware { + IConfigurationAware, IContainerManagerShell { private static final Logger logger = LoggerFactory.getLogger(ContainerManager.class); private static String CONTAINERS_FILE_NAME = "containers.conf"; private static final String allContainersGroup = "allContainers"; @@ -1619,4 +1620,286 @@ public class ContainerManager extends Authorization implements IContaine public boolean inContainerMode() { return this.containerConfigs.size() > 0; } + + public List psc() { + List result = new ArrayList(); + for (Map.Entry entry : containerConfigs.entrySet()) { + ContainerConfig sc = entry.getValue(); + result.add(String.format("%s: %s", sc.getContainerName(), sc.toString())); + } + result.add("Total number of containers: " + containerConfigs.entrySet().size()); + return result; + } + + public List pfc() { + List result = new ArrayList(); + for (Map.Entry entry : containerConfigs.entrySet()) { + ContainerConfig sc = entry.getValue(); + result.add(String.format("%s: %s", sc.getContainerName(), sc.getContainerFlowConfigs())); + } + return result; + } + + public List psd() { + List result = new ArrayList(); + for (String containerName : containerData.keySet()) { + ContainerData sd = containerData.get(containerName); + for (Node sid : sd.getSwPorts().keySet()) { + Set s = sd.getSwPorts().get(sid); + result.add("\t" + sid + " : " + s); + } + + for (ContainerFlow s : sd.getContainerFlowSpecs()) { + result.add("\t" + s.toString()); + } + } + return result; + } + + public List psp() { + List result = new ArrayList(); + for (NodeConnector sp : nodeConnectorToContainers.keySet()) { + result.add(nodeConnectorToContainers.get(sp).toString()); + } + return result; + } + + public List psm() { + List result = new ArrayList(); + for (Node sp : nodeToContainers.keySet()) { + result.add(nodeToContainers.get(sp).toString()); + } + return result; + } + + public List addContainer(String arg1, String arg2) { + List result = new ArrayList(); + String containerName = arg1; + if (containerName == null) { + result.add("Container Name not specified"); + return result; + } + String staticVlan = arg2; + ContainerConfig containerConfig = new ContainerConfig(containerName, staticVlan, null, null); + result.add((this.addRemoveContainer(containerConfig, false)).toString()); + return result; + } + + public List createContainer(String arg1, String arg2) { + List result = new ArrayList(); + String containerName = arg1; + if (containerName == null) { + result.add("Container Name not specified"); + return result; + } + String staticVlan = arg2; + if (staticVlan == null) { + result.add("Static Vlan not specified"); + return result; + } + List ports = new ArrayList(); + for (long l = 1L; l < 10L; l++) { + ports.add(NodeConnectorCreator.createOFNodeConnector((short) 1, NodeCreator.createOFNode(l)).toString()); + } + List cFlowList = new ArrayList(); + cFlowList.add(this.createSampleContainerFlowConfig("tcp", true)); + ContainerConfig containerConfig = new ContainerConfig(containerName, staticVlan, ports, cFlowList); + result.add((this.addRemoveContainer(containerConfig, false)).toString()); + return result; + } + + public List removeContainerShell(String arg1) { + List result = new ArrayList(); + String containerName = arg1; + if (containerName == null) { + result.add("Container Name not specified"); + return result; + } + ContainerConfig containerConfig = new ContainerConfig(containerName, "", null, null); + result.add((this.addRemoveContainer(containerConfig, true)).toString()); + return result; + } + + public List addContainerEntry(String arg1, String arg2, String arg3) { + List result = new ArrayList(); + String containerName = arg1; + if (containerName == null) { + result.add("Container Name not specified"); + return result; + } + String nodeId = arg2; + if (nodeId == null) { + result.add("Node Id not specified"); + return result; + } + String portId = arg3; + if (portId == null) { + result.add("Port not specified"); + return result; + } + Node node = NodeCreator.createOFNode(Long.valueOf(nodeId)); + Short port = Short.valueOf(portId); + NodeConnector nc = NodeConnectorCreator.createOFNodeConnector(port, node); + List portList = new ArrayList(1); + portList.add(nc.toString()); + result.add((this.addRemoveContainerEntries(containerName, portList, false)).toString()); + return result; + } + + public List removeContainerEntry(String arg1, String arg2, String arg3) { + List result = new ArrayList(); + String containerName = arg1; + if (containerName == null) { + result.add("Container Name not specified"); + return result; + } + String nodeId = arg2; + if (nodeId == null) { + result.add("Node Id not specified"); + return result; + } + String portId = arg3; + if (portId == null) { + result.add("Port not specified"); + return result; + } + Node node = NodeCreator.createOFNode(Long.valueOf(nodeId)); + Short port = Short.valueOf(portId); + NodeConnector nc = NodeConnectorCreator.createOFNodeConnector(port, node); + List portList = new ArrayList(1); + portList.add(nc.toString()); + result.add((this.addRemoveContainerEntries(containerName, portList, true)).toString()); + return result; + } + public List addContainerFlow(String arg1, String arg2, String arg3) { + List result = new ArrayList(); + String containerName = arg1; + if (containerName == null) { + result.add("Container Name not specified"); + return result; + } + String cflowName = arg2; + if (cflowName == null) { + result.add("cflowName not specified"); + return result; + } + String unidirectional = arg3; + boolean boolUnidirectional = Boolean.parseBoolean(unidirectional); + List list = new ArrayList(); + list.add(createSampleContainerFlowConfig(cflowName, boolUnidirectional)); + result.add((this.addRemoveContainerFlow(containerName, list, false)).toString()); + return result; + } + + public List removeContainerFlow(String arg1, String arg2) { + List result = new ArrayList(); + String containerName = arg1; + if (containerName == null) { + result.add("Container Name not specified"); + return result; + } + String cflowName = arg2; + if (cflowName == null) { + result.add("cflowName not specified"); + return result; + } + Set set = new HashSet(1); + set.add(cflowName); + result.add((this.removeContainerFlows(containerName, set)).toString()); + return result; + } + + public List containermgrGetRoles() { + List result = new ArrayList(); + result.add("Configured roles for Container Mgr:"); + List list = this.getRoles(); + for (String role : list) { + result.add(role + "\t" + roles.get(role)); + } + return result; + } + + public List containermgrGetAuthorizedGroups(String arg1) { + List result = new ArrayList(); + String roleName = arg1; + if (roleName == null || roleName.trim().isEmpty()) { + result.add("Invalid argument"); + result.add("mmGetAuthorizedGroups "); + return result; + } + result.add("Resource Groups associated to role " + roleName + ":"); + List list = this.getAuthorizedGroups(roleName); + for (ResourceGroup group : list) { + result.add(group.toString()); + } + return result; + } + public List containermgrGetAuthorizedResources(String arg1) { + List result = new ArrayList(); + String roleName = arg1; + if (roleName == null || roleName.trim().isEmpty()) { + result.add("Invalid argument"); + result.add("mmGetAuthorizedResources "); + return result; + } + result.add("Resource associated to role " + roleName + ":"); + List list = this.getAuthorizedResources(roleName); + for (Resource resource : list) { + result.add(resource.toString()); + } + return result; + } + public List containermgrGetResourcesForGroup(String arg1) { + List result = new ArrayList(); + String groupName = arg1; + if (groupName == null || groupName.trim().isEmpty()) { + result.add("Invalid argument"); + result.add("containermgrResourcesForGroup "); + return result; + } + result.add("Group " + groupName + " contains the following resources:"); + List resources = this.getResources(groupName); + for (Object resource : resources) { + result.add(resource.toString()); + } + return result; + } + public List containermgrGetUserLevel(String arg1) { + List result = new ArrayList(); + String userName = arg1; + if (userName == null || userName.trim().isEmpty()) { + result.add("Invalid argument"); + result.add("containermgrGetUserLevel "); + return result; + } + result.add("User " + userName + " has level: " + this.getUserLevel(userName)); + return result; + } + public List containermgrGetUserResources(String arg1) { + List result = new ArrayList(); + String userName = arg1; + if (userName == null || userName.trim().isEmpty()) { + result.add("Invalid argument"); + result.add("containermgrGetUserResources "); + return result; + } + result.add("User " + userName + " owns the following resources: "); + Set resources = this.getAllResourcesforUser(userName); + for (Resource resource : resources) { + result.add(resource.toString()); + } + return result; + } + public List saveConfig() { + List result = new ArrayList(); + Status status = new Status(StatusCode.NOSERVICE, "Configuration service not reachable"); + + IConfigurationService configService = (IConfigurationService) ServiceHelper.getGlobalInstance( + IConfigurationService.class, this); + if (configService != null) { + status = configService.saveConfigurations(); + } + result.add(status.toString()); + return result; + } }