Adjust policy Networks to platform changes
Network & segment tests to follow Change-Id: I4c35263b738a682b91182bff0b907a6e218451e1
This commit is contained in:
committed by
Adit Sarfaty
parent
72a431025c
commit
78d6f75dda
@@ -17,21 +17,21 @@
|
|||||||
#
|
#
|
||||||
# Examples:
|
# Examples:
|
||||||
#
|
#
|
||||||
# Create network 'test' on provider provider_test:
|
# Create tier1 'test' on tier0 provider_test:
|
||||||
# python poltool.py -o create -r network -i test -a "name=test"
|
# python poltool.py -o create -r tier1 -i test -a "name=test"
|
||||||
# -a "provider=provider_test"
|
# -a "tier0=provider_test"
|
||||||
# List all networks:
|
# List all tier1s:
|
||||||
# python poltool.py -o get -r network
|
# python poltool.py -o get -r tier1
|
||||||
# Show network 'test':
|
# Show tier1 'test':
|
||||||
# python poltool.py -o get -r network -i test
|
# python poltool.py -o get -r tier1 -i test
|
||||||
# Create segment seg1 on network test:
|
# Create segment seg1 on tier1 test:
|
||||||
# python poltool.py -o create -r network_segment -i "seg1" -a "name=seg1"
|
# python poltool.py -o create -r tier1_segment -i "seg1" -a "name=seg1"
|
||||||
# -a "network_id=test"
|
# -a "tier1_id=test"
|
||||||
# -a "subnet:gateway_address=1.1.1.1/32"
|
# -a "subnet:gateway_address=1.1.1.1/32"
|
||||||
# Delete segment seg1:
|
# Delete segment seg1:
|
||||||
# python poltool.py -o delete -r network_segment -i "test:seg1"
|
# python poltool.py -o delete -r tier1_segment -i "test:seg1"
|
||||||
# Delete all segments under network test:
|
# Delete all segments under tier1 test:
|
||||||
# python poltool.py -o delete -r network_segment -i "test:all"
|
# python poltool.py -o delete -r tier1_segment -i "test:all"
|
||||||
|
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
@@ -52,8 +52,8 @@ path.append(os.path.abspath("../../"))
|
|||||||
|
|
||||||
|
|
||||||
OPERATIONS = ("create", "update", "delete", "get")
|
OPERATIONS = ("create", "update", "delete", "get")
|
||||||
RESOURCES = ("domain", "service", "icmp_service", "group", "network",
|
RESOURCES = ("domain", "service", "icmp_service", "group", "tier1",
|
||||||
"segment", "network_segment")
|
"segment", "tier1_segment")
|
||||||
|
|
||||||
|
|
||||||
def get_resource_api(lib, resource_type):
|
def get_resource_api(lib, resource_type):
|
||||||
@@ -86,11 +86,14 @@ def build_args(resource_type, resource_id, args):
|
|||||||
from vmware_nsxlib.v3 import policy_defs
|
from vmware_nsxlib.v3 import policy_defs
|
||||||
|
|
||||||
if "_" in resource_type:
|
if "_" in resource_type:
|
||||||
# handle cases like network_segment_id
|
# handle cases like tier1_segment_id
|
||||||
# type is network_segment, but id parameter is segment_id
|
# type is tier1_segment, but id parameter is segment_id
|
||||||
resource_type = "_".join(resource_type.split("_")[1:])
|
resource_type = "_".join(resource_type.split("_")[1:])
|
||||||
|
|
||||||
args["%s_id" % resource_type] = resource_id
|
args["%s_id" % resource_type] = resource_id
|
||||||
|
if "name" not in args:
|
||||||
|
args["name"] = resource_id
|
||||||
|
|
||||||
subresources = {}
|
subresources = {}
|
||||||
for arg, value in args.items():
|
for arg, value in args.items():
|
||||||
if ":" in arg:
|
if ":" in arg:
|
||||||
|
|||||||
@@ -18,9 +18,19 @@ python poltool.py -o create -r icmp_service -i service2 -a "name=sanity" -a "icm
|
|||||||
python poltool.py -o update -r icmp_service -i service2 -a "name=insane"
|
python poltool.py -o update -r icmp_service -i service2 -a "name=insane"
|
||||||
python poltool.py -o get -r icmp_service -i service2
|
python poltool.py -o get -r icmp_service -i service2
|
||||||
|
|
||||||
# TODO: networks, segments, network segments, comm maps, enforcement points, sites
|
# TIER-0 "test" needs to be pre-created for below
|
||||||
|
# tier-1s
|
||||||
|
python poltool.py -o create -r tier1 -i router1 -a "name=sanity" -a "tier0=test"
|
||||||
|
python poltool.py -o update -r tier1 -i router1 -a "name=insane"
|
||||||
|
python poltool.py -o get -r tier1 -i router1
|
||||||
|
|
||||||
|
# infra segments
|
||||||
|
python poltool.py -o create -r segment -i seg1 -a "name=sanity" -a "subnet:gateway_address=1.1.1.1/32"
|
||||||
|
python poltool.py -o create -r segment -i seg1 -a "name=insane"
|
||||||
|
|
||||||
# cleanup
|
# cleanup
|
||||||
|
python poltool.py -o delete -r segment -i seg1
|
||||||
|
python poltool.py -o delete -r tier1 -i router1
|
||||||
python poltool.py -o delete -r service -i service1
|
python poltool.py -o delete -r service -i service1
|
||||||
python poltool.py -o delete -r icmp_service -i service2
|
python poltool.py -o delete -r icmp_service -i service2
|
||||||
python poltool.py -o delete -r group -i "domain1:all"
|
python poltool.py -o delete -r group -i "domain1:all"
|
||||||
|
|||||||
@@ -386,8 +386,8 @@ class NsxPolicyLib(NsxLibBase):
|
|||||||
self.ip_protocol_service = (
|
self.ip_protocol_service = (
|
||||||
policy_resources.NsxPolicyIPProtocolServiceApi(
|
policy_resources.NsxPolicyIPProtocolServiceApi(
|
||||||
self.policy_api))
|
self.policy_api))
|
||||||
self.network = policy_resources.NsxPolicyNetworkApi(self.policy_api)
|
self.tier1 = policy_resources.NsxPolicyTier1Api(self.policy_api)
|
||||||
self.network_segment = policy_resources.NsxPolicyNetworkSegmentApi(
|
self.tier1_segment = policy_resources.NsxPolicyTier1SegmentApi(
|
||||||
self.policy_api)
|
self.policy_api)
|
||||||
self.segment = policy_resources.NsxPolicySegmentApi(self.policy_api)
|
self.segment = policy_resources.NsxPolicySegmentApi(self.policy_api)
|
||||||
self.comm_map = policy_resources.NsxPolicyCommunicationMapApi(
|
self.comm_map = policy_resources.NsxPolicyCommunicationMapApi(
|
||||||
|
|||||||
@@ -45,3 +45,7 @@ CATEGORY_ENVIRONMENT = 'Environment'
|
|||||||
CATEGORY_APPLICATION = 'Application'
|
CATEGORY_APPLICATION = 'Application'
|
||||||
|
|
||||||
ACTIVE_STANDBY = 'ACTIVE_STANDBY'
|
ACTIVE_STANDBY = 'ACTIVE_STANDBY'
|
||||||
|
ACTIVE_ACTIVE = 'ACTIVE_ACTIVE'
|
||||||
|
|
||||||
|
PREEMPTIVE = 'PREEMPTIVE'
|
||||||
|
NON_PREEMPTIVE = 'NON_PREEMPTIVE'
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ from vmware_nsxlib.v3 import policy_constants
|
|||||||
TENANTS_PATH_PATTERN = "%s/"
|
TENANTS_PATH_PATTERN = "%s/"
|
||||||
DOMAINS_PATH_PATTERN = TENANTS_PATH_PATTERN + "domains/"
|
DOMAINS_PATH_PATTERN = TENANTS_PATH_PATTERN + "domains/"
|
||||||
PROVIDERS_PATH_PATTERN = TENANTS_PATH_PATTERN + "providers/"
|
PROVIDERS_PATH_PATTERN = TENANTS_PATH_PATTERN + "providers/"
|
||||||
NETWORKS_PATH_PATTERN = TENANTS_PATH_PATTERN + "networks/"
|
TIER1S_PATH_PATTERN = TENANTS_PATH_PATTERN + "tier-1s/"
|
||||||
SERVICES_PATH_PATTERN = TENANTS_PATH_PATTERN + "services/"
|
SERVICES_PATH_PATTERN = TENANTS_PATH_PATTERN + "services/"
|
||||||
REALIZED_STATE_EF = (TENANTS_PATH_PATTERN +
|
REALIZED_STATE_EF = (TENANTS_PATH_PATTERN +
|
||||||
"realized-state/enforcement-points/%s/")
|
"realized-state/enforcement-points/%s/")
|
||||||
@@ -153,27 +153,57 @@ class DomainDef(ResourceDef):
|
|||||||
return ('tenant', 'domain_id')
|
return ('tenant', 'domain_id')
|
||||||
|
|
||||||
|
|
||||||
class NetworkDef(ResourceDef):
|
class RouteAdvertisement(object):
|
||||||
|
|
||||||
|
types = {'static_routes': 'TIER1_STATIC_ROUTES',
|
||||||
|
'subnets': 'TIER1_SUBNETS',
|
||||||
|
'nat': 'TIER1_NAT',
|
||||||
|
'lb_vip': 'TIER1_LB_VIP',
|
||||||
|
'lb_snat': 'TIER1_LB_SNAT'}
|
||||||
|
|
||||||
|
def __init__(self,
|
||||||
|
static_routes=False,
|
||||||
|
subnets=False,
|
||||||
|
nat=False,
|
||||||
|
lb_vip=False,
|
||||||
|
lb_snat=False):
|
||||||
|
self.static_routes = static_routes
|
||||||
|
self.subnets = subnets
|
||||||
|
self.nat = nat
|
||||||
|
self.lb_vip = lb_vip
|
||||||
|
self.lb_snat = lb_snat
|
||||||
|
|
||||||
|
def get_obj_dict(self):
|
||||||
|
return [value for key, value in self.types.items()
|
||||||
|
if getattr(self, key)]
|
||||||
|
|
||||||
|
|
||||||
|
class Tier1Def(ResourceDef):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def path_pattern(self):
|
def path_pattern(self):
|
||||||
return NETWORKS_PATH_PATTERN
|
return TIER1S_PATH_PATTERN
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def path_ids(self):
|
def path_ids(self):
|
||||||
return ('tenant', 'network_id')
|
return ('tenant', 'tier1_id')
|
||||||
|
|
||||||
def get_obj_dict(self):
|
def get_obj_dict(self):
|
||||||
body = super(NetworkDef, self).get_obj_dict()
|
body = super(Tier1Def, self).get_obj_dict()
|
||||||
# TODO(annak): replace with provider path when provider is exposed
|
|
||||||
body['provider'] = "/" + TENANTS_PATH_PATTERN % self.get_tenant() + \
|
|
||||||
"providers/" + self.get_attr('provider')
|
|
||||||
|
|
||||||
for attr in ('ha_mode', 'force_whitelisting'):
|
# TODO(annak): replace with provider path when provider is exposed
|
||||||
|
tier0 = self.get_attr('tier0')
|
||||||
|
if tier0:
|
||||||
|
tenant = TENANTS_PATH_PATTERN % self.get_tenant()
|
||||||
|
body['tier0_path'] = "/%stier-0s/%s" % (tenant, tier0)
|
||||||
|
|
||||||
|
for attr in ('failover_mode', 'force_whitelisting'):
|
||||||
body[attr] = self.get_attr(attr)
|
body[attr] = self.get_attr(attr)
|
||||||
|
|
||||||
if self.get_attr('ip_addresses'):
|
if self.get_attr('route_adv'):
|
||||||
body['ip_addresses'] = self.get_attr('ip_addresses')
|
body['route_advertisement_types'] = self.get_attr(
|
||||||
|
'route_adv').get_obj_dict()
|
||||||
|
|
||||||
return body
|
return body
|
||||||
|
|
||||||
|
|
||||||
@@ -204,22 +234,22 @@ class BaseSegmentDef(ResourceDef):
|
|||||||
return body
|
return body
|
||||||
|
|
||||||
|
|
||||||
class NetworkSegmentDef(BaseSegmentDef):
|
class Tier1SegmentDef(BaseSegmentDef):
|
||||||
'''Network segments can not move to different network '''
|
'''Tier1 segments can not move to different tier1 '''
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def path_pattern(self):
|
def path_pattern(self):
|
||||||
return NETWORKS_PATH_PATTERN + "%s/segments/"
|
return TIER1S_PATH_PATTERN + "%s/segments/"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def path_ids(self):
|
def path_ids(self):
|
||||||
return ('tenant', 'network_id', 'segment_id')
|
return ('tenant', 'tier1_id', 'segment_id')
|
||||||
|
|
||||||
|
|
||||||
class SegmentDef(BaseSegmentDef):
|
class SegmentDef(BaseSegmentDef):
|
||||||
'''These segments don't belong to particular network.
|
'''These segments don't belong to particular tier1.
|
||||||
|
|
||||||
And can be attached and re-attached to different networks
|
And can be attached and re-attached to different tier1s
|
||||||
'''
|
'''
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@@ -230,6 +260,15 @@ class SegmentDef(BaseSegmentDef):
|
|||||||
def path_ids(self):
|
def path_ids(self):
|
||||||
return ('tenant', 'segment_id')
|
return ('tenant', 'segment_id')
|
||||||
|
|
||||||
|
def get_obj_dict(self):
|
||||||
|
body = super(SegmentDef, self).get_obj_dict()
|
||||||
|
if self.get_attr('tier1_id'):
|
||||||
|
tier1 = Tier1Def(tier1_id=self.get_attr('tier1_id'),
|
||||||
|
tenant=self.get_tenant())
|
||||||
|
body['connectivity_path'] = tier1.get_resource_full_path()
|
||||||
|
# TODO(annak): support also tier0
|
||||||
|
return body
|
||||||
|
|
||||||
|
|
||||||
class Condition(object):
|
class Condition(object):
|
||||||
def __init__(self, value, key=policy_constants.CONDITION_KEY_TAG,
|
def __init__(self, value, key=policy_constants.CONDITION_KEY_TAG,
|
||||||
|
|||||||
@@ -54,10 +54,6 @@ class NsxPolicyResourceBase(object):
|
|||||||
def create_or_overwrite(self, *args, **kwargs):
|
def create_or_overwrite(self, *args, **kwargs):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@abc.abstractmethod
|
|
||||||
def update(self, uuid, *args, **kwargs):
|
|
||||||
pass
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _init_obj_uuid(obj_uuid):
|
def _init_obj_uuid(obj_uuid):
|
||||||
if not obj_uuid:
|
if not obj_uuid:
|
||||||
@@ -473,68 +469,75 @@ class NsxPolicyIPProtocolServiceApi(NsxPolicyServiceBase):
|
|||||||
protocol_number=protocol_number)
|
protocol_number=protocol_number)
|
||||||
|
|
||||||
|
|
||||||
class NsxPolicyNetworkApi(NsxPolicyResourceBase):
|
# TODO(annak): add/remove route specific advertisement
|
||||||
"""NSX Network API """
|
class NsxPolicyTier1Api(NsxPolicyResourceBase):
|
||||||
|
"""NSX Tier1 API """
|
||||||
@property
|
@property
|
||||||
def entry_def(self):
|
def entry_def(self):
|
||||||
return policy_defs.NetworkDef
|
return policy_defs.Tier1Def
|
||||||
|
|
||||||
def create_or_overwrite(self, name, network_id=None, description=None,
|
def build_route_advertisement(self, static_routes=False, subnets=False,
|
||||||
provider=None,
|
nat=False, lb_vip=False, lb_snat=False):
|
||||||
ip_addresses=None,
|
return policy_defs.RouteAdvertisement(static_routes, subnets,
|
||||||
ha_mode=policy_constants.ACTIVE_STANDBY,
|
nat, lb_vip, lb_snat)
|
||||||
|
|
||||||
|
def create_or_overwrite(self, name, tier1_id=None, description=None,
|
||||||
|
tier0=None,
|
||||||
force_whitelisting=False,
|
force_whitelisting=False,
|
||||||
|
failover_mode=policy_constants.NON_PREEMPTIVE,
|
||||||
|
route_advertisement=None,
|
||||||
tags=None,
|
tags=None,
|
||||||
tenant=policy_constants.POLICY_INFRA_TENANT):
|
tenant=policy_constants.POLICY_INFRA_TENANT):
|
||||||
|
|
||||||
network_id = self._init_obj_uuid(network_id)
|
tier1_id = self._init_obj_uuid(tier1_id)
|
||||||
network_def = self.entry_def(network_id=network_id,
|
tier1_def = self.entry_def(tier1_id=tier1_id,
|
||||||
name=name,
|
name=name,
|
||||||
description=description,
|
description=description,
|
||||||
provider=provider,
|
tier0=tier0,
|
||||||
ip_addresses=ip_addresses,
|
|
||||||
ha_mode=ha_mode,
|
|
||||||
force_whitelisting=force_whitelisting,
|
force_whitelisting=force_whitelisting,
|
||||||
tags=tags,
|
tags=tags,
|
||||||
|
failover_mode=failover_mode,
|
||||||
|
route_advertisement=route_advertisement,
|
||||||
tenant=tenant)
|
tenant=tenant)
|
||||||
return self.policy_api.create_or_update(network_def)
|
return self.policy_api.create_or_update(tier1_def)
|
||||||
|
|
||||||
def delete(self, network_id, tenant=policy_constants.POLICY_INFRA_TENANT):
|
def delete(self, tier1_id, tenant=policy_constants.POLICY_INFRA_TENANT):
|
||||||
network_def = self.entry_def(network_id=network_id, tenant=tenant)
|
tier1_def = self.entry_def(tier1_id=tier1_id, tenant=tenant)
|
||||||
self.policy_api.delete(network_def)
|
self.policy_api.delete(tier1_def)
|
||||||
|
|
||||||
def get(self, network_id, tenant=policy_constants.POLICY_INFRA_TENANT):
|
def get(self, tier1_id, tenant=policy_constants.POLICY_INFRA_TENANT):
|
||||||
network_def = self.entry_def(network_id=network_id, tenant=tenant)
|
tier1_def = self.entry_def(tier1_id=tier1_id, tenant=tenant)
|
||||||
return self.policy_api.get(network_def)
|
return self.policy_api.get(tier1_def)
|
||||||
|
|
||||||
def list(self, tenant=policy_constants.POLICY_INFRA_TENANT):
|
def list(self, tenant=policy_constants.POLICY_INFRA_TENANT):
|
||||||
network_def = self.entry_def(tenant=tenant)
|
tier1_def = self.entry_def(tenant=tenant)
|
||||||
return self.policy_api.list(network_def)['results']
|
return self.policy_api.list(tier1_def)['results']
|
||||||
|
|
||||||
def update(self, network_id, name=None, description=None,
|
def update(self, tier1_id, name=None, description=None,
|
||||||
ip_addresses=None, ha_mode=None,
|
|
||||||
force_whitelisting=None,
|
force_whitelisting=None,
|
||||||
|
failover_mode=None,
|
||||||
|
route_advertisement=None,
|
||||||
tags=None,
|
tags=None,
|
||||||
tenant=policy_constants.POLICY_INFRA_TENANT):
|
tenant=policy_constants.POLICY_INFRA_TENANT):
|
||||||
network_def = policy_defs.NetworkDef(network_id=network_id,
|
tier1_def = policy_defs.Tier1Def(tier1_id=tier1_id,
|
||||||
tenant=tenant)
|
tenant=tenant)
|
||||||
network_def.update_attributes_in_body(
|
tier1_def.update_attributes_in_body(
|
||||||
name=name,
|
name=name,
|
||||||
description=description,
|
description=description,
|
||||||
ip_addresses=ip_addresses,
|
|
||||||
ha_mode=ha_mode,
|
|
||||||
force_whitelisting=force_whitelisting,
|
force_whitelisting=force_whitelisting,
|
||||||
|
failover_mode=failover_mode,
|
||||||
|
route_advertisement=route_advertisement,
|
||||||
tags=tags)
|
tags=tags)
|
||||||
return self.policy_api.create_or_update(network_def)
|
return self.policy_api.create_or_update(tier1_def)
|
||||||
|
|
||||||
|
|
||||||
class NsxPolicyNetworkSegmentApi(NsxPolicyResourceBase):
|
class NsxPolicyTier1SegmentApi(NsxPolicyResourceBase):
|
||||||
"""NSX Network Segment API """
|
"""NSX Tier1 Segment API """
|
||||||
@property
|
@property
|
||||||
def entry_def(self):
|
def entry_def(self):
|
||||||
return policy_defs.NetworkSegmentDef
|
return policy_defs.Tier1SegmentDef
|
||||||
|
|
||||||
def create_or_overwrite(self, name, network_id=None,
|
def create_or_overwrite(self, name, tier1_id=None,
|
||||||
segment_id=None, description=None,
|
segment_id=None, description=None,
|
||||||
subnets=None,
|
subnets=None,
|
||||||
dns_domain_name=None,
|
dns_domain_name=None,
|
||||||
@@ -543,7 +546,7 @@ class NsxPolicyNetworkSegmentApi(NsxPolicyResourceBase):
|
|||||||
tenant=policy_constants.POLICY_INFRA_TENANT):
|
tenant=policy_constants.POLICY_INFRA_TENANT):
|
||||||
|
|
||||||
segment_id = self._init_obj_uuid(segment_id)
|
segment_id = self._init_obj_uuid(segment_id)
|
||||||
segment_def = self.entry_def(network_id=network_id,
|
segment_def = self.entry_def(tier1_id=tier1_id,
|
||||||
segment_id=segment_id,
|
segment_id=segment_id,
|
||||||
name=name,
|
name=name,
|
||||||
description=description,
|
description=description,
|
||||||
@@ -554,49 +557,35 @@ class NsxPolicyNetworkSegmentApi(NsxPolicyResourceBase):
|
|||||||
tenant=tenant)
|
tenant=tenant)
|
||||||
return self.policy_api.create_or_update(segment_def)
|
return self.policy_api.create_or_update(segment_def)
|
||||||
|
|
||||||
def delete(self, network_id, segment_id,
|
def delete(self, tier1_id, segment_id,
|
||||||
tenant=policy_constants.POLICY_INFRA_TENANT):
|
tenant=policy_constants.POLICY_INFRA_TENANT):
|
||||||
segment_def = self.entry_def(network_id=network_id,
|
segment_def = self.entry_def(tier1_id=tier1_id,
|
||||||
segment_id=segment_id,
|
segment_id=segment_id,
|
||||||
tenant=tenant)
|
tenant=tenant)
|
||||||
self.policy_api.delete(segment_def)
|
self.policy_api.delete(segment_def)
|
||||||
|
|
||||||
def get(self, network_id, segment_id,
|
def get(self, tier1_id, segment_id,
|
||||||
tenant=policy_constants.POLICY_INFRA_TENANT):
|
tenant=policy_constants.POLICY_INFRA_TENANT):
|
||||||
segment_def = self.entry_def(network_id=network_id,
|
segment_def = self.entry_def(tier1_id=tier1_id,
|
||||||
segment_id=segment_id,
|
segment_id=segment_id,
|
||||||
tenant=tenant)
|
tenant=tenant)
|
||||||
return self.policy_api.get(segment_def)
|
return self.policy_api.get(segment_def)
|
||||||
|
|
||||||
def list(self, network_id, tenant=policy_constants.POLICY_INFRA_TENANT):
|
def list(self, tier1_id, tenant=policy_constants.POLICY_INFRA_TENANT):
|
||||||
segment_def = self.entry_def(network_id=network_id, tenant=tenant)
|
segment_def = self.entry_def(tier1_id=tier1_id, tenant=tenant)
|
||||||
return self.policy_api.list(segment_def)['results']
|
return self.policy_api.list(segment_def)['results']
|
||||||
|
|
||||||
def update(self, network_id, segment_id,
|
|
||||||
name=None, description=None,
|
|
||||||
subnets=None, tags=None,
|
|
||||||
dns_domain_name=None,
|
|
||||||
vlan_ids=None,
|
|
||||||
tenant=policy_constants.POLICY_INFRA_TENANT):
|
|
||||||
segment_def = self.entry_def(network_id, segment_id, tenant=tenant)
|
|
||||||
segment_def.update_attributes_in_body(
|
|
||||||
name=name,
|
|
||||||
description=description,
|
|
||||||
subnets=subnets,
|
|
||||||
dns_domain_name=dns_domain_name,
|
|
||||||
vlan_ids=vlan_ids,
|
|
||||||
tags=tags)
|
|
||||||
return self.policy_api.create_or_update(segment_def)
|
|
||||||
|
|
||||||
|
|
||||||
class NsxPolicySegmentApi(NsxPolicyResourceBase):
|
class NsxPolicySegmentApi(NsxPolicyResourceBase):
|
||||||
"""NSX Network Segment API """
|
"""NSX Tier1 Segment API """
|
||||||
@property
|
@property
|
||||||
def entry_def(self):
|
def entry_def(self):
|
||||||
return policy_defs.SegmentDef
|
return policy_defs.SegmentDef
|
||||||
|
|
||||||
def create_or_overwrite(self, name, network_id=None,
|
def create_or_overwrite(self, name,
|
||||||
segment_id=None, description=None,
|
segment_id=None,
|
||||||
|
tier1_id=None,
|
||||||
|
description=None,
|
||||||
subnets=None,
|
subnets=None,
|
||||||
dns_domain_name=None,
|
dns_domain_name=None,
|
||||||
vlan_ids=None,
|
vlan_ids=None,
|
||||||
@@ -607,6 +596,7 @@ class NsxPolicySegmentApi(NsxPolicyResourceBase):
|
|||||||
segment_def = self.entry_def(segment_id=segment_id,
|
segment_def = self.entry_def(segment_id=segment_id,
|
||||||
name=name,
|
name=name,
|
||||||
description=description,
|
description=description,
|
||||||
|
tier1_id=tier1_id,
|
||||||
subnets=subnets,
|
subnets=subnets,
|
||||||
dns_domain_name=dns_domain_name,
|
dns_domain_name=dns_domain_name,
|
||||||
vlan_ids=vlan_ids,
|
vlan_ids=vlan_ids,
|
||||||
@@ -628,22 +618,6 @@ class NsxPolicySegmentApi(NsxPolicyResourceBase):
|
|||||||
segment_def = self.entry_def(tenant=tenant)
|
segment_def = self.entry_def(tenant=tenant)
|
||||||
return self.policy_api.list(segment_def)['results']
|
return self.policy_api.list(segment_def)['results']
|
||||||
|
|
||||||
def update(self, segment_id,
|
|
||||||
name=None, description=None,
|
|
||||||
subnets=None, tags=None,
|
|
||||||
dns_domain_name=None,
|
|
||||||
vlan_ids=None,
|
|
||||||
tenant=policy_constants.POLICY_INFRA_TENANT):
|
|
||||||
segment_def = self.entry_def(segment_id=segment_id, tenant=tenant)
|
|
||||||
segment_def.update_attributes_in_body(
|
|
||||||
name=name,
|
|
||||||
description=description,
|
|
||||||
subnets=subnets,
|
|
||||||
dns_domain_name=dns_domain_name,
|
|
||||||
vlan_ids=vlan_ids,
|
|
||||||
tags=tags)
|
|
||||||
return self.policy_api.create_or_update(segment_def)
|
|
||||||
|
|
||||||
|
|
||||||
class NsxPolicyCommunicationMapApi(NsxPolicyResourceBase):
|
class NsxPolicyCommunicationMapApi(NsxPolicyResourceBase):
|
||||||
"""NSX Policy CommunicationMap (Under a Domain)."""
|
"""NSX Policy CommunicationMap (Under a Domain)."""
|
||||||
|
|||||||
Reference in New Issue
Block a user