public class ContainerConfig implements Serializable {
private static final long serialVersionUID = 2L;
private static final String regexName = "^\\w+$";
+ private static final String containerProfile = System.getProperty("container.profile") == null ? "Container"
+ : System.getProperty("container.profile");
+ private static final String ADMIN_SUFFIX = "Admin";
+ private static final String OPERATOR_SUFFIX = "Operator";
@XmlElement
private String container;
}
return list;
}
+
+ private String getContainerRole(boolean admin) {
+ return String.format("%s-%s-%s", containerProfile, container, (admin ? ADMIN_SUFFIX : OPERATOR_SUFFIX));
+ }
+
+ /**
+ * Return the well known administrator role for this container
+ *
+ * @return The administrator role for this container
+ */
+ public String getContainerAdminRole() {
+ return getContainerRole(true);
+ }
+
+ /**
+ * Return the well known operator role for this container
+ *
+ * @return The operator role for this container
+ */
+ public String getContainerOperatorRole() {
+ return getContainerRole(false);
+ }
+
+ public String getContainerGroupName() {
+ return String.format("%s-%s", containerProfile, container);
+ }
}
*/
public class ContainerData implements Serializable {
private static final long serialVersionUID = 1L;
-
+ private String containerAdminRole;
+ private String containerOperatorRole;
private String name;
private ConcurrentMap<Node, Set<NodeConnector>> swPorts;
private short staticVlan;
private List<ContainerFlow> cFlowList;
- /**
- * Default constructor
-
- *
- * @return constructed ContainerData
- */
- public ContainerData() {
- name = null;
- swPorts = new ConcurrentHashMap<Node, Set<NodeConnector>>();
- staticVlan = 0;
- cFlowList = new ArrayList<ContainerFlow>();
- }
-
/**
* Build a ContainerData from container configuration
*
swPorts = new ConcurrentHashMap<Node, Set<NodeConnector>>();
cFlowList = new ArrayList<ContainerFlow>();
staticVlan = conf.getStaticVlanValue();
+ containerAdminRole = conf.getContainerAdminRole();
+ containerOperatorRole = conf.getContainerOperatorRole();
}
/**
}
return set;
}
+
+ public String getContainerAdminRole() {
+ return containerAdminRole;
+ }
+
+ public String getContainerOperatorRole() {
+ return containerOperatorRole;
+ }
}
*/
package org.opendaylight.controller.containermanager.internal;
-import java.util.concurrent.ConcurrentMap;
import java.util.ArrayList;
-import java.util.HashSet;
import java.util.Dictionary;
+import java.util.HashSet;
+import java.util.List;
import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentMap;
import org.apache.felix.dm.Component;
+import org.opendaylight.controller.containermanager.ContainerData;
import org.opendaylight.controller.sal.core.ContainerFlow;
import org.opendaylight.controller.sal.core.IContainer;
import org.opendaylight.controller.sal.core.Node;
import org.opendaylight.controller.sal.core.NodeConnector;
-import org.opendaylight.controller.containermanager.ContainerData;
-
-import java.util.Set;
-import java.util.List;
-
public class ContainerImpl implements IContainer {
private String containerName = null;
private IContainerInternal iContainerInternal = null;
}
return set;
}
+
+ @Override
+ public String getContainerAdminRole() {
+ return iContainerInternal.getContainerData(containerName).getContainerAdminRole();
+ }
+
+ @Override
+ public String getContainerOperatorRole() {
+ return iContainerInternal.getContainerData(containerName).getContainerOperatorRole();
+ }
}
* @param containerName
* @param delete
*/
- private void updateResourceGroups(String containerName, boolean delete) {
- String containerProfile = System.getProperty("container.profile");
- if (containerProfile == null) {
- containerProfile = "Container";
- }
+ private void updateResourceGroups(ContainerConfig containerConf, boolean delete) {
// Container Roles and Container Resource Group
- String groupName = containerProfile+"-" + containerName;
- String containerAdminRole = containerProfile+"-" + containerName + "-Admin";
- String containerOperatorRole = containerProfile+"-" + containerName + "-Operator";
+ String containerName = containerConf.getContainer();
+ String groupName = containerConf.getContainerGroupName();
+ String containerAdminRole = containerConf.getContainerAdminRole();
+ String containerOperatorRole = containerConf.getContainerOperatorRole();
Set<String> allContainerSet = resourceGroups.get(allResourcesGroupName);
if (delete) {
resourceGroups.remove(groupName);
}
// Automatically create and populate user and resource groups
- updateResourceGroups(containerName, delete);
+ updateResourceGroups(containerConf, delete);
// Notify global and local listeners
UpdateType update = (delete) ? UpdateType.REMOVED : UpdateType.ADDED;
public class ContainerImpl implements IContainer {
private String containerName = null;
+ private String containerAdminRole;
+ private String containerOperatorRole;
/**
* Function called by the dependency manager when all the required
public Set<Node> getNodes() {
return null;
}
+
+ @Override
+ public String getContainerAdminRole() {
+ return containerAdminRole;
+ }
+
+ @Override
+ public String getContainerOperatorRole() {
+ return containerOperatorRole;
+ }
}
* @return The array of Nodes that are part of the container
*/
public Set<Node> getNodes();
+
+ /**
+ * Return the well known administrator role for this container
+ *
+ * @return The administrator role for this container
+ */
+ public String getContainerAdminRole();
+
+ /**
+ * Return the well known operator role for this container
+ *
+ * @return The operator role for this container
+ */
+ public String getContainerOperatorRole();
}