Add intent state to JSON output
Change-Id: I3a5995e0dfdc83e1253b8e414e825b796a57264c
Showing
4 changed files
with
31 additions
and
6 deletions
... | @@ -54,7 +54,7 @@ public class IntentServiceAdapter implements IntentService { | ... | @@ -54,7 +54,7 @@ public class IntentServiceAdapter implements IntentService { |
54 | 54 | ||
55 | @Override | 55 | @Override |
56 | public IntentState getIntentState(Key intentKey) { | 56 | public IntentState getIntentState(Key intentKey) { |
57 | - return null; | 57 | + return IntentState.INSTALLED; |
58 | } | 58 | } |
59 | 59 | ||
60 | @Override | 60 | @Override | ... | ... |
... | @@ -19,6 +19,8 @@ import org.onosproject.codec.CodecContext; | ... | @@ -19,6 +19,8 @@ import org.onosproject.codec.CodecContext; |
19 | import org.onosproject.codec.JsonCodec; | 19 | import org.onosproject.codec.JsonCodec; |
20 | import org.onosproject.net.NetworkResource; | 20 | import org.onosproject.net.NetworkResource; |
21 | import org.onosproject.net.intent.Intent; | 21 | import org.onosproject.net.intent.Intent; |
22 | +import org.onosproject.net.intent.IntentService; | ||
23 | +import org.onosproject.net.intent.IntentState; | ||
22 | 24 | ||
23 | import com.fasterxml.jackson.databind.node.ArrayNode; | 25 | import com.fasterxml.jackson.databind.node.ArrayNode; |
24 | import com.fasterxml.jackson.databind.node.ObjectNode; | 26 | import com.fasterxml.jackson.databind.node.ObjectNode; |
... | @@ -44,6 +46,11 @@ public final class IntentCodec extends JsonCodec<Intent> { | ... | @@ -44,6 +46,11 @@ public final class IntentCodec extends JsonCodec<Intent> { |
44 | for (final NetworkResource resource : intent.resources()) { | 46 | for (final NetworkResource resource : intent.resources()) { |
45 | jsonResources.add(resource.toString()); | 47 | jsonResources.add(resource.toString()); |
46 | } | 48 | } |
49 | + | ||
50 | + IntentService service = context.getService(IntentService.class); | ||
51 | + IntentState state = service.getIntentState(intent.key()); | ||
52 | + result.put("state", state.toString()); | ||
53 | + | ||
47 | return result; | 54 | return result; |
48 | } | 55 | } |
49 | } | 56 | } | ... | ... |
... | @@ -18,12 +18,12 @@ package org.onosproject.codec.impl; | ... | @@ -18,12 +18,12 @@ package org.onosproject.codec.impl; |
18 | import java.time.Duration; | 18 | import java.time.Duration; |
19 | import java.util.List; | 19 | import java.util.List; |
20 | 20 | ||
21 | +import org.junit.Before; | ||
21 | import org.junit.Test; | 22 | import org.junit.Test; |
22 | import org.onlab.packet.IpPrefix; | 23 | import org.onlab.packet.IpPrefix; |
23 | import org.onlab.packet.MacAddress; | 24 | import org.onlab.packet.MacAddress; |
24 | import org.onlab.packet.MplsLabel; | 25 | import org.onlab.packet.MplsLabel; |
25 | import org.onlab.util.Bandwidth; | 26 | import org.onlab.util.Bandwidth; |
26 | -import org.onosproject.codec.CodecContext; | ||
27 | import org.onosproject.codec.JsonCodec; | 27 | import org.onosproject.codec.JsonCodec; |
28 | import org.onosproject.core.ApplicationId; | 28 | import org.onosproject.core.ApplicationId; |
29 | import org.onosproject.core.DefaultApplicationId; | 29 | import org.onosproject.core.DefaultApplicationId; |
... | @@ -39,6 +39,8 @@ import org.onosproject.net.flow.TrafficTreatment; | ... | @@ -39,6 +39,8 @@ import org.onosproject.net.flow.TrafficTreatment; |
39 | import org.onosproject.net.intent.AbstractIntentTest; | 39 | import org.onosproject.net.intent.AbstractIntentTest; |
40 | import org.onosproject.net.intent.Constraint; | 40 | import org.onosproject.net.intent.Constraint; |
41 | import org.onosproject.net.intent.HostToHostIntent; | 41 | import org.onosproject.net.intent.HostToHostIntent; |
42 | +import org.onosproject.net.intent.IntentService; | ||
43 | +import org.onosproject.net.intent.IntentServiceAdapter; | ||
42 | import org.onosproject.net.intent.PointToPointIntent; | 44 | import org.onosproject.net.intent.PointToPointIntent; |
43 | import org.onosproject.net.intent.constraint.AnnotationConstraint; | 45 | import org.onosproject.net.intent.constraint.AnnotationConstraint; |
44 | import org.onosproject.net.intent.constraint.AsymmetricPathConstraint; | 46 | import org.onosproject.net.intent.constraint.AsymmetricPathConstraint; |
... | @@ -71,7 +73,13 @@ public class IntentCodecTest extends AbstractIntentTest { | ... | @@ -71,7 +73,13 @@ public class IntentCodecTest extends AbstractIntentTest { |
71 | DefaultTrafficSelector.emptySelector(); | 73 | DefaultTrafficSelector.emptySelector(); |
72 | final TrafficTreatment emptyTreatment = | 74 | final TrafficTreatment emptyTreatment = |
73 | DefaultTrafficTreatment.emptyTreatment(); | 75 | DefaultTrafficTreatment.emptyTreatment(); |
74 | - private final CodecContext context = new MockCodecContext(); | 76 | + private final MockCodecContext context = new MockCodecContext(); |
77 | + | ||
78 | + @Before | ||
79 | + public void setUpIntentService() { | ||
80 | + final IntentService mockIntentService = new IntentServiceAdapter(); | ||
81 | + context.registerService(IntentService.class, mockIntentService); | ||
82 | + } | ||
75 | 83 | ||
76 | /** | 84 | /** |
77 | * Tests the encoding of a host to host intent. | 85 | * Tests the encoding of a host to host intent. |
... | @@ -109,7 +117,6 @@ public class IntentCodecTest extends AbstractIntentTest { | ... | @@ -109,7 +117,6 @@ public class IntentCodecTest extends AbstractIntentTest { |
109 | .ingressPoint(ingress) | 117 | .ingressPoint(ingress) |
110 | .egressPoint(egress).build(); | 118 | .egressPoint(egress).build(); |
111 | 119 | ||
112 | - final CodecContext context = new MockCodecContext(); | ||
113 | final JsonCodec<PointToPointIntent> intentCodec = | 120 | final JsonCodec<PointToPointIntent> intentCodec = |
114 | context.codec(PointToPointIntent.class); | 121 | context.codec(PointToPointIntent.class); |
115 | assertThat(intentCodec, notNullValue()); | 122 | assertThat(intentCodec, notNullValue()); |
... | @@ -165,7 +172,6 @@ public class IntentCodecTest extends AbstractIntentTest { | ... | @@ -165,7 +172,6 @@ public class IntentCodecTest extends AbstractIntentTest { |
165 | .build(); | 172 | .build(); |
166 | 173 | ||
167 | 174 | ||
168 | - final CodecContext context = new MockCodecContext(); | ||
169 | final JsonCodec<PointToPointIntent> intentCodec = | 175 | final JsonCodec<PointToPointIntent> intentCodec = |
170 | context.codec(PointToPointIntent.class); | 176 | context.codec(PointToPointIntent.class); |
171 | assertThat(intentCodec, notNullValue()); | 177 | assertThat(intentCodec, notNullValue()); | ... | ... |
... | @@ -35,6 +35,7 @@ import org.onosproject.core.IdGenerator; | ... | @@ -35,6 +35,7 @@ import org.onosproject.core.IdGenerator; |
35 | import org.onosproject.net.NetworkResource; | 35 | import org.onosproject.net.NetworkResource; |
36 | import org.onosproject.net.intent.Intent; | 36 | import org.onosproject.net.intent.Intent; |
37 | import org.onosproject.net.intent.IntentService; | 37 | import org.onosproject.net.intent.IntentService; |
38 | +import org.onosproject.net.intent.IntentState; | ||
38 | import org.onosproject.net.intent.Key; | 39 | import org.onosproject.net.intent.Key; |
39 | import org.onosproject.net.intent.MockIdGenerator; | 40 | import org.onosproject.net.intent.MockIdGenerator; |
40 | 41 | ||
... | @@ -44,6 +45,7 @@ import com.eclipsesource.json.JsonValue; | ... | @@ -44,6 +45,7 @@ import com.eclipsesource.json.JsonValue; |
44 | import com.sun.jersey.api.client.UniformInterfaceException; | 45 | import com.sun.jersey.api.client.UniformInterfaceException; |
45 | import com.sun.jersey.api.client.WebResource; | 46 | import com.sun.jersey.api.client.WebResource; |
46 | 47 | ||
48 | +import static org.easymock.EasyMock.anyObject; | ||
47 | import static org.easymock.EasyMock.createMock; | 49 | import static org.easymock.EasyMock.createMock; |
48 | import static org.easymock.EasyMock.expect; | 50 | import static org.easymock.EasyMock.expect; |
49 | import static org.easymock.EasyMock.replay; | 51 | import static org.easymock.EasyMock.replay; |
... | @@ -121,6 +123,13 @@ public class IntentsResourceTest extends ResourceTest { | ... | @@ -121,6 +123,13 @@ public class IntentsResourceTest extends ResourceTest { |
121 | return false; | 123 | return false; |
122 | } | 124 | } |
123 | 125 | ||
126 | + // check state field | ||
127 | + final String jsonState = jsonIntent.get("state").asString(); | ||
128 | + if (!jsonState.equals("INSTALLED")) { | ||
129 | + reason = "state INSTALLED"; | ||
130 | + return false; | ||
131 | + } | ||
132 | + | ||
124 | // check resources array | 133 | // check resources array |
125 | final JsonArray jsonResources = jsonIntent.get("resources").asArray(); | 134 | final JsonArray jsonResources = jsonIntent.get("resources").asArray(); |
126 | if (intent.resources() != null) { | 135 | if (intent.resources() != null) { |
... | @@ -180,7 +189,7 @@ public class IntentsResourceTest extends ResourceTest { | ... | @@ -180,7 +189,7 @@ public class IntentsResourceTest extends ResourceTest { |
180 | @Override | 189 | @Override |
181 | public boolean matchesSafely(JsonArray json) { | 190 | public boolean matchesSafely(JsonArray json) { |
182 | boolean intentFound = false; | 191 | boolean intentFound = false; |
183 | - final int expectedAttributes = 5; | 192 | + final int expectedAttributes = 6; |
184 | for (int jsonIntentIndex = 0; jsonIntentIndex < json.size(); | 193 | for (int jsonIntentIndex = 0; jsonIntentIndex < json.size(); |
185 | jsonIntentIndex++) { | 194 | jsonIntentIndex++) { |
186 | 195 | ||
... | @@ -229,6 +238,9 @@ public class IntentsResourceTest extends ResourceTest { | ... | @@ -229,6 +238,9 @@ public class IntentsResourceTest extends ResourceTest { |
229 | @Before | 238 | @Before |
230 | public void setUpTest() { | 239 | public void setUpTest() { |
231 | expect(mockIntentService.getIntents()).andReturn(intents).anyTimes(); | 240 | expect(mockIntentService.getIntents()).andReturn(intents).anyTimes(); |
241 | + expect(mockIntentService.getIntentState(anyObject())) | ||
242 | + .andReturn(IntentState.INSTALLED) | ||
243 | + .anyTimes(); | ||
232 | // Register the services needed for the test | 244 | // Register the services needed for the test |
233 | final CodecManager codecService = new CodecManager(); | 245 | final CodecManager codecService = new CodecManager(); |
234 | codecService.activate(); | 246 | codecService.activate(); | ... | ... |
-
Please register or login to post a comment