Action experimenterId fix 59/17159/2
authorMichal Polkorab <michal.polkorab@pantheon.sk>
Thu, 26 Mar 2015 14:07:24 +0000 (15:07 +0100)
committerMichal Polkorab <michal.polkorab@pantheon.sk>
Sat, 28 Mar 2015 18:26:41 +0000 (18:26 +0000)
Change-Id: Idebe6abbaf24977209857c5d47efe67717e6a027
Signed-off-by: Michal Polkorab <michal.polkorab@pantheon.sk>
openflow-protocol-api/src/main/yang/openflow-action.yang
openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/TypeKeyMakerFactory.java
openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/TypeKeyMakerFactoryTest.java

index 4655d15a76a03efc81eff00b8ec699d3db2ce9bf..576a7f45b4f85fa01edb9ca742f6a99d4df84abe 100644 (file)
@@ -31,6 +31,9 @@
     grouping actions-grouping {
         list action {
             uses action-grouping;
+            leaf experimenter-id {
+                type oft:experimenter-id;
+            }
         }
     }
 
index e74ac05fa253bbbc6e615398078096d0d90b5627..e954a4366f957d630a7b8b2a790fa5e9acce88b6 100644 (file)
@@ -9,7 +9,6 @@
 package org.opendaylight.openflowjava.protocol.impl.util;
 
 import org.opendaylight.openflowjava.protocol.api.keys.ActionSerializerKey;
-import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterActionSerializerKey;
 import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterInstructionSerializerKey;
 import org.opendaylight.openflowjava.protocol.api.keys.InstructionSerializerKey;
 import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
@@ -64,15 +63,10 @@ public abstract class TypeKeyMakerFactory {
         return new AbstractTypeKeyMaker<Action>(version) {
             @Override
             public MessageTypeKey<?> make(Action entry) {
-                if (entry.getActionChoice() instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.openflow
-                        .augments.rev150225.action.container.action.choice.ExperimenterIdCase) {
-                    org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.action
-                    .container.action.choice.ExperimenterIdCase expIdCase = (org.opendaylight.yang.gen.v1.urn
-                    .opendaylight.openflow.augments.rev150225.action.container.action.choice
-                    .ExperimenterIdCase) entry.getActionChoice();
-                    return new ExperimenterActionSerializerKey(getVersion(),
-                            expIdCase.getExperimenter().getExperimenter().getValue(),
-                            expIdCase.getExperimenter().getSubType());
+                if (entry.getExperimenterId() != null) {
+                    return new ActionSerializerKey<>(getVersion(),
+                            (Class<ActionChoice>) entry.getActionChoice().getImplementedInterface(),
+                            entry.getExperimenterId().getValue());
                 }
                 return new ActionSerializerKey<>(getVersion(),
                         (Class<ActionChoice>) entry.getActionChoice().getImplementedInterface(), null);
index dd76638933b32d3d5d761b77d303a222ddb1aaca..c6278285f214966b1eebbacf02c0455f4f023866 100644 (file)
@@ -11,7 +11,6 @@ package org.opendaylight.openflowjava.protocol.impl.util;
 import org.junit.Assert;
 import org.junit.Test;
 import org.opendaylight.openflowjava.protocol.api.keys.ActionSerializerKey;
-import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterActionSerializerKey;
 import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterInstructionSerializerKey;
 import org.opendaylight.openflowjava.protocol.api.keys.InstructionSerializerKey;
 import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
@@ -20,6 +19,8 @@ import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.oxm.container.match.entry.value.ExperimenterIdCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.oxm.container.match.entry.value.experimenter.id._case.ExperimenterBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.ExperimenterActionSubType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.CopyTtlInCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.CopyTtlInCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.OutputActionCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.OutputActionCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
@@ -69,22 +70,14 @@ public class TypeKeyMakerFactoryTest {
         Assert.assertNotNull("Null keyMaker", keyMaker);
 
         org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder builder = new ActionBuilder();
-        org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.action.container.action.choice
-        .ExperimenterIdCaseBuilder caseBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments
-        .rev150225.action.container.action.choice.ExperimenterIdCaseBuilder();
-        org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.action.container.action.choice
-        .experimenter.id._case.ExperimenterBuilder expIdBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight
-        .openflow.augments.rev150225.action.container.action.choice.experimenter.id._case.ExperimenterBuilder();
-        expIdBuilder.setExperimenter(new ExperimenterId(42L));
-        expIdBuilder.setSubType(ActionSubtypeClass.class);
-        caseBuilder.setExperimenter(expIdBuilder.build());
-        builder.setActionChoice(caseBuilder.build());
+        builder.setExperimenterId(new ExperimenterId(42L));
+        builder.setActionChoice(new CopyTtlInCaseBuilder().build());
         Action action = builder.build();
         MessageTypeKey<?> key = keyMaker.make(action);
 
         Assert.assertNotNull("Null key", key);
-        Assert.assertEquals("Wrong key", new ExperimenterActionSerializerKey(EncodeConstants.OF13_VERSION_ID, 42L,
-                ActionSubtypeClass.class), key);
+        Assert.assertEquals("Wrong key", new ActionSerializerKey(EncodeConstants.OF13_VERSION_ID,
+                CopyTtlInCase.class, 42L), key);
     }
 
     /**