Committed by
Ray Milkey
Prohibit null for resources field in Intent
Change-Id: I128c6e63ccccaf817e83ff1c440a731fb98b42f7
Showing
12 changed files
with
23 additions
and
15 deletions
| ... | @@ -328,7 +328,7 @@ public class IntentsListCommand extends AbstractShellCommand { | ... | @@ -328,7 +328,7 @@ public class IntentsListCommand extends AbstractShellCommand { |
| 328 | } | 328 | } |
| 329 | 329 | ||
| 330 | private void printDetails(IntentService service, Intent intent) { | 330 | private void printDetails(IntentService service, Intent intent) { |
| 331 | - if (intent.resources() != null && !intent.resources().isEmpty()) { | 331 | + if (!intent.resources().isEmpty()) { |
| 332 | print(" resources=%s", intent.resources()); | 332 | print(" resources=%s", intent.resources()); |
| 333 | } | 333 | } |
| 334 | if (intent instanceof ConnectivityIntent) { | 334 | if (intent instanceof ConnectivityIntent) { |
| ... | @@ -392,7 +392,7 @@ public class IntentsListCommand extends AbstractShellCommand { | ... | @@ -392,7 +392,7 @@ public class IntentsListCommand extends AbstractShellCommand { |
| 392 | result.put("state", state.toString()); | 392 | result.put("state", state.toString()); |
| 393 | } | 393 | } |
| 394 | 394 | ||
| 395 | - if (intent.resources() != null && !intent.resources().isEmpty()) { | 395 | + if (!intent.resources().isEmpty()) { |
| 396 | ArrayNode rnode = mapper.createArrayNode(); | 396 | ArrayNode rnode = mapper.createArrayNode(); |
| 397 | for (NetworkResource resource : intent.resources()) { | 397 | for (NetworkResource resource : intent.resources()) { |
| 398 | rnode.add(resource.toString()); | 398 | rnode.add(resource.toString()); | ... | ... |
| ... | @@ -26,6 +26,7 @@ import org.onosproject.net.flow.TrafficSelector; | ... | @@ -26,6 +26,7 @@ import org.onosproject.net.flow.TrafficSelector; |
| 26 | import org.onosproject.net.flow.TrafficTreatment; | 26 | import org.onosproject.net.flow.TrafficTreatment; |
| 27 | import org.onosproject.net.intent.constraint.LinkTypeConstraint; | 27 | import org.onosproject.net.intent.constraint.LinkTypeConstraint; |
| 28 | 28 | ||
| 29 | +import java.util.Collections; | ||
| 29 | import java.util.List; | 30 | import java.util.List; |
| 30 | 31 | ||
| 31 | import static com.google.common.base.Preconditions.checkNotNull; | 32 | import static com.google.common.base.Preconditions.checkNotNull; |
| ... | @@ -86,7 +87,7 @@ public final class HostToHostIntent extends ConnectivityIntent { | ... | @@ -86,7 +87,7 @@ public final class HostToHostIntent extends ConnectivityIntent { |
| 86 | TrafficSelector selector, | 87 | TrafficSelector selector, |
| 87 | TrafficTreatment treatment, | 88 | TrafficTreatment treatment, |
| 88 | List<Constraint> constraints) { | 89 | List<Constraint> constraints) { |
| 89 | - super(appId, null, selector, treatment, constraints); | 90 | + super(appId, Collections.emptyList(), selector, treatment, constraints); |
| 90 | 91 | ||
| 91 | // TODO: consider whether the case one and two are same is allowed | 92 | // TODO: consider whether the case one and two are same is allowed |
| 92 | this.one = checkNotNull(one); | 93 | this.one = checkNotNull(one); | ... | ... |
| ... | @@ -60,7 +60,7 @@ public abstract class Intent implements BatchOperationTarget { | ... | @@ -60,7 +60,7 @@ public abstract class Intent implements BatchOperationTarget { |
| 60 | checkState(idGenerator != null, "Id generator is not bound."); | 60 | checkState(idGenerator != null, "Id generator is not bound."); |
| 61 | this.id = IntentId.valueOf(idGenerator.getNewId()); | 61 | this.id = IntentId.valueOf(idGenerator.getNewId()); |
| 62 | this.appId = checkNotNull(appId, "Application ID cannot be null"); | 62 | this.appId = checkNotNull(appId, "Application ID cannot be null"); |
| 63 | - this.resources = resources; | 63 | + this.resources = checkNotNull(resources); |
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | /** | 66 | /** | ... | ... |
| ... | @@ -80,7 +80,7 @@ public final class MultiPointToSinglePointIntent extends ConnectivityIntent { | ... | @@ -80,7 +80,7 @@ public final class MultiPointToSinglePointIntent extends ConnectivityIntent { |
| 80 | Set<ConnectPoint> ingressPoints, | 80 | Set<ConnectPoint> ingressPoints, |
| 81 | ConnectPoint egressPoint, | 81 | ConnectPoint egressPoint, |
| 82 | List<Constraint> constraints) { | 82 | List<Constraint> constraints) { |
| 83 | - super(appId, null, selector, treatment, constraints); | 83 | + super(appId, Collections.emptyList(), selector, treatment, constraints); |
| 84 | 84 | ||
| 85 | checkNotNull(ingressPoints); | 85 | checkNotNull(ingressPoints); |
| 86 | checkArgument(!ingressPoints.isEmpty(), "Ingress point set cannot be empty"); | 86 | checkArgument(!ingressPoints.isEmpty(), "Ingress point set cannot be empty"); | ... | ... |
| ... | @@ -18,6 +18,8 @@ package org.onosproject.net.intent; | ... | @@ -18,6 +18,8 @@ package org.onosproject.net.intent; |
| 18 | import org.onosproject.core.ApplicationId; | 18 | import org.onosproject.core.ApplicationId; |
| 19 | import org.onosproject.net.ConnectPoint; | 19 | import org.onosproject.net.ConnectPoint; |
| 20 | 20 | ||
| 21 | +import java.util.Collections; | ||
| 22 | + | ||
| 21 | /** | 23 | /** |
| 22 | * An optical layer intent for connectivity from one transponder port to another | 24 | * An optical layer intent for connectivity from one transponder port to another |
| 23 | * transponder port. No traffic selector or traffic treatment are needed. | 25 | * transponder port. No traffic selector or traffic treatment are needed. |
| ... | @@ -36,7 +38,7 @@ public class OpticalConnectivityIntent extends Intent { | ... | @@ -36,7 +38,7 @@ public class OpticalConnectivityIntent extends Intent { |
| 36 | */ | 38 | */ |
| 37 | public OpticalConnectivityIntent(ApplicationId appId, | 39 | public OpticalConnectivityIntent(ApplicationId appId, |
| 38 | ConnectPoint src, ConnectPoint dst) { | 40 | ConnectPoint src, ConnectPoint dst) { |
| 39 | - super(appId, null); | 41 | + super(appId, Collections.emptyList()); |
| 40 | this.src = src; | 42 | this.src = src; |
| 41 | this.dst = dst; | 43 | this.dst = dst; |
| 42 | } | 44 | } | ... | ... |
| ... | @@ -24,6 +24,7 @@ import org.onosproject.net.flow.TrafficSelector; | ... | @@ -24,6 +24,7 @@ import org.onosproject.net.flow.TrafficSelector; |
| 24 | import org.onosproject.net.flow.TrafficTreatment; | 24 | import org.onosproject.net.flow.TrafficTreatment; |
| 25 | import org.onosproject.net.intent.constraint.LinkTypeConstraint; | 25 | import org.onosproject.net.intent.constraint.LinkTypeConstraint; |
| 26 | 26 | ||
| 27 | +import java.util.Collections; | ||
| 27 | import java.util.List; | 28 | import java.util.List; |
| 28 | 29 | ||
| 29 | import static com.google.common.base.Preconditions.checkArgument; | 30 | import static com.google.common.base.Preconditions.checkArgument; |
| ... | @@ -73,7 +74,7 @@ public class PointToPointIntent extends ConnectivityIntent { | ... | @@ -73,7 +74,7 @@ public class PointToPointIntent extends ConnectivityIntent { |
| 73 | ConnectPoint ingressPoint, | 74 | ConnectPoint ingressPoint, |
| 74 | ConnectPoint egressPoint, | 75 | ConnectPoint egressPoint, |
| 75 | List<Constraint> constraints) { | 76 | List<Constraint> constraints) { |
| 76 | - super(appId, null, selector, treatment, constraints); | 77 | + super(appId, Collections.emptyList(), selector, treatment, constraints); |
| 77 | 78 | ||
| 78 | checkNotNull(ingressPoint); | 79 | checkNotNull(ingressPoint); |
| 79 | checkNotNull(egressPoint); | 80 | checkNotNull(egressPoint); | ... | ... |
| ... | @@ -75,7 +75,7 @@ public class SinglePointToMultiPointIntent extends ConnectivityIntent { | ... | @@ -75,7 +75,7 @@ public class SinglePointToMultiPointIntent extends ConnectivityIntent { |
| 75 | TrafficSelector selector, TrafficTreatment treatment, | 75 | TrafficSelector selector, TrafficTreatment treatment, |
| 76 | ConnectPoint ingressPoint, Set<ConnectPoint> egressPoints, | 76 | ConnectPoint ingressPoint, Set<ConnectPoint> egressPoints, |
| 77 | List<Constraint> constraints) { | 77 | List<Constraint> constraints) { |
| 78 | - super(appId, null, selector, treatment, constraints); | 78 | + super(appId, Collections.emptyList(), selector, treatment, constraints); |
| 79 | checkNotNull(egressPoints); | 79 | checkNotNull(egressPoints); |
| 80 | checkNotNull(ingressPoint); | 80 | checkNotNull(ingressPoint); |
| 81 | checkArgument(!egressPoints.isEmpty(), "Egress point set cannot be empty"); | 81 | checkArgument(!egressPoints.isEmpty(), "Egress point set cannot be empty"); | ... | ... |
| ... | @@ -17,6 +17,8 @@ package org.onosproject.net.intent; | ... | @@ -17,6 +17,8 @@ package org.onosproject.net.intent; |
| 17 | 17 | ||
| 18 | import org.onosproject.TestApplicationId; | 18 | import org.onosproject.TestApplicationId; |
| 19 | 19 | ||
| 20 | +import java.util.Collections; | ||
| 21 | + | ||
| 20 | /** | 22 | /** |
| 21 | * An installable intent used in the unit test. | 23 | * An installable intent used in the unit test. |
| 22 | */ | 24 | */ |
| ... | @@ -30,7 +32,7 @@ public class TestInstallableIntent extends Intent { | ... | @@ -30,7 +32,7 @@ public class TestInstallableIntent extends Intent { |
| 30 | * @param value intent ID | 32 | * @param value intent ID |
| 31 | */ | 33 | */ |
| 32 | public TestInstallableIntent(int value) { // FIXME | 34 | public TestInstallableIntent(int value) { // FIXME |
| 33 | - super(new TestApplicationId("foo"), null); | 35 | + super(new TestApplicationId("foo"), Collections.emptyList()); |
| 34 | this.value = value; | 36 | this.value = value; |
| 35 | } | 37 | } |
| 36 | 38 | ... | ... |
| ... | @@ -17,6 +17,8 @@ package org.onosproject.net.intent; | ... | @@ -17,6 +17,8 @@ package org.onosproject.net.intent; |
| 17 | 17 | ||
| 18 | import org.onosproject.TestApplicationId; | 18 | import org.onosproject.TestApplicationId; |
| 19 | 19 | ||
| 20 | +import java.util.Collections; | ||
| 21 | + | ||
| 20 | /** | 22 | /** |
| 21 | * An intent used in the unit test. | 23 | * An intent used in the unit test. |
| 22 | */ | 24 | */ |
| ... | @@ -30,7 +32,7 @@ public class TestIntent extends Intent { | ... | @@ -30,7 +32,7 @@ public class TestIntent extends Intent { |
| 30 | * @param value intent ID | 32 | * @param value intent ID |
| 31 | */ | 33 | */ |
| 32 | public TestIntent(int value) { // FIXME | 34 | public TestIntent(int value) { // FIXME |
| 33 | - super(new TestApplicationId("foo"), null); | 35 | + super(new TestApplicationId("foo"), Collections.emptyList()); |
| 34 | this.value = value; | 36 | this.value = value; |
| 35 | } | 37 | } |
| 36 | 38 | ... | ... |
| ... | @@ -16,6 +16,7 @@ | ... | @@ -16,6 +16,7 @@ |
| 16 | package org.onosproject.net.intent.impl; | 16 | package org.onosproject.net.intent.impl; |
| 17 | 17 | ||
| 18 | import java.util.Collection; | 18 | import java.util.Collection; |
| 19 | +import java.util.Collections; | ||
| 19 | import java.util.List; | 20 | import java.util.List; |
| 20 | import java.util.Map; | 21 | import java.util.Map; |
| 21 | import java.util.Set; | 22 | import java.util.Set; |
| ... | @@ -154,7 +155,7 @@ public class IntentManagerTest { | ... | @@ -154,7 +155,7 @@ public class IntentManagerTest { |
| 154 | private final Long number; | 155 | private final Long number; |
| 155 | // Nothing new here | 156 | // Nothing new here |
| 156 | public MockIntent(Long number) { | 157 | public MockIntent(Long number) { |
| 157 | - super(APPID, null); | 158 | + super(APPID, Collections.emptyList()); |
| 158 | this.number = number; | 159 | this.number = number; |
| 159 | } | 160 | } |
| 160 | 161 | ||
| ... | @@ -507,7 +508,7 @@ public class IntentManagerTest { | ... | @@ -507,7 +508,7 @@ public class IntentManagerTest { |
| 507 | public void intentWithoutCompiler() { | 508 | public void intentWithoutCompiler() { |
| 508 | class IntentNoCompiler extends Intent { | 509 | class IntentNoCompiler extends Intent { |
| 509 | IntentNoCompiler() { | 510 | IntentNoCompiler() { |
| 510 | - super(APPID, null); | 511 | + super(APPID, Collections.emptyList()); |
| 511 | } | 512 | } |
| 512 | } | 513 | } |
| 513 | 514 | ... | ... |
| ... | @@ -41,11 +41,9 @@ public class IntentCodec extends JsonCodec<Intent> { | ... | @@ -41,11 +41,9 @@ public class IntentCodec extends JsonCodec<Intent> { |
| 41 | 41 | ||
| 42 | final ArrayNode jsonResources = result.putArray("resources"); | 42 | final ArrayNode jsonResources = result.putArray("resources"); |
| 43 | 43 | ||
| 44 | - if (intent.resources() != null) { | ||
| 45 | for (final NetworkResource resource : intent.resources()) { | 44 | for (final NetworkResource resource : intent.resources()) { |
| 46 | jsonResources.add(resource.toString()); | 45 | jsonResources.add(resource.toString()); |
| 47 | } | 46 | } |
| 48 | - } | ||
| 49 | return result; | 47 | return result; |
| 50 | } | 48 | } |
| 51 | } | 49 | } | ... | ... |
| ... | @@ -16,6 +16,7 @@ | ... | @@ -16,6 +16,7 @@ |
| 16 | package org.onosproject.rest; | 16 | package org.onosproject.rest; |
| 17 | 17 | ||
| 18 | import java.util.Collection; | 18 | import java.util.Collection; |
| 19 | +import java.util.Collections; | ||
| 19 | import java.util.HashSet; | 20 | import java.util.HashSet; |
| 20 | import java.util.concurrent.atomic.AtomicLong; | 21 | import java.util.concurrent.atomic.AtomicLong; |
| 21 | 22 | ||
| ... | @@ -300,7 +301,7 @@ public class IntentsResourceTest extends JerseyTest { | ... | @@ -300,7 +301,7 @@ public class IntentsResourceTest extends JerseyTest { |
| 300 | public void testIntentsArray() { | 301 | public void testIntentsArray() { |
| 301 | replay(mockIntentService); | 302 | replay(mockIntentService); |
| 302 | 303 | ||
| 303 | - final Intent intent1 = new MockIntent(null); | 304 | + final Intent intent1 = new MockIntent(Collections.emptyList()); |
| 304 | final HashSet<NetworkResource> resources = new HashSet<>(); | 305 | final HashSet<NetworkResource> resources = new HashSet<>(); |
| 305 | resources.add(new MockResource(1)); | 306 | resources.add(new MockResource(1)); |
| 306 | resources.add(new MockResource(2)); | 307 | resources.add(new MockResource(2)); | ... | ... |
-
Please register or login to post a comment