[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