Bug 5617: OfOverlay refactoring initial + PortSecurity
[groupbasedpolicy.git] / renderers / ofoverlay / src / main / java / org / opendaylight / groupbasedpolicy / renderer / ofoverlay / sf / AllowAction.java
old mode 100644 (file)
new mode 100755 (executable)
index 87bad60..727fe76
@@ -10,50 +10,52 @@ package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf;
 
 import static org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.FlowUtils.nxOutputRegAction;
 
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
+import org.opendaylight.groupbasedpolicy.api.ValidationResult;
+import org.opendaylight.groupbasedpolicy.api.sf.AllowActionDefinition;
+import org.opendaylight.groupbasedpolicy.dto.ValidationResultBuilder;
+import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.OfContext;
+import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.OfWriter;
+import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.mapper.policyenforcer.PolicyEnforcer.NetworkElements;
+import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.mapper.policyenforcer.PolicyEnforcer.PolicyPair;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionDefinitionId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Description;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.HasDirection.Direction;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ActionDefinition;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ActionDefinitionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ActionInstance;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.capabilities.supported.action.definition.SupportedParameterValues;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg7;
 
-
 /**
  * Allow action
  */
 public class AllowAction extends Action {
-    public static final ActionDefinitionId ID =
-            new ActionDefinitionId("f942e8fd-e957-42b7-bd18-f73d11266d17");
-    protected static final String TYPE = "type";
-    protected static final ActionDefinition DEF =
-            new ActionDefinitionBuilder()
-                .setId(ID)
-                .setName(new ActionName("allow"))
-                .setDescription(new Description("Allow the specified traffic to pass"))
-                .build();
 
     // How allow is implemented in the PolicyEnforcer table
-       private final org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action allow = 
-                       nxOutputRegAction(NxmNxReg7.class);
+    private final org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action allow = nxOutputRegAction(NxmNxReg7.class);
 
     @Override
     public ActionDefinitionId getId() {
-        return ID;
+        return AllowActionDefinition.ID;
     }
 
     @Override
     public ActionDefinition getActionDef() {
-        return DEF;
+        return AllowActionDefinition.DEFINITION;
     }
 
     @Override
     public List<ActionBuilder> updateAction(List<ActionBuilder> actions,
                                             Map<String, Object> params,
-                                            Integer order) {
+                                            Integer order,
+                                            NetworkElements netElements,
+                                            PolicyPair policyPair,
+                                            OfWriter ofWriter,
+                                            OfContext ctx,
+                                            Direction direction) {
         /*
          * Allow action doesn't use parameters
          * TODO: check to make sure ActionBuilder w/allow isn't already present
@@ -65,4 +67,14 @@ public class AllowAction extends Action {
         return actions;
     }
 
+    @Override
+    public ValidationResult validate(ActionInstance actionInstance) {
+        return new ValidationResultBuilder().success().build();
+    }
+
+    @Override
+    public List<SupportedParameterValues> getSupportedParameterValues() {
+        // allow action definition has no parameter
+        return Collections.emptyList();
+    }
 }