Bug 5409 - setting orders in single rule contract
[groupbasedpolicy.git] / neutron-mapper / src / main / java / org / opendaylight / groupbasedpolicy / neutron / mapper / mapping / rule / SecRuleEntityDecoder.java
index e9d42f469d3f0c138fc7c548b87f4c0836ca9b01..c924191fbf68be53b98c73054e38556d8d054939 100755 (executable)
@@ -18,6 +18,7 @@ import javax.annotation.Nullable;
 import org.opendaylight.groupbasedpolicy.api.sf.EtherTypeClassifierDefinition;\r
 import org.opendaylight.groupbasedpolicy.api.sf.IpProtoClassifierDefinition;\r
 import org.opendaylight.groupbasedpolicy.api.sf.L4ClassifierDefinition;\r
+import org.opendaylight.groupbasedpolicy.neutron.mapper.util.MappingUtils;\r
 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.NeutronUtils;\r
 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.Utils;\r
 import org.opendaylight.neutron.spi.NeutronSecurityRule;\r
@@ -28,7 +29,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ParameterName;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SubjectName;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.change.action.of.security.group.rules.input.action.ActionChoice;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.change.action.of.security.group.rules.input.action.action.choice.AllowActionCase;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.neutron.gbp.mapper.rev150513.change.action.of.security.group.rules.input.action.action.choice.SfcActionCase;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.HasDirection.Direction;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.has.action.refs.ActionRef;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.has.classifier.refs.ClassifierRef;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.has.classifier.refs.ClassifierRef.ConnectionTracking;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.has.classifier.refs.ClassifierRefBuilder;\r
@@ -115,6 +120,15 @@ public class SecRuleEntityDecoder {
         return classifierBuilder.setParameterValue(params).setName(new ClassifierName(classifierName)).build();\r
     }\r
 \r
+    public static ActionRef createActionRefFromActionChoice(ActionChoice action) {\r
+        if(action instanceof SfcActionCase){\r
+            return MappingUtils.createSfcActionRef(((SfcActionCase) action).getSfcChainName());\r
+        } else if (action instanceof AllowActionCase) {\r
+            return MappingUtils.ACTION_REF_ALLOW;\r
+        }\r
+        return null;\r
+    }\r
+\r
     public static ClassifierRef getClassifierRef(NeutronSecurityRule secRule) {\r
         checkNotNull(secRule);\r
         ClassifierName classifierInstanceName = SecRuleNameDecoder.getClassifierInstanceName(secRule);\r