[ONOS-4562] Support flat and vlan network which has not segmentationId.
Change-Id: I06babd1d4a123146e4ef53caa90658d5f58dac16
Showing
1 changed file
with
19 additions
and
9 deletions
... | @@ -29,6 +29,7 @@ import org.onosproject.vtnrsc.TenantNetwork; | ... | @@ -29,6 +29,7 @@ import org.onosproject.vtnrsc.TenantNetwork; |
29 | import org.onosproject.vtnrsc.TenantNetwork.State; | 29 | import org.onosproject.vtnrsc.TenantNetwork.State; |
30 | import org.onosproject.vtnrsc.TenantNetwork.Type; | 30 | import org.onosproject.vtnrsc.TenantNetwork.Type; |
31 | import org.onosproject.vtnrsc.TenantNetworkId; | 31 | import org.onosproject.vtnrsc.TenantNetworkId; |
32 | +import org.onosproject.vtnrsc.service.VtnRscService; | ||
32 | import org.onosproject.vtnrsc.tenantnetwork.TenantNetworkService; | 33 | import org.onosproject.vtnrsc.tenantnetwork.TenantNetworkService; |
33 | import org.onosproject.vtnweb.web.TenantNetworkCodec; | 34 | import org.onosproject.vtnweb.web.TenantNetworkCodec; |
34 | import org.slf4j.Logger; | 35 | import org.slf4j.Logger; |
... | @@ -278,11 +279,16 @@ public class TenantNetworkWebResource extends AbstractWebResource { | ... | @@ -278,11 +279,16 @@ public class TenantNetworkWebResource extends AbstractWebResource { |
278 | boolean adminStateUp = node.get("admin_state_up").asBoolean(); | 279 | boolean adminStateUp = node.get("admin_state_up").asBoolean(); |
279 | String state = node.get("status").asText(); | 280 | String state = node.get("status").asText(); |
280 | boolean shared = node.get("shared").asBoolean(); | 281 | boolean shared = node.get("shared").asBoolean(); |
281 | - String tenantId = node.get("tenant_id").asText(); | 282 | + String tenantIdStr = node.get("tenant_id").asText(); |
282 | boolean routerExternal = node.get("router:external").asBoolean(); | 283 | boolean routerExternal = node.get("router:external").asBoolean(); |
283 | String type = node.get("provider:network_type").asText(); | 284 | String type = node.get("provider:network_type").asText(); |
284 | String physicalNetwork = node.get("provider:physical_network").asText(); | 285 | String physicalNetwork = node.get("provider:physical_network").asText(); |
285 | - String segmentationId = node.get("provider:segmentation_id").asText(); | 286 | + String segmentationIdStr = node.get("provider:segmentation_id").asText(); |
287 | + SegmentationId segmentationId = SegmentationId.segmentationId(segmentationIdStr); | ||
288 | + TenantId tenantId = TenantId.tenantId(tenantIdStr); | ||
289 | + if (segmentationIdStr == null || segmentationIdStr.equals("null")) { | ||
290 | + segmentationId = get(VtnRscService.class).getL3vni(tenantId); | ||
291 | + } | ||
286 | TenantNetworkId id = null; | 292 | TenantNetworkId id = null; |
287 | if (flag.equals(CREATE_NETWORK)) { | 293 | if (flag.equals(CREATE_NETWORK)) { |
288 | id = TenantNetworkId.networkId(node.get("id").asText()); | 294 | id = TenantNetworkId.networkId(node.get("id").asText()); |
... | @@ -295,13 +301,12 @@ public class TenantNetworkWebResource extends AbstractWebResource { | ... | @@ -295,13 +301,12 @@ public class TenantNetworkWebResource extends AbstractWebResource { |
295 | adminStateUp, | 301 | adminStateUp, |
296 | isState(state), | 302 | isState(state), |
297 | shared, | 303 | shared, |
298 | - TenantId.tenantId(tenantId), | 304 | + tenantId, |
299 | routerExternal, | 305 | routerExternal, |
300 | isType(type), | 306 | isType(type), |
301 | PhysicalNetwork | 307 | PhysicalNetwork |
302 | .physicalNetwork(physicalNetwork), | 308 | .physicalNetwork(physicalNetwork), |
303 | - SegmentationId | 309 | + segmentationId); |
304 | - .segmentationId(segmentationId)); | ||
305 | networksMap.putIfAbsent(id, network); | 310 | networksMap.putIfAbsent(id, network); |
306 | 311 | ||
307 | return Collections.unmodifiableCollection(networksMap.values()); | 312 | return Collections.unmodifiableCollection(networksMap.values()); |
... | @@ -324,23 +329,28 @@ public class TenantNetworkWebResource extends AbstractWebResource { | ... | @@ -324,23 +329,28 @@ public class TenantNetworkWebResource extends AbstractWebResource { |
324 | boolean adminStateUp = node.get("admin_state_up").asBoolean(); | 329 | boolean adminStateUp = node.get("admin_state_up").asBoolean(); |
325 | String state = node.get("status").asText(); | 330 | String state = node.get("status").asText(); |
326 | boolean shared = node.get("shared").asBoolean(); | 331 | boolean shared = node.get("shared").asBoolean(); |
327 | - String tenantId = node.get("tenant_id").asText(); | 332 | + String tenantIdStr = node.get("tenant_id").asText(); |
328 | boolean routerExternal = node.get("router:external") | 333 | boolean routerExternal = node.get("router:external") |
329 | .asBoolean(); | 334 | .asBoolean(); |
330 | String type = node.get("provider:network_type").asText(); | 335 | String type = node.get("provider:network_type").asText(); |
331 | String physicalNetwork = node.get("provider:physical_network").asText(); | 336 | String physicalNetwork = node.get("provider:physical_network").asText(); |
332 | - String segmentationId = node.get("provider:segmentation_id").asText(); | 337 | + String segmentationIdStr = node.get("provider:segmentation_id").asText(); |
338 | + SegmentationId segmentationId = SegmentationId.segmentationId(segmentationIdStr); | ||
339 | + TenantId tenantId = TenantId.tenantId(tenantIdStr); | ||
340 | + if (segmentationIdStr == null || segmentationIdStr.equals("null")) { | ||
341 | + segmentationId = get(VtnRscService.class).getL3vni(tenantId); | ||
342 | + } | ||
333 | network = new DefaultTenantNetwork( | 343 | network = new DefaultTenantNetwork( |
334 | TenantNetworkId.networkId(id), | 344 | TenantNetworkId.networkId(id), |
335 | name, | 345 | name, |
336 | adminStateUp, | 346 | adminStateUp, |
337 | isState(state), | 347 | isState(state), |
338 | shared, | 348 | shared, |
339 | - TenantId.tenantId(tenantId), | 349 | + tenantId, |
340 | routerExternal, | 350 | routerExternal, |
341 | isType(type), | 351 | isType(type), |
342 | PhysicalNetwork.physicalNetwork(physicalNetwork), | 352 | PhysicalNetwork.physicalNetwork(physicalNetwork), |
343 | - SegmentationId.segmentationId(segmentationId)); | 353 | + segmentationId); |
344 | networksMap.putIfAbsent(TenantNetworkId.networkId(id), network); | 354 | networksMap.putIfAbsent(TenantNetworkId.networkId(id), network); |
345 | } | 355 | } |
346 | 356 | ... | ... |
-
Please register or login to post a comment