Committed by
Gerrit Code Review
Made OpticalPathProvisioner to store connectivity data in distributed store. (ONOS-4518)
Change-Id: I7f9ef02cab4aa1848c8926d2e88478e035076c99
Showing
8 changed files
with
158 additions
and
138 deletions
... | @@ -89,6 +89,12 @@ | ... | @@ -89,6 +89,12 @@ |
89 | </dependency> | 89 | </dependency> |
90 | 90 | ||
91 | <dependency> | 91 | <dependency> |
92 | + <groupId>org.onosproject</groupId> | ||
93 | + <artifactId>onos-core-serializers</artifactId> | ||
94 | + <version>${project.version}</version> | ||
95 | + </dependency> | ||
96 | + | ||
97 | + <dependency> | ||
92 | <groupId>com.google.guava</groupId> | 98 | <groupId>com.google.guava</groupId> |
93 | <artifactId>guava-testlib</artifactId> | 99 | <artifactId>guava-testlib</artifactId> |
94 | <scope>test</scope> | 100 | <scope>test</scope> | ... | ... |
... | @@ -22,14 +22,14 @@ import org.onlab.util.Bandwidth; | ... | @@ -22,14 +22,14 @@ import org.onlab.util.Bandwidth; |
22 | import org.onosproject.newoptical.api.OpticalConnectivityId; | 22 | import org.onosproject.newoptical.api.OpticalConnectivityId; |
23 | import org.onosproject.net.ConnectPoint; | 23 | import org.onosproject.net.ConnectPoint; |
24 | import org.onosproject.net.Link; | 24 | import org.onosproject.net.Link; |
25 | -import org.onosproject.net.Path; | ||
26 | 25 | ||
27 | import java.time.Duration; | 26 | import java.time.Duration; |
28 | -import java.util.HashSet; | ||
29 | import java.util.List; | 27 | import java.util.List; |
28 | +import java.util.Optional; | ||
30 | import java.util.Set; | 29 | import java.util.Set; |
30 | +import java.util.stream.Collectors; | ||
31 | 31 | ||
32 | -import static com.google.common.base.Preconditions.checkNotNull; | 32 | +import static com.google.common.base.Preconditions.checkState; |
33 | 33 | ||
34 | /** | 34 | /** |
35 | * Entity to store optical connectivity request and related information. | 35 | * Entity to store optical connectivity request and related information. |
... | @@ -42,48 +42,48 @@ public class OpticalConnectivity { | ... | @@ -42,48 +42,48 @@ public class OpticalConnectivity { |
42 | private final Bandwidth requestBandwidth; | 42 | private final Bandwidth requestBandwidth; |
43 | private final Duration requestLatency; | 43 | private final Duration requestLatency; |
44 | 44 | ||
45 | - // Bandwidth capacity of optical layer | 45 | + /** |
46 | - private Bandwidth opticalCapacity; | 46 | + * Set of packet link that is not yet established. |
47 | - | 47 | + * Packet links in this set are expected to be discovered after underlying (optical) path has been provisioned. |
48 | - private final Set<PacketLinkRealizedByOptical> realizingLinks = new HashSet<>(); | 48 | + */ |
49 | - | 49 | + private final ImmutableSet<PacketLinkRealizedByOptical> unestablishedLinks; |
50 | - private State state = State.CREATED; | 50 | + |
51 | - | 51 | + /** |
52 | - public enum State { | 52 | + * Set of packet link that is already established. |
53 | - CREATED, | 53 | + */ |
54 | - INSTALLING, | 54 | + private final ImmutableSet<PacketLinkRealizedByOptical> establishedLinks; |
55 | - INSTALLED, | 55 | + |
56 | - WITHDRAWING, | 56 | + public OpticalConnectivity(OpticalConnectivityId id, |
57 | - WITHDRAWN, | 57 | + List<Link> links, |
58 | - FAILED | 58 | + Bandwidth requestBandwidth, |
59 | - } | 59 | + Duration requestLatency, |
60 | - | 60 | + Set<PacketLinkRealizedByOptical> unestablishedLinks, |
61 | - public OpticalConnectivity(OpticalConnectivityId id, Path path, Bandwidth requestBandwidth, | 61 | + Set<PacketLinkRealizedByOptical> establishedLinks) { |
62 | - Duration requestLatency) { | ||
63 | this.id = id; | 62 | this.id = id; |
64 | - this.links = ImmutableList.copyOf(path.links()); | 63 | + this.links = ImmutableList.copyOf(links); |
65 | this.requestBandwidth = requestBandwidth; | 64 | this.requestBandwidth = requestBandwidth; |
66 | this.requestLatency = requestLatency; | 65 | this.requestLatency = requestLatency; |
66 | + this.unestablishedLinks = ImmutableSet.copyOf(unestablishedLinks); | ||
67 | + this.establishedLinks = ImmutableSet.copyOf(establishedLinks); | ||
67 | } | 68 | } |
68 | 69 | ||
69 | - public void setLinkEstablished(ConnectPoint src, ConnectPoint dst) { | 70 | + private OpticalConnectivity(OpticalConnectivity connectivity) { |
70 | - realizingLinks.stream().filter(l -> l.isBetween(src, dst)) | 71 | + this.id = connectivity.id; |
71 | - .findAny() | 72 | + this.links = ImmutableList.copyOf(connectivity.links); |
72 | - .ifPresent(l -> l.setEstablished(true)); | 73 | + this.requestBandwidth = connectivity.requestBandwidth; |
73 | - } | 74 | + this.requestLatency = connectivity.requestLatency; |
74 | - | 75 | + this.unestablishedLinks = ImmutableSet.copyOf(connectivity.unestablishedLinks); |
75 | - public void setLinkRemoved(ConnectPoint src, ConnectPoint dst) { | 76 | + this.establishedLinks = ImmutableSet.copyOf(connectivity.establishedLinks); |
76 | - realizingLinks.stream().filter(l -> l.isBetween(src, dst)) | ||
77 | - .findAny() | ||
78 | - .ifPresent(l -> l.setEstablished(false)); | ||
79 | } | 77 | } |
80 | 78 | ||
81 | public boolean isAllRealizingLinkEstablished() { | 79 | public boolean isAllRealizingLinkEstablished() { |
82 | - return realizingLinks.stream().allMatch(PacketLinkRealizedByOptical::isEstablished); | 80 | + // Check if all links are established |
81 | + return unestablishedLinks.isEmpty(); | ||
83 | } | 82 | } |
84 | 83 | ||
85 | public boolean isAllRealizingLinkNotEstablished() { | 84 | public boolean isAllRealizingLinkNotEstablished() { |
86 | - return !realizingLinks.stream().anyMatch(PacketLinkRealizedByOptical::isEstablished); | 85 | + // Check if any link is not established |
86 | + return establishedLinks.isEmpty(); | ||
87 | } | 87 | } |
88 | 88 | ||
89 | public OpticalConnectivityId id() { | 89 | public OpticalConnectivityId id() { |
... | @@ -102,59 +102,64 @@ public class OpticalConnectivity { | ... | @@ -102,59 +102,64 @@ public class OpticalConnectivity { |
102 | return requestLatency; | 102 | return requestLatency; |
103 | } | 103 | } |
104 | 104 | ||
105 | - public State state() { | 105 | + public Set<PacketLinkRealizedByOptical> getEstablishedLinks() { |
106 | - return state; | 106 | + return establishedLinks; |
107 | - } | 107 | + } |
108 | - | 108 | + |
109 | - public boolean state(State state) { | 109 | + public Set<PacketLinkRealizedByOptical> getUnestablishedLinks() { |
110 | - boolean valid = true; | 110 | + return unestablishedLinks; |
111 | - // reject invalid state transition | 111 | + } |
112 | - switch (this.state) { | 112 | + |
113 | - case CREATED: | 113 | + public OpticalConnectivity setLinkEstablished(ConnectPoint src, |
114 | - valid = (state == State.INSTALLING || state == State.FAILED); | 114 | + ConnectPoint dst, |
115 | - break; | 115 | + boolean established) { |
116 | - case INSTALLING: | 116 | + Set<PacketLinkRealizedByOptical> newEstablishedLinks; |
117 | - valid = (state == State.INSTALLED || state == State.FAILED); | 117 | + Set<PacketLinkRealizedByOptical> newUnestablishedLinks; |
118 | - break; | 118 | + |
119 | - case INSTALLED: | 119 | + if (established) { |
120 | - valid = (state == State.WITHDRAWING || state == State.FAILED); | 120 | + // move PacketLink from unestablished set to established set |
121 | - break; | 121 | + Optional<PacketLinkRealizedByOptical> link = this.unestablishedLinks.stream() |
122 | - case WITHDRAWING: | 122 | + .filter(l -> l.isBetween(src, dst)).findAny(); |
123 | - valid = (state == State.WITHDRAWN || state == State.FAILED); | 123 | + checkState(link.isPresent()); |
124 | - break; | 124 | + |
125 | - case FAILED: | 125 | + newUnestablishedLinks = this.unestablishedLinks.stream() |
126 | - valid = (state == State.INSTALLING || state == State.WITHDRAWING || state == State.FAILED); | 126 | + .filter(l -> !l.isBetween(src, dst)) |
127 | - break; | 127 | + .collect(Collectors.toSet()); |
128 | - default: | 128 | + newEstablishedLinks = ImmutableSet.<PacketLinkRealizedByOptical>builder() |
129 | - break; | 129 | + .addAll(this.establishedLinks) |
130 | + .add(link.get()) | ||
131 | + .build(); | ||
132 | + } else { | ||
133 | + // move PacketLink from established set to unestablished set | ||
134 | + Optional<PacketLinkRealizedByOptical> link = this.establishedLinks.stream() | ||
135 | + .filter(l -> l.isBetween(src, dst)).findAny(); | ||
136 | + checkState(link.isPresent()); | ||
137 | + | ||
138 | + newEstablishedLinks = this.establishedLinks.stream() | ||
139 | + .filter(l -> !l.isBetween(src, dst)) | ||
140 | + .collect(Collectors.toSet()); | ||
141 | + newUnestablishedLinks = ImmutableSet.<PacketLinkRealizedByOptical>builder() | ||
142 | + .addAll(this.unestablishedLinks) | ||
143 | + .add(link.get()) | ||
144 | + .build(); | ||
130 | } | 145 | } |
131 | 146 | ||
132 | - if (valid) { | 147 | + return new OpticalConnectivity(this.id, |
133 | - this.state = state; | 148 | + this.links, |
134 | - } | 149 | + this.requestBandwidth, |
135 | - | 150 | + this.requestLatency, |
136 | - return valid; | 151 | + newUnestablishedLinks, |
137 | - } | 152 | + newEstablishedLinks); |
138 | - | ||
139 | - public Bandwidth getOpticalCapacity() { | ||
140 | - return opticalCapacity; | ||
141 | - } | ||
142 | - | ||
143 | - public void setOpticalCapacity(Bandwidth opticalCapacity) { | ||
144 | - this.opticalCapacity = opticalCapacity; | ||
145 | } | 153 | } |
146 | 154 | ||
147 | - public void addRealizingLink(PacketLinkRealizedByOptical link) { | 155 | + public Set<PacketLinkRealizedByOptical> getRealizingLinks() { |
148 | - checkNotNull(link); | 156 | + return ImmutableSet.<PacketLinkRealizedByOptical>builder() |
149 | - realizingLinks.add(link); | 157 | + .addAll(unestablishedLinks) |
150 | - } | 158 | + .addAll(establishedLinks) |
151 | - | 159 | + .build(); |
152 | - public void removeRealizingLink(PacketLinkRealizedByOptical link) { | ||
153 | - checkNotNull(link); | ||
154 | - realizingLinks.remove(link); | ||
155 | } | 160 | } |
156 | 161 | ||
157 | - public Set<PacketLinkRealizedByOptical> getRealizingLinks() { | 162 | + public static OpticalConnectivity copyOf(OpticalConnectivity connectivity) { |
158 | - return ImmutableSet.copyOf(realizingLinks); | 163 | + return new OpticalConnectivity(connectivity); |
159 | } | 164 | } |
160 | } | 165 | } | ... | ... |
This diff is collapsed. Click to expand it.
... | @@ -33,9 +33,6 @@ public class PacketLinkRealizedByOptical { | ... | @@ -33,9 +33,6 @@ public class PacketLinkRealizedByOptical { |
33 | private final Bandwidth bandwidth; | 33 | private final Bandwidth bandwidth; |
34 | // TODO should be list of Intent Key? | 34 | // TODO should be list of Intent Key? |
35 | private final Key realizingIntentKey; | 35 | private final Key realizingIntentKey; |
36 | - // established=false represents that this (packet) link is expected to be | ||
37 | - // discovered after underlying (optical) path has been provisioned. | ||
38 | - private boolean established; | ||
39 | 36 | ||
40 | /** | 37 | /** |
41 | * Creates instance with specified parameters. | 38 | * Creates instance with specified parameters. |
... | @@ -51,7 +48,6 @@ public class PacketLinkRealizedByOptical { | ... | @@ -51,7 +48,6 @@ public class PacketLinkRealizedByOptical { |
51 | this.dst = dst; | 48 | this.dst = dst; |
52 | this.realizingIntentKey = realizingIntentKey; | 49 | this.realizingIntentKey = realizingIntentKey; |
53 | this.bandwidth = bandwidth; | 50 | this.bandwidth = bandwidth; |
54 | - this.established = false; | ||
55 | } | 51 | } |
56 | 52 | ||
57 | /** | 53 | /** |
... | @@ -129,24 +125,6 @@ public class PacketLinkRealizedByOptical { | ... | @@ -129,24 +125,6 @@ public class PacketLinkRealizedByOptical { |
129 | } | 125 | } |
130 | 126 | ||
131 | /** | 127 | /** |
132 | - * Returns whether packet link is realized or not. | ||
133 | - * | ||
134 | - * @return true if packet link is realized. false if not. | ||
135 | - */ | ||
136 | - public boolean isEstablished() { | ||
137 | - return established; | ||
138 | - } | ||
139 | - | ||
140 | - /** | ||
141 | - * Sets packet link to be established. | ||
142 | - * | ||
143 | - * @param established status of packet link | ||
144 | - */ | ||
145 | - public void setEstablished(boolean established) { | ||
146 | - this.established = established; | ||
147 | - } | ||
148 | - | ||
149 | - /** | ||
150 | * Check if packet link is between specified two connect points. | 128 | * Check if packet link is between specified two connect points. |
151 | * | 129 | * |
152 | * @param src source connect point | 130 | * @param src source connect point |
... | @@ -157,4 +135,36 @@ public class PacketLinkRealizedByOptical { | ... | @@ -157,4 +135,36 @@ public class PacketLinkRealizedByOptical { |
157 | return (this.src.equals(src) && this.dst.equals(dst)); | 135 | return (this.src.equals(src) && this.dst.equals(dst)); |
158 | } | 136 | } |
159 | 137 | ||
138 | + @Override | ||
139 | + public boolean equals(Object o) { | ||
140 | + if (this == o) { | ||
141 | + return true; | ||
142 | + } | ||
143 | + if (o == null || getClass() != o.getClass()) { | ||
144 | + return false; | ||
145 | + } | ||
146 | + | ||
147 | + PacketLinkRealizedByOptical that = (PacketLinkRealizedByOptical) o; | ||
148 | + | ||
149 | + if (!src.equals(that.src)) { | ||
150 | + return false; | ||
151 | + } | ||
152 | + if (!dst.equals(that.dst)) { | ||
153 | + return false; | ||
154 | + } | ||
155 | + if (!bandwidth.equals(that.bandwidth)) { | ||
156 | + return false; | ||
157 | + } | ||
158 | + return realizingIntentKey.equals(that.realizingIntentKey); | ||
159 | + | ||
160 | + } | ||
161 | + | ||
162 | + @Override | ||
163 | + public int hashCode() { | ||
164 | + int result = src.hashCode(); | ||
165 | + result = 31 * result + dst.hashCode(); | ||
166 | + result = 31 * result + bandwidth.hashCode(); | ||
167 | + result = 31 * result + realizingIntentKey.hashCode(); | ||
168 | + return result; | ||
169 | + } | ||
160 | } | 170 | } | ... | ... |
... | @@ -33,7 +33,7 @@ import java.util.Optional; | ... | @@ -33,7 +33,7 @@ import java.util.Optional; |
33 | public interface OpticalPathService extends ListenerService<OpticalPathEvent, OpticalPathListener> { | 33 | public interface OpticalPathService extends ListenerService<OpticalPathEvent, OpticalPathListener> { |
34 | 34 | ||
35 | /** | 35 | /** |
36 | - * Calculates optical path between connect points and sets up connectivity. | 36 | + * Calculates multi-layer path between connect points and sets up connectivity. |
37 | * | 37 | * |
38 | * @param ingress ingress port | 38 | * @param ingress ingress port |
39 | * @param egress egress port | 39 | * @param egress egress port |
... | @@ -45,9 +45,9 @@ public interface OpticalPathService extends ListenerService<OpticalPathEvent, Op | ... | @@ -45,9 +45,9 @@ public interface OpticalPathService extends ListenerService<OpticalPathEvent, Op |
45 | Bandwidth bandwidth, Duration latency); | 45 | Bandwidth bandwidth, Duration latency); |
46 | 46 | ||
47 | /** | 47 | /** |
48 | - * Sets up connectivity along given optical path. | 48 | + * Sets up connectivity along given multi-layer path including cross-connect links. |
49 | * | 49 | * |
50 | - * @param path path along which connectivity will be set up | 50 | + * @param path multi-layer path along which connectivity will be set up |
51 | * @param bandwidth required bandwidth. No bandwidth is assured if null. | 51 | * @param bandwidth required bandwidth. No bandwidth is assured if null. |
52 | * @param latency required latency. No latency is assured if null. | 52 | * @param latency required latency. No latency is assured if null. |
53 | * @return true if successful. false otherwise. | 53 | * @return true if successful. false otherwise. | ... | ... |
... | @@ -16,6 +16,7 @@ | ... | @@ -16,6 +16,7 @@ |
16 | 16 | ||
17 | package org.onosproject.newoptical; | 17 | package org.onosproject.newoptical; |
18 | 18 | ||
19 | +import com.google.common.collect.ImmutableSet; | ||
19 | import org.junit.After; | 20 | import org.junit.After; |
20 | import org.junit.Before; | 21 | import org.junit.Before; |
21 | import org.junit.Test; | 22 | import org.junit.Test; |
... | @@ -39,7 +40,9 @@ import org.onosproject.net.provider.ProviderId; | ... | @@ -39,7 +40,9 @@ import org.onosproject.net.provider.ProviderId; |
39 | import org.onosproject.newoptical.api.OpticalConnectivityId; | 40 | import org.onosproject.newoptical.api.OpticalConnectivityId; |
40 | 41 | ||
41 | import java.time.Duration; | 42 | import java.time.Duration; |
43 | +import java.util.Collections; | ||
42 | import java.util.List; | 44 | import java.util.List; |
45 | +import java.util.Set; | ||
43 | import java.util.stream.Collectors; | 46 | import java.util.stream.Collectors; |
44 | import java.util.stream.Stream; | 47 | import java.util.stream.Stream; |
45 | 48 | ||
... | @@ -94,10 +97,9 @@ public class OpticalConnectivityTest { | ... | @@ -94,10 +97,9 @@ public class OpticalConnectivityTest { |
94 | Link link2 = createLink(cp22, cp31); | 97 | Link link2 = createLink(cp22, cp31); |
95 | List<Link> links = Stream.of(link1, link2).collect(Collectors.toList()); | 98 | List<Link> links = Stream.of(link1, link2).collect(Collectors.toList()); |
96 | 99 | ||
97 | - Path path = new MockPath(cp12, cp31, links); | ||
98 | - | ||
99 | OpticalConnectivityId cid = OpticalConnectivityId.of(1L); | 100 | OpticalConnectivityId cid = OpticalConnectivityId.of(1L); |
100 | - OpticalConnectivity oc = new OpticalConnectivity(cid, path, bandwidth, latency); | 101 | + OpticalConnectivity oc = new OpticalConnectivity(cid, links, bandwidth, latency, |
102 | + Collections.emptySet(), Collections.emptySet()); | ||
101 | 103 | ||
102 | assertNotNull(oc); | 104 | assertNotNull(oc); |
103 | assertEquals(oc.id(), cid); | 105 | assertEquals(oc.id(), cid); |
... | @@ -133,8 +135,6 @@ public class OpticalConnectivityTest { | ... | @@ -133,8 +135,6 @@ public class OpticalConnectivityTest { |
133 | Link link6 = createLink(cp62, cp71); | 135 | Link link6 = createLink(cp62, cp71); |
134 | List<Link> links = Stream.of(link1, link2, link3, link4, link5, link6).collect(Collectors.toList()); | 136 | List<Link> links = Stream.of(link1, link2, link3, link4, link5, link6).collect(Collectors.toList()); |
135 | 137 | ||
136 | - Path path = new MockPath(cp12, cp71, links); | ||
137 | - | ||
138 | // Mocks 2 intents to create OduCtl connectivity | 138 | // Mocks 2 intents to create OduCtl connectivity |
139 | OpticalConnectivityIntent connIntent1 = createConnectivityIntent(cp21, cp32); | 139 | OpticalConnectivityIntent connIntent1 = createConnectivityIntent(cp21, cp32); |
140 | PacketLinkRealizedByOptical oduLink1 = PacketLinkRealizedByOptical.create(cp12, cp41, | 140 | PacketLinkRealizedByOptical oduLink1 = PacketLinkRealizedByOptical.create(cp12, cp41, |
... | @@ -144,29 +144,29 @@ public class OpticalConnectivityTest { | ... | @@ -144,29 +144,29 @@ public class OpticalConnectivityTest { |
144 | PacketLinkRealizedByOptical oduLink2 = PacketLinkRealizedByOptical.create(cp42, cp71, | 144 | PacketLinkRealizedByOptical oduLink2 = PacketLinkRealizedByOptical.create(cp42, cp71, |
145 | connIntent2); | 145 | connIntent2); |
146 | 146 | ||
147 | + Set<PacketLinkRealizedByOptical> plinks = ImmutableSet.of(oduLink1, oduLink2); | ||
148 | + | ||
147 | Bandwidth bandwidth = Bandwidth.bps(100); | 149 | Bandwidth bandwidth = Bandwidth.bps(100); |
148 | Duration latency = Duration.ofMillis(10); | 150 | Duration latency = Duration.ofMillis(10); |
149 | 151 | ||
150 | OpticalConnectivityId cid = OpticalConnectivityId.of(1L); | 152 | OpticalConnectivityId cid = OpticalConnectivityId.of(1L); |
151 | - OpticalConnectivity oc = new OpticalConnectivity(cid, path, bandwidth, latency); | 153 | + OpticalConnectivity oc1 = new OpticalConnectivity(cid, links, bandwidth, latency, |
152 | - | 154 | + plinks, Collections.emptySet()); |
153 | - oc.addRealizingLink(oduLink1); | ||
154 | - oc.addRealizingLink(oduLink2); | ||
155 | 155 | ||
156 | - assertTrue(oc.isAllRealizingLinkNotEstablished()); | 156 | + assertTrue(oc1.isAllRealizingLinkNotEstablished()); |
157 | - assertFalse(oc.isAllRealizingLinkEstablished()); | 157 | + assertFalse(oc1.isAllRealizingLinkEstablished()); |
158 | 158 | ||
159 | // Sets link realized by connIntent1 to be established | 159 | // Sets link realized by connIntent1 to be established |
160 | - oc.setLinkEstablished(cp12, cp41); | 160 | + OpticalConnectivity oc2 = oc1.setLinkEstablished(cp12, cp41, true); |
161 | 161 | ||
162 | - assertFalse(oc.isAllRealizingLinkNotEstablished()); | 162 | + assertFalse(oc2.isAllRealizingLinkNotEstablished()); |
163 | - assertFalse(oc.isAllRealizingLinkEstablished()); | 163 | + assertFalse(oc2.isAllRealizingLinkEstablished()); |
164 | 164 | ||
165 | // Sets link realized by connIntent2 to be established | 165 | // Sets link realized by connIntent2 to be established |
166 | - oc.setLinkEstablished(cp42, cp71); | 166 | + OpticalConnectivity oc3 = oc2.setLinkEstablished(cp42, cp71, true); |
167 | 167 | ||
168 | - assertFalse(oc.isAllRealizingLinkNotEstablished()); | 168 | + assertFalse(oc3.isAllRealizingLinkNotEstablished()); |
169 | - assertTrue(oc.isAllRealizingLinkEstablished()); | 169 | + assertTrue(oc3.isAllRealizingLinkEstablished()); |
170 | } | 170 | } |
171 | 171 | ||
172 | /** | 172 | /** |
... | @@ -196,8 +196,6 @@ public class OpticalConnectivityTest { | ... | @@ -196,8 +196,6 @@ public class OpticalConnectivityTest { |
196 | Link link6 = createLink(cp62, cp71); | 196 | Link link6 = createLink(cp62, cp71); |
197 | List<Link> links = Stream.of(link1, link2, link3, link4, link5, link6).collect(Collectors.toList()); | 197 | List<Link> links = Stream.of(link1, link2, link3, link4, link5, link6).collect(Collectors.toList()); |
198 | 198 | ||
199 | - Path path = new MockPath(cp12, cp71, links); | ||
200 | - | ||
201 | // Mocks 2 intents to create Och connectivity | 199 | // Mocks 2 intents to create Och connectivity |
202 | OpticalCircuitIntent circuitIntent1 = createCircuitIntent(cp21, cp32); | 200 | OpticalCircuitIntent circuitIntent1 = createCircuitIntent(cp21, cp32); |
203 | PacketLinkRealizedByOptical ochLink1 = PacketLinkRealizedByOptical.create(cp12, cp41, | 201 | PacketLinkRealizedByOptical ochLink1 = PacketLinkRealizedByOptical.create(cp12, cp41, |
... | @@ -207,29 +205,29 @@ public class OpticalConnectivityTest { | ... | @@ -207,29 +205,29 @@ public class OpticalConnectivityTest { |
207 | PacketLinkRealizedByOptical ochLink2 = PacketLinkRealizedByOptical.create(cp42, cp71, | 205 | PacketLinkRealizedByOptical ochLink2 = PacketLinkRealizedByOptical.create(cp42, cp71, |
208 | circuitIntent2); | 206 | circuitIntent2); |
209 | 207 | ||
208 | + Set<PacketLinkRealizedByOptical> plinks = ImmutableSet.of(ochLink1, ochLink2); | ||
209 | + | ||
210 | Bandwidth bandwidth = Bandwidth.bps(100); | 210 | Bandwidth bandwidth = Bandwidth.bps(100); |
211 | Duration latency = Duration.ofMillis(10); | 211 | Duration latency = Duration.ofMillis(10); |
212 | 212 | ||
213 | OpticalConnectivityId cid = OpticalConnectivityId.of(1L); | 213 | OpticalConnectivityId cid = OpticalConnectivityId.of(1L); |
214 | - OpticalConnectivity oc = new OpticalConnectivity(cid, path, bandwidth, latency); | 214 | + OpticalConnectivity oc1 = new OpticalConnectivity(cid, links, bandwidth, latency, |
215 | - | 215 | + plinks, Collections.emptySet()); |
216 | - oc.addRealizingLink(ochLink1); | ||
217 | - oc.addRealizingLink(ochLink2); | ||
218 | 216 | ||
219 | - assertTrue(oc.isAllRealizingLinkNotEstablished()); | 217 | + assertTrue(oc1.isAllRealizingLinkNotEstablished()); |
220 | - assertFalse(oc.isAllRealizingLinkEstablished()); | 218 | + assertFalse(oc1.isAllRealizingLinkEstablished()); |
221 | 219 | ||
222 | // Sets link realized by circuitIntent1 to be established | 220 | // Sets link realized by circuitIntent1 to be established |
223 | - oc.setLinkEstablished(cp12, cp41); | 221 | + OpticalConnectivity oc2 = oc1.setLinkEstablished(cp12, cp41, true); |
224 | 222 | ||
225 | - assertFalse(oc.isAllRealizingLinkNotEstablished()); | 223 | + assertFalse(oc2.isAllRealizingLinkNotEstablished()); |
226 | - assertFalse(oc.isAllRealizingLinkEstablished()); | 224 | + assertFalse(oc2.isAllRealizingLinkEstablished()); |
227 | 225 | ||
228 | // Sets link realized by circuitIntent2 to be established | 226 | // Sets link realized by circuitIntent2 to be established |
229 | - oc.setLinkEstablished(cp42, cp71); | 227 | + OpticalConnectivity oc3 = oc2.setLinkEstablished(cp42, cp71, true); |
230 | 228 | ||
231 | - assertFalse(oc.isAllRealizingLinkNotEstablished()); | 229 | + assertFalse(oc3.isAllRealizingLinkNotEstablished()); |
232 | - assertTrue(oc.isAllRealizingLinkEstablished()); | 230 | + assertTrue(oc3.isAllRealizingLinkEstablished()); |
233 | } | 231 | } |
234 | 232 | ||
235 | private ConnectPoint createConnectPoint(long devIdNum, long portIdNum) { | 233 | private ConnectPoint createConnectPoint(long devIdNum, long portIdNum) { | ... | ... |
This diff is collapsed. Click to expand it.
-
Please register or login to post a comment