<configuration>
<instructions>
<Import-Package>
+ org.opendaylight.controller.configuration,
org.opendaylight.controller.containermanager,
org.opendaylight.controller.sal.authorization,
org.opendaylight.controller.sal.utils,
</build>
<dependencies>
+ <dependency>
+ <groupId>org.opendaylight.controller</groupId>
+ <artifactId>configuration</artifactId>
+ </dependency>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>sal</artifactId>
import java.util.Set;
import java.util.concurrent.ConcurrentMap;
+import org.opendaylight.controller.configuration.ConfigurationObject;
import org.opendaylight.controller.containermanager.IContainerAuthorization;
import org.opendaylight.controller.sal.authorization.AppRoleLevel;
import org.opendaylight.controller.sal.authorization.IResourceAuthorization;
*/
public abstract class Authorization<T> implements IResourceAuthorization {
private static final Logger logger = LoggerFactory.getLogger(Authorization.class);
- private static final String namesRegex = "^[a-zA-Z0-9]+[{\\.|\\_|\\-}[a-zA-Z0-9]]*$";
+ private static final String namesRegex = ConfigurationObject.getRegularExpression();
/*
* The configured resource groups
*/
public abstract class ConfigurationObject implements Serializable {
private static final long serialVersionUID = 1L;
- private static final String DEFAULT_REGEX = "^[\\w-\\+\\*\\/\\.\\(\\)\\[\\]\\@]{1,256}$";
+ private static final String DEFAULT_REGEX = "^[\\w-\\+\\*\\/\\.\\(\\)\\[\\]\\@\\|]{1,256}$";
private static final String REGEX_PROP_NAME = "resourceNameRegularExpression";
private static String regex;
* resource name regular expression, false otherwise
*/
protected boolean isValidResourceName(String name) {
- return (name != null) ? name.matches(regex) : false;
+ return name != null && name.matches(regex);
}
/**
@Override
public void nodeFlowStatisticsUpdated(Node node, List<FlowOnNode> flowStatsList) {
- List<FlowOnNode> currentStat = this.flowStatistics.get(node);
- // Update cache only if changed to avoid unnecessary cache sync operations
- if (! flowStatsList.equals(currentStat)){
- this.flowStatistics.put(node, flowStatsList);
- }
+ // No equality check because duration fields change constantly
+ this.flowStatistics.put(node, flowStatsList);
}
@Override
}
private Status validateNodeId() {
- if (nodeId == null || nodeId.isEmpty()) {
- return new Status(StatusCode.BADREQUEST, "NodeId cannot be empty");
+ if (!isValidResourceName(nodeId)) {
+ return new Status(StatusCode.BADREQUEST, "Invalid NodeId");
}
return new Status(StatusCode.SUCCESS);
}