summaryrefslogtreecommitdiffstats
path: root/Testcases/vnc_api/gen/resource_common.py
diff options
context:
space:
mode:
Diffstat (limited to 'Testcases/vnc_api/gen/resource_common.py')
-rw-r--r--Testcases/vnc_api/gen/resource_common.py15559
1 files changed, 15559 insertions, 0 deletions
diff --git a/Testcases/vnc_api/gen/resource_common.py b/Testcases/vnc_api/gen/resource_common.py
new file mode 100644
index 0000000..72f7824
--- /dev/null
+++ b/Testcases/vnc_api/gen/resource_common.py
@@ -0,0 +1,15559 @@
+
+# AUTO-GENERATED file from IFMapApiGenerator. Do Not Edit!
+
+"""
+This module defines the classes for every configuration element managed by the system
+"""
+
+class Domain(object):
+ """
+ Represents domain configuration representation.
+
+ Child of:
+ :class:`.ConfigRoot` object OR
+
+ Properties:
+ * domain-limits (:class:`.DomainLimitsType` type)
+ * api-access-list (:class:`.ApiAccessListType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+ * list of :class:`.Project` objects
+ * list of :class:`.Namespace` objects
+ * list of :class:`.ServiceTemplate` objects
+ * list of :class:`.VirtualDns` objects
+
+ References to:
+
+ Referred by:
+ """
+
+ prop_fields = set([u'domain_limits', u'api_access_list', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'config_root_back_refs'])
+ children_fields = set([u'projects', u'namespaces', 'service_templates', u'virtual_DNSs'])
+
+ def __init__(self, name = None, parent_obj = None, domain_limits = None, api_access_list = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'domain'
+ if not name:
+ name = u'default-domain'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.fq_name = [name]
+
+ # property fields
+ if domain_limits:
+ self._domain_limits = domain_limits
+ if api_access_list:
+ self._api_access_list = api_access_list
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (domain)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of domain in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of domain as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of domain's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of domain's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def domain_limits(self):
+ """Get domain-limits for domain.
+
+ :returns: DomainLimitsType object
+
+ """
+ return getattr(self, '_domain_limits', None)
+ #end domain_limits
+
+ @domain_limits.setter
+ def domain_limits(self, domain_limits):
+ """Set domain-limits for domain.
+
+ :param domain_limits: DomainLimitsType object
+
+ """
+ self._domain_limits = domain_limits
+ #end domain_limits
+
+ def set_domain_limits(self, value):
+ self.domain_limits = value
+ #end set_domain_limits
+
+ def get_domain_limits(self):
+ return self.domain_limits
+ #end get_domain_limits
+
+ @property
+ def api_access_list(self):
+ """Get api-access-list for domain.
+
+ :returns: ApiAccessListType object
+
+ """
+ return getattr(self, '_api_access_list', None)
+ #end api_access_list
+
+ @api_access_list.setter
+ def api_access_list(self, api_access_list):
+ """Set api-access-list for domain.
+
+ :param api_access_list: ApiAccessListType object
+
+ """
+ self._api_access_list = api_access_list
+ #end api_access_list
+
+ def set_api_access_list(self, value):
+ self.api_access_list = value
+ #end set_api_access_list
+
+ def get_api_access_list(self):
+ return self.api_access_list
+ #end get_api_access_list
+
+ @property
+ def id_perms(self):
+ """Get id-perms for domain.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for domain.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for domain.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for domain.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_domain_limits'):
+ self._serialize_field_to_json(serialized, field_names, 'domain_limits')
+ if hasattr(self, '_api_access_list'):
+ self._serialize_field_to_json(serialized, field_names, 'api_access_list')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_projects(self):
+ return getattr(self, 'projects', None)
+ #end get_projects
+
+ def get_namespaces(self):
+ return getattr(self, 'namespaces', None)
+ #end get_namespaces
+
+ def get_service_templates(self):
+ return getattr(self, 'service_templates', None)
+ #end get_service_templates
+
+ def get_virtual_DNSs(self):
+ return getattr(self, 'virtual_DNSs', None)
+ #end get_virtual_DNSs
+
+ def get_config_root_back_refs(self):
+ """Return list of all config-roots using this domain"""
+ return getattr(self, 'config_root_back_refs', None)
+ #end get_config_root_back_refs
+
+ def dump(self):
+ """Display domain object in compact form."""
+ print '------------ domain ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P domain_limits = ', self.get_domain_limits()
+ print 'P api_access_list = ', self.get_api_access_list()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'HAS project = ', self.get_projects()
+ print 'HAS namespace = ', self.get_namespaces()
+ print 'HAS service_template = ', self.get_service_templates()
+ print 'HAS virtual_DNS = ', self.get_virtual_DNSs()
+ #end dump
+
+#end class Domain
+
+class GlobalVrouterConfig(object):
+ """
+ Represents global-vrouter-config configuration representation.
+
+ Child of:
+ :class:`.GlobalSystemConfig` object OR
+
+ Properties:
+ * linklocal-services (:class:`.LinklocalServicesTypes` type)
+ * encapsulation-priorities (:class:`.EncapsulationPrioritiesType` type)
+ * vxlan-network-identifier-mode (VxlanNetworkIdentifierModeType type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+
+ Referred by:
+ """
+
+ prop_fields = set([u'linklocal_services', u'encapsulation_priorities', u'vxlan_network_identifier_mode', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'global_system_config_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, linklocal_services = None, encapsulation_priorities = None, vxlan_network_identifier_mode = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'global-vrouter-config'
+ if not name:
+ name = u'default-global-vrouter-config'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'global-system-config'
+ self.fq_name = [u'default-global-system-config']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if linklocal_services:
+ self._linklocal_services = linklocal_services
+ if encapsulation_priorities:
+ self._encapsulation_priorities = encapsulation_priorities
+ if vxlan_network_identifier_mode:
+ self._vxlan_network_identifier_mode = vxlan_network_identifier_mode
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (global-vrouter-config)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of global-vrouter-config in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of global-vrouter-config as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of global-vrouter-config's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of global-vrouter-config's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def linklocal_services(self):
+ """Get linklocal-services for global-vrouter-config.
+
+ :returns: LinklocalServicesTypes object
+
+ """
+ return getattr(self, '_linklocal_services', None)
+ #end linklocal_services
+
+ @linklocal_services.setter
+ def linklocal_services(self, linklocal_services):
+ """Set linklocal-services for global-vrouter-config.
+
+ :param linklocal_services: LinklocalServicesTypes object
+
+ """
+ self._linklocal_services = linklocal_services
+ #end linklocal_services
+
+ def set_linklocal_services(self, value):
+ self.linklocal_services = value
+ #end set_linklocal_services
+
+ def get_linklocal_services(self):
+ return self.linklocal_services
+ #end get_linklocal_services
+
+ @property
+ def encapsulation_priorities(self):
+ """Get encapsulation-priorities for global-vrouter-config.
+
+ :returns: EncapsulationPrioritiesType object
+
+ """
+ return getattr(self, '_encapsulation_priorities', None)
+ #end encapsulation_priorities
+
+ @encapsulation_priorities.setter
+ def encapsulation_priorities(self, encapsulation_priorities):
+ """Set encapsulation-priorities for global-vrouter-config.
+
+ :param encapsulation_priorities: EncapsulationPrioritiesType object
+
+ """
+ self._encapsulation_priorities = encapsulation_priorities
+ #end encapsulation_priorities
+
+ def set_encapsulation_priorities(self, value):
+ self.encapsulation_priorities = value
+ #end set_encapsulation_priorities
+
+ def get_encapsulation_priorities(self):
+ return self.encapsulation_priorities
+ #end get_encapsulation_priorities
+
+ @property
+ def vxlan_network_identifier_mode(self):
+ """Get vxlan-network-identifier-mode for global-vrouter-config.
+
+ :returns: VxlanNetworkIdentifierModeType object
+
+ """
+ return getattr(self, '_vxlan_network_identifier_mode', None)
+ #end vxlan_network_identifier_mode
+
+ @vxlan_network_identifier_mode.setter
+ def vxlan_network_identifier_mode(self, vxlan_network_identifier_mode):
+ """Set vxlan-network-identifier-mode for global-vrouter-config.
+
+ :param vxlan_network_identifier_mode: VxlanNetworkIdentifierModeType object
+
+ """
+ self._vxlan_network_identifier_mode = vxlan_network_identifier_mode
+ #end vxlan_network_identifier_mode
+
+ def set_vxlan_network_identifier_mode(self, value):
+ self.vxlan_network_identifier_mode = value
+ #end set_vxlan_network_identifier_mode
+
+ def get_vxlan_network_identifier_mode(self):
+ return self.vxlan_network_identifier_mode
+ #end get_vxlan_network_identifier_mode
+
+ @property
+ def id_perms(self):
+ """Get id-perms for global-vrouter-config.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for global-vrouter-config.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for global-vrouter-config.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for global-vrouter-config.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_linklocal_services'):
+ self._serialize_field_to_json(serialized, field_names, 'linklocal_services')
+ if hasattr(self, '_encapsulation_priorities'):
+ self._serialize_field_to_json(serialized, field_names, 'encapsulation_priorities')
+ if hasattr(self, '_vxlan_network_identifier_mode'):
+ self._serialize_field_to_json(serialized, field_names, 'vxlan_network_identifier_mode')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_global_system_config_back_refs(self):
+ """Return list of all global-system-configs using this global-vrouter-config"""
+ return getattr(self, 'global_system_config_back_refs', None)
+ #end get_global_system_config_back_refs
+
+ def dump(self):
+ """Display global-vrouter-config object in compact form."""
+ print '------------ global-vrouter-config ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P linklocal_services = ', self.get_linklocal_services()
+ print 'P encapsulation_priorities = ', self.get_encapsulation_priorities()
+ print 'P vxlan_network_identifier_mode = ', self.get_vxlan_network_identifier_mode()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ #end dump
+
+#end class GlobalVrouterConfig
+
+class InstanceIp(object):
+ """
+ Represents instance-ip configuration representation.
+
+ Properties:
+ * instance-ip-address (IpAddressType type)
+ * instance-ip-family (IpAddressFamilyType type)
+ * instance-ip-mode (AddressMode type)
+ * subnet-uuid (xsd:string type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+ * list of :class:`.VirtualNetwork` objects
+ * list of :class:`.VirtualMachineInterface` objects
+
+ Referred by:
+ """
+
+ prop_fields = set([u'instance_ip_address', u'instance_ip_family', u'instance_ip_mode', u'subnet_uuid', u'id_perms', u'display_name'])
+ ref_fields = set([u'virtual_network_refs', 'virtual_machine_interface_refs'])
+ backref_fields = set([])
+ children_fields = set([])
+
+ def __init__(self, name = None, instance_ip_address = None, instance_ip_family = None, instance_ip_mode = None, subnet_uuid = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'instance-ip'
+ if not name:
+ name = u'default-instance-ip'
+ self.name = name
+ self._uuid = None
+ self.fq_name = [name]
+
+ # property fields
+ if instance_ip_address:
+ self._instance_ip_address = instance_ip_address
+ if instance_ip_family:
+ self._instance_ip_family = instance_ip_family
+ if instance_ip_mode:
+ self._instance_ip_mode = instance_ip_mode
+ if subnet_uuid:
+ self._subnet_uuid = subnet_uuid
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (instance-ip)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of instance-ip in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of instance-ip as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def instance_ip_address(self):
+ """Get instance-ip-address for instance-ip.
+
+ :returns: IpAddressType object
+
+ """
+ return getattr(self, '_instance_ip_address', None)
+ #end instance_ip_address
+
+ @instance_ip_address.setter
+ def instance_ip_address(self, instance_ip_address):
+ """Set instance-ip-address for instance-ip.
+
+ :param instance_ip_address: IpAddressType object
+
+ """
+ self._instance_ip_address = instance_ip_address
+ #end instance_ip_address
+
+ def set_instance_ip_address(self, value):
+ self.instance_ip_address = value
+ #end set_instance_ip_address
+
+ def get_instance_ip_address(self):
+ return self.instance_ip_address
+ #end get_instance_ip_address
+
+ @property
+ def instance_ip_family(self):
+ """Get instance-ip-family for instance-ip.
+
+ :returns: IpAddressFamilyType object
+
+ """
+ return getattr(self, '_instance_ip_family', None)
+ #end instance_ip_family
+
+ @instance_ip_family.setter
+ def instance_ip_family(self, instance_ip_family):
+ """Set instance-ip-family for instance-ip.
+
+ :param instance_ip_family: IpAddressFamilyType object
+
+ """
+ self._instance_ip_family = instance_ip_family
+ #end instance_ip_family
+
+ def set_instance_ip_family(self, value):
+ self.instance_ip_family = value
+ #end set_instance_ip_family
+
+ def get_instance_ip_family(self):
+ return self.instance_ip_family
+ #end get_instance_ip_family
+
+ @property
+ def instance_ip_mode(self):
+ """Get instance-ip-mode for instance-ip.
+
+ :returns: AddressMode object
+
+ """
+ return getattr(self, '_instance_ip_mode', None)
+ #end instance_ip_mode
+
+ @instance_ip_mode.setter
+ def instance_ip_mode(self, instance_ip_mode):
+ """Set instance-ip-mode for instance-ip.
+
+ :param instance_ip_mode: AddressMode object
+
+ """
+ self._instance_ip_mode = instance_ip_mode
+ #end instance_ip_mode
+
+ def set_instance_ip_mode(self, value):
+ self.instance_ip_mode = value
+ #end set_instance_ip_mode
+
+ def get_instance_ip_mode(self):
+ return self.instance_ip_mode
+ #end get_instance_ip_mode
+
+ @property
+ def subnet_uuid(self):
+ """Get subnet-uuid for instance-ip.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_subnet_uuid', None)
+ #end subnet_uuid
+
+ @subnet_uuid.setter
+ def subnet_uuid(self, subnet_uuid):
+ """Set subnet-uuid for instance-ip.
+
+ :param subnet_uuid: xsd:string object
+
+ """
+ self._subnet_uuid = subnet_uuid
+ #end subnet_uuid
+
+ def set_subnet_uuid(self, value):
+ self.subnet_uuid = value
+ #end set_subnet_uuid
+
+ def get_subnet_uuid(self):
+ return self.subnet_uuid
+ #end get_subnet_uuid
+
+ @property
+ def id_perms(self):
+ """Get id-perms for instance-ip.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for instance-ip.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for instance-ip.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for instance-ip.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_instance_ip_address'):
+ self._serialize_field_to_json(serialized, field_names, 'instance_ip_address')
+ if hasattr(self, '_instance_ip_family'):
+ self._serialize_field_to_json(serialized, field_names, 'instance_ip_family')
+ if hasattr(self, '_instance_ip_mode'):
+ self._serialize_field_to_json(serialized, field_names, 'instance_ip_mode')
+ if hasattr(self, '_subnet_uuid'):
+ self._serialize_field_to_json(serialized, field_names, 'subnet_uuid')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'virtual_network_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_network_refs')
+ if hasattr(self, 'virtual_machine_interface_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_interface_refs')
+ return serialized
+ #end serialize_to_json
+
+ def set_virtual_network(self, ref_obj):
+ """Set virtual-network for instance-ip.
+
+ :param ref_obj: VirtualNetwork object
+
+ """
+ self.virtual_network_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_network_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_network
+
+ def add_virtual_network(self, ref_obj):
+ """Add virtual-network to instance-ip.
+
+ :param ref_obj: VirtualNetwork object
+
+ """
+ refs = getattr(self, 'virtual_network_refs', [])
+ if not refs:
+ self.virtual_network_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_network_refs.append(ref_info)
+ #end add_virtual_network
+
+ def del_virtual_network(self, ref_obj):
+ refs = self.get_virtual_network_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_network_refs.remove(ref)
+ return
+ #end del_virtual_network
+
+ def set_virtual_network_list(self, ref_obj_list):
+ """Set virtual-network list for instance-ip.
+
+ :param ref_obj_list: list of VirtualNetwork object
+
+ """
+ self.virtual_network_refs = ref_obj_list
+ #end set_virtual_network_list
+
+ def get_virtual_network_refs(self):
+ """Return virtual-network list for instance-ip.
+
+ :returns: list of <VirtualNetwork>
+
+ """
+ return getattr(self, 'virtual_network_refs', None)
+ #end get_virtual_network_refs
+
+ def set_virtual_machine_interface(self, ref_obj):
+ """Set virtual-machine-interface for instance-ip.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_machine_interface_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_machine_interface
+
+ def add_virtual_machine_interface(self, ref_obj):
+ """Add virtual-machine-interface to instance-ip.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ refs = getattr(self, 'virtual_machine_interface_refs', [])
+ if not refs:
+ self.virtual_machine_interface_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_machine_interface_refs.append(ref_info)
+ #end add_virtual_machine_interface
+
+ def del_virtual_machine_interface(self, ref_obj):
+ refs = self.get_virtual_machine_interface_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_machine_interface_refs.remove(ref)
+ return
+ #end del_virtual_machine_interface
+
+ def set_virtual_machine_interface_list(self, ref_obj_list):
+ """Set virtual-machine-interface list for instance-ip.
+
+ :param ref_obj_list: list of VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = ref_obj_list
+ #end set_virtual_machine_interface_list
+
+ def get_virtual_machine_interface_refs(self):
+ """Return virtual-machine-interface list for instance-ip.
+
+ :returns: list of <VirtualMachineInterface>
+
+ """
+ return getattr(self, 'virtual_machine_interface_refs', None)
+ #end get_virtual_machine_interface_refs
+
+ def dump(self):
+ """Display instance-ip object in compact form."""
+ print '------------ instance-ip ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ print 'P instance_ip_address = ', self.get_instance_ip_address()
+ print 'P instance_ip_family = ', self.get_instance_ip_family()
+ print 'P instance_ip_mode = ', self.get_instance_ip_mode()
+ print 'P subnet_uuid = ', self.get_subnet_uuid()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF virtual_network = ', self.get_virtual_network_refs()
+ print 'REF virtual_machine_interface = ', self.get_virtual_machine_interface_refs()
+ #end dump
+
+#end class InstanceIp
+
+class NetworkPolicy(object):
+ """
+ Represents network-policy configuration representation.
+
+ Child of:
+ :class:`.Project` object OR
+
+ Properties:
+ * network-policy-entries (:class:`.PolicyEntriesType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+
+ Referred by:
+ * list of :class:`.VirtualNetwork` objects
+ """
+
+ prop_fields = set([u'network_policy_entries', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'project_back_refs', u'virtual_network_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, network_policy_entries = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'network-policy'
+ if not name:
+ name = u'default-network-policy'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'project'
+ self.fq_name = [u'default-domain', u'default-project']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if network_policy_entries:
+ self._network_policy_entries = network_policy_entries
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (network-policy)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of network-policy in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of network-policy as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of network-policy's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of network-policy's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def network_policy_entries(self):
+ """Get network-policy-entries for network-policy.
+
+ :returns: PolicyEntriesType object
+
+ """
+ return getattr(self, '_network_policy_entries', None)
+ #end network_policy_entries
+
+ @network_policy_entries.setter
+ def network_policy_entries(self, network_policy_entries):
+ """Set network-policy-entries for network-policy.
+
+ :param network_policy_entries: PolicyEntriesType object
+
+ """
+ self._network_policy_entries = network_policy_entries
+ #end network_policy_entries
+
+ def set_network_policy_entries(self, value):
+ self.network_policy_entries = value
+ #end set_network_policy_entries
+
+ def get_network_policy_entries(self):
+ return self.network_policy_entries
+ #end get_network_policy_entries
+
+ @property
+ def id_perms(self):
+ """Get id-perms for network-policy.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for network-policy.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for network-policy.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for network-policy.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_network_policy_entries'):
+ self._serialize_field_to_json(serialized, field_names, 'network_policy_entries')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_project_back_refs(self):
+ """Return list of all projects using this network-policy"""
+ return getattr(self, 'project_back_refs', None)
+ #end get_project_back_refs
+
+ def get_virtual_network_back_refs(self):
+ """Return list of all virtual-networks using this network-policy"""
+ return getattr(self, 'virtual_network_back_refs', None)
+ #end get_virtual_network_back_refs
+
+ def dump(self):
+ """Display network-policy object in compact form."""
+ print '------------ network-policy ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P network_policy_entries = ', self.get_network_policy_entries()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'BCK virtual_network = ', self.get_virtual_network_back_refs()
+ #end dump
+
+#end class NetworkPolicy
+
+class LoadbalancerPool(object):
+ """
+ Represents loadbalancer-pool configuration representation.
+
+ Child of:
+ :class:`.Project` object OR
+
+ Properties:
+ * loadbalancer-pool-properties (:class:`.LoadbalancerPoolType` type)
+ * loadbalancer-pool-provider (xsd:string type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+ * list of :class:`.LoadbalancerMember` objects
+
+ References to:
+ * list of :class:`.ServiceInstance` objects
+ * list of :class:`.VirtualMachineInterface` objects
+ * list of :class:`.ServiceApplianceSet` objects
+ * list of :class:`.LoadbalancerHealthmonitor` objects
+
+ Referred by:
+ * list of :class:`.VirtualIp` objects
+ """
+
+ prop_fields = set([u'loadbalancer_pool_properties', u'loadbalancer_pool_provider', u'id_perms', u'display_name'])
+ ref_fields = set([u'service_instance_refs', 'virtual_machine_interface_refs', u'service_appliance_set_refs', u'loadbalancer_healthmonitor_refs'])
+ backref_fields = set([u'project_back_refs', u'virtual_ip_back_refs'])
+ children_fields = set([u'loadbalancer_members'])
+
+ def __init__(self, name = None, parent_obj = None, loadbalancer_pool_properties = None, loadbalancer_pool_provider = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'loadbalancer-pool'
+ if not name:
+ name = u'default-loadbalancer-pool'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'project'
+ self.fq_name = [u'default-domain', u'default-project']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if loadbalancer_pool_properties:
+ self._loadbalancer_pool_properties = loadbalancer_pool_properties
+ if loadbalancer_pool_provider:
+ self._loadbalancer_pool_provider = loadbalancer_pool_provider
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (loadbalancer-pool)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of loadbalancer-pool in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of loadbalancer-pool as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of loadbalancer-pool's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of loadbalancer-pool's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def loadbalancer_pool_properties(self):
+ """Get loadbalancer-pool-properties for loadbalancer-pool.
+
+ :returns: LoadbalancerPoolType object
+
+ """
+ return getattr(self, '_loadbalancer_pool_properties', None)
+ #end loadbalancer_pool_properties
+
+ @loadbalancer_pool_properties.setter
+ def loadbalancer_pool_properties(self, loadbalancer_pool_properties):
+ """Set loadbalancer-pool-properties for loadbalancer-pool.
+
+ :param loadbalancer_pool_properties: LoadbalancerPoolType object
+
+ """
+ self._loadbalancer_pool_properties = loadbalancer_pool_properties
+ #end loadbalancer_pool_properties
+
+ def set_loadbalancer_pool_properties(self, value):
+ self.loadbalancer_pool_properties = value
+ #end set_loadbalancer_pool_properties
+
+ def get_loadbalancer_pool_properties(self):
+ return self.loadbalancer_pool_properties
+ #end get_loadbalancer_pool_properties
+
+ @property
+ def loadbalancer_pool_provider(self):
+ """Get loadbalancer-pool-provider for loadbalancer-pool.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_loadbalancer_pool_provider', None)
+ #end loadbalancer_pool_provider
+
+ @loadbalancer_pool_provider.setter
+ def loadbalancer_pool_provider(self, loadbalancer_pool_provider):
+ """Set loadbalancer-pool-provider for loadbalancer-pool.
+
+ :param loadbalancer_pool_provider: xsd:string object
+
+ """
+ self._loadbalancer_pool_provider = loadbalancer_pool_provider
+ #end loadbalancer_pool_provider
+
+ def set_loadbalancer_pool_provider(self, value):
+ self.loadbalancer_pool_provider = value
+ #end set_loadbalancer_pool_provider
+
+ def get_loadbalancer_pool_provider(self):
+ return self.loadbalancer_pool_provider
+ #end get_loadbalancer_pool_provider
+
+ @property
+ def id_perms(self):
+ """Get id-perms for loadbalancer-pool.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for loadbalancer-pool.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for loadbalancer-pool.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for loadbalancer-pool.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_loadbalancer_pool_properties'):
+ self._serialize_field_to_json(serialized, field_names, 'loadbalancer_pool_properties')
+ if hasattr(self, '_loadbalancer_pool_provider'):
+ self._serialize_field_to_json(serialized, field_names, 'loadbalancer_pool_provider')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'service_instance_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'service_instance_refs')
+ if hasattr(self, 'virtual_machine_interface_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_interface_refs')
+ if hasattr(self, 'service_appliance_set_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'service_appliance_set_refs')
+ if hasattr(self, 'loadbalancer_healthmonitor_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'loadbalancer_healthmonitor_refs')
+ return serialized
+ #end serialize_to_json
+
+ def get_loadbalancer_members(self):
+ return getattr(self, 'loadbalancer_members', None)
+ #end get_loadbalancer_members
+
+ def set_service_instance(self, ref_obj):
+ """Set service-instance for loadbalancer-pool.
+
+ :param ref_obj: ServiceInstance object
+
+ """
+ self.service_instance_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.service_instance_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_service_instance
+
+ def add_service_instance(self, ref_obj):
+ """Add service-instance to loadbalancer-pool.
+
+ :param ref_obj: ServiceInstance object
+
+ """
+ refs = getattr(self, 'service_instance_refs', [])
+ if not refs:
+ self.service_instance_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.service_instance_refs.append(ref_info)
+ #end add_service_instance
+
+ def del_service_instance(self, ref_obj):
+ refs = self.get_service_instance_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.service_instance_refs.remove(ref)
+ return
+ #end del_service_instance
+
+ def set_service_instance_list(self, ref_obj_list):
+ """Set service-instance list for loadbalancer-pool.
+
+ :param ref_obj_list: list of ServiceInstance object
+
+ """
+ self.service_instance_refs = ref_obj_list
+ #end set_service_instance_list
+
+ def get_service_instance_refs(self):
+ """Return service-instance list for loadbalancer-pool.
+
+ :returns: list of <ServiceInstance>
+
+ """
+ return getattr(self, 'service_instance_refs', None)
+ #end get_service_instance_refs
+
+ def set_virtual_machine_interface(self, ref_obj):
+ """Set virtual-machine-interface for loadbalancer-pool.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_machine_interface_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_machine_interface
+
+ def add_virtual_machine_interface(self, ref_obj):
+ """Add virtual-machine-interface to loadbalancer-pool.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ refs = getattr(self, 'virtual_machine_interface_refs', [])
+ if not refs:
+ self.virtual_machine_interface_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_machine_interface_refs.append(ref_info)
+ #end add_virtual_machine_interface
+
+ def del_virtual_machine_interface(self, ref_obj):
+ refs = self.get_virtual_machine_interface_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_machine_interface_refs.remove(ref)
+ return
+ #end del_virtual_machine_interface
+
+ def set_virtual_machine_interface_list(self, ref_obj_list):
+ """Set virtual-machine-interface list for loadbalancer-pool.
+
+ :param ref_obj_list: list of VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = ref_obj_list
+ #end set_virtual_machine_interface_list
+
+ def get_virtual_machine_interface_refs(self):
+ """Return virtual-machine-interface list for loadbalancer-pool.
+
+ :returns: list of <VirtualMachineInterface>
+
+ """
+ return getattr(self, 'virtual_machine_interface_refs', None)
+ #end get_virtual_machine_interface_refs
+
+ def set_service_appliance_set(self, ref_obj):
+ """Set service-appliance-set for loadbalancer-pool.
+
+ :param ref_obj: ServiceApplianceSet object
+
+ """
+ self.service_appliance_set_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.service_appliance_set_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_service_appliance_set
+
+ def add_service_appliance_set(self, ref_obj):
+ """Add service-appliance-set to loadbalancer-pool.
+
+ :param ref_obj: ServiceApplianceSet object
+
+ """
+ refs = getattr(self, 'service_appliance_set_refs', [])
+ if not refs:
+ self.service_appliance_set_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.service_appliance_set_refs.append(ref_info)
+ #end add_service_appliance_set
+
+ def del_service_appliance_set(self, ref_obj):
+ refs = self.get_service_appliance_set_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.service_appliance_set_refs.remove(ref)
+ return
+ #end del_service_appliance_set
+
+ def set_service_appliance_set_list(self, ref_obj_list):
+ """Set service-appliance-set list for loadbalancer-pool.
+
+ :param ref_obj_list: list of ServiceApplianceSet object
+
+ """
+ self.service_appliance_set_refs = ref_obj_list
+ #end set_service_appliance_set_list
+
+ def get_service_appliance_set_refs(self):
+ """Return service-appliance-set list for loadbalancer-pool.
+
+ :returns: list of <ServiceApplianceSet>
+
+ """
+ return getattr(self, 'service_appliance_set_refs', None)
+ #end get_service_appliance_set_refs
+
+ def set_loadbalancer_healthmonitor(self, ref_obj):
+ """Set loadbalancer-healthmonitor for loadbalancer-pool.
+
+ :param ref_obj: LoadbalancerHealthmonitor object
+
+ """
+ self.loadbalancer_healthmonitor_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.loadbalancer_healthmonitor_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_loadbalancer_healthmonitor
+
+ def add_loadbalancer_healthmonitor(self, ref_obj):
+ """Add loadbalancer-healthmonitor to loadbalancer-pool.
+
+ :param ref_obj: LoadbalancerHealthmonitor object
+
+ """
+ refs = getattr(self, 'loadbalancer_healthmonitor_refs', [])
+ if not refs:
+ self.loadbalancer_healthmonitor_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.loadbalancer_healthmonitor_refs.append(ref_info)
+ #end add_loadbalancer_healthmonitor
+
+ def del_loadbalancer_healthmonitor(self, ref_obj):
+ refs = self.get_loadbalancer_healthmonitor_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.loadbalancer_healthmonitor_refs.remove(ref)
+ return
+ #end del_loadbalancer_healthmonitor
+
+ def set_loadbalancer_healthmonitor_list(self, ref_obj_list):
+ """Set loadbalancer-healthmonitor list for loadbalancer-pool.
+
+ :param ref_obj_list: list of LoadbalancerHealthmonitor object
+
+ """
+ self.loadbalancer_healthmonitor_refs = ref_obj_list
+ #end set_loadbalancer_healthmonitor_list
+
+ def get_loadbalancer_healthmonitor_refs(self):
+ """Return loadbalancer-healthmonitor list for loadbalancer-pool.
+
+ :returns: list of <LoadbalancerHealthmonitor>
+
+ """
+ return getattr(self, 'loadbalancer_healthmonitor_refs', None)
+ #end get_loadbalancer_healthmonitor_refs
+
+ def get_project_back_refs(self):
+ """Return list of all projects using this loadbalancer-pool"""
+ return getattr(self, 'project_back_refs', None)
+ #end get_project_back_refs
+
+ def get_virtual_ip_back_refs(self):
+ """Return list of all virtual-ips using this loadbalancer-pool"""
+ return getattr(self, 'virtual_ip_back_refs', None)
+ #end get_virtual_ip_back_refs
+
+ def dump(self):
+ """Display loadbalancer-pool object in compact form."""
+ print '------------ loadbalancer-pool ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P loadbalancer_pool_properties = ', self.get_loadbalancer_pool_properties()
+ print 'P loadbalancer_pool_provider = ', self.get_loadbalancer_pool_provider()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF service_instance = ', self.get_service_instance_refs()
+ print 'REF virtual_machine_interface = ', self.get_virtual_machine_interface_refs()
+ print 'REF service_appliance_set = ', self.get_service_appliance_set_refs()
+ print 'HAS loadbalancer_member = ', self.get_loadbalancer_members()
+ print 'REF loadbalancer_healthmonitor = ', self.get_loadbalancer_healthmonitor_refs()
+ print 'BCK virtual_ip = ', self.get_virtual_ip_back_refs()
+ #end dump
+
+#end class LoadbalancerPool
+
+class VirtualDnsRecord(object):
+ """
+ Represents virtual-DNS-record configuration representation.
+
+ Child of:
+ :class:`.VirtualDns` object OR
+
+ Properties:
+ * virtual-DNS-record-data (:class:`.VirtualDnsRecordType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+
+ Referred by:
+ """
+
+ prop_fields = set([u'virtual_DNS_record_data', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'virtual_DNS_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, virtual_DNS_record_data = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'virtual-DNS-record'
+ if not name:
+ name = u'default-virtual-DNS-record'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'virtual-DNS'
+ self.fq_name = [u'default-domain', u'default-virtual-DNS']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if virtual_DNS_record_data:
+ self._virtual_DNS_record_data = virtual_DNS_record_data
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (virtual-DNS-record)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of virtual-DNS-record in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of virtual-DNS-record as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of virtual-DNS-record's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of virtual-DNS-record's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def virtual_DNS_record_data(self):
+ """Get virtual-DNS-record-data for virtual-DNS-record.
+
+ :returns: VirtualDnsRecordType object
+
+ """
+ return getattr(self, '_virtual_DNS_record_data', None)
+ #end virtual_DNS_record_data
+
+ @virtual_DNS_record_data.setter
+ def virtual_DNS_record_data(self, virtual_DNS_record_data):
+ """Set virtual-DNS-record-data for virtual-DNS-record.
+
+ :param virtual_DNS_record_data: VirtualDnsRecordType object
+
+ """
+ self._virtual_DNS_record_data = virtual_DNS_record_data
+ #end virtual_DNS_record_data
+
+ def set_virtual_DNS_record_data(self, value):
+ self.virtual_DNS_record_data = value
+ #end set_virtual_DNS_record_data
+
+ def get_virtual_DNS_record_data(self):
+ return self.virtual_DNS_record_data
+ #end get_virtual_DNS_record_data
+
+ @property
+ def id_perms(self):
+ """Get id-perms for virtual-DNS-record.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for virtual-DNS-record.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for virtual-DNS-record.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for virtual-DNS-record.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_virtual_DNS_record_data'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_DNS_record_data')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_virtual_DNS_back_refs(self):
+ """Return list of all virtual-DNSs using this virtual-DNS-record"""
+ return getattr(self, 'virtual_DNS_back_refs', None)
+ #end get_virtual_DNS_back_refs
+
+ def dump(self):
+ """Display virtual-DNS-record object in compact form."""
+ print '------------ virtual-DNS-record ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P virtual_DNS_record_data = ', self.get_virtual_DNS_record_data()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ #end dump
+
+#end class VirtualDnsRecord
+
+class RouteTarget(object):
+ """
+ Represents route-target configuration representation.
+
+ Properties:
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+
+ Referred by:
+ * list of :class:`.LogicalRouter` objects
+ * list of :class:`.RoutingInstance` objects
+ """
+
+ prop_fields = set([u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'logical_router_back_refs', 'routing_instance_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'route-target'
+ if not name:
+ name = u'default-route-target'
+ self.name = name
+ self._uuid = None
+ self.fq_name = [name]
+
+ # property fields
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (route-target)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of route-target in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of route-target as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def id_perms(self):
+ """Get id-perms for route-target.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for route-target.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for route-target.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for route-target.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_logical_router_back_refs(self):
+ """Return list of all logical-routers using this route-target"""
+ return getattr(self, 'logical_router_back_refs', None)
+ #end get_logical_router_back_refs
+
+ def get_routing_instance_back_refs(self):
+ """Return list of all routing-instances using this route-target"""
+ return getattr(self, 'routing_instance_back_refs', None)
+ #end get_routing_instance_back_refs
+
+ def dump(self):
+ """Display route-target object in compact form."""
+ print '------------ route-target ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'BCK logical_router = ', self.get_logical_router_back_refs()
+ print 'BCK routing_instance = ', self.get_routing_instance_back_refs()
+ #end dump
+
+#end class RouteTarget
+
+class FloatingIp(object):
+ """
+ Represents floating-ip configuration representation.
+
+ Child of:
+ :class:`.FloatingIpPool` object OR
+
+ Properties:
+ * floating-ip-address (IpAddressType type)
+ * floating-ip-is-virtual-ip (xsd:boolean type)
+ * floating-ip-fixed-ip-address (IpAddressType type)
+ * floating-ip-address-family (IpAddressFamilyType type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+ * list of :class:`.Project` objects
+ * list of :class:`.VirtualMachineInterface` objects
+
+ Referred by:
+ * list of :class:`.CustomerAttachment` objects
+ """
+
+ prop_fields = set([u'floating_ip_address', u'floating_ip_is_virtual_ip', u'floating_ip_fixed_ip_address', u'floating_ip_address_family', u'id_perms', u'display_name'])
+ ref_fields = set([u'project_refs', 'virtual_machine_interface_refs'])
+ backref_fields = set([u'floating_ip_pool_back_refs', 'customer_attachment_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, floating_ip_address = None, floating_ip_is_virtual_ip = None, floating_ip_fixed_ip_address = None, floating_ip_address_family = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'floating-ip'
+ if not name:
+ name = u'default-floating-ip'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'floating-ip-pool'
+ self.fq_name = [u'default-domain', u'default-project', u'default-virtual-network', u'default-floating-ip-pool']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if floating_ip_address:
+ self._floating_ip_address = floating_ip_address
+ if floating_ip_is_virtual_ip:
+ self._floating_ip_is_virtual_ip = floating_ip_is_virtual_ip
+ if floating_ip_fixed_ip_address:
+ self._floating_ip_fixed_ip_address = floating_ip_fixed_ip_address
+ if floating_ip_address_family:
+ self._floating_ip_address_family = floating_ip_address_family
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (floating-ip)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of floating-ip in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of floating-ip as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of floating-ip's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of floating-ip's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def floating_ip_address(self):
+ """Get floating-ip-address for floating-ip.
+
+ :returns: IpAddressType object
+
+ """
+ return getattr(self, '_floating_ip_address', None)
+ #end floating_ip_address
+
+ @floating_ip_address.setter
+ def floating_ip_address(self, floating_ip_address):
+ """Set floating-ip-address for floating-ip.
+
+ :param floating_ip_address: IpAddressType object
+
+ """
+ self._floating_ip_address = floating_ip_address
+ #end floating_ip_address
+
+ def set_floating_ip_address(self, value):
+ self.floating_ip_address = value
+ #end set_floating_ip_address
+
+ def get_floating_ip_address(self):
+ return self.floating_ip_address
+ #end get_floating_ip_address
+
+ @property
+ def floating_ip_is_virtual_ip(self):
+ """Get floating-ip-is-virtual-ip for floating-ip.
+
+ :returns: xsd:boolean object
+
+ """
+ return getattr(self, '_floating_ip_is_virtual_ip', None)
+ #end floating_ip_is_virtual_ip
+
+ @floating_ip_is_virtual_ip.setter
+ def floating_ip_is_virtual_ip(self, floating_ip_is_virtual_ip):
+ """Set floating-ip-is-virtual-ip for floating-ip.
+
+ :param floating_ip_is_virtual_ip: xsd:boolean object
+
+ """
+ self._floating_ip_is_virtual_ip = floating_ip_is_virtual_ip
+ #end floating_ip_is_virtual_ip
+
+ def set_floating_ip_is_virtual_ip(self, value):
+ self.floating_ip_is_virtual_ip = value
+ #end set_floating_ip_is_virtual_ip
+
+ def get_floating_ip_is_virtual_ip(self):
+ return self.floating_ip_is_virtual_ip
+ #end get_floating_ip_is_virtual_ip
+
+ @property
+ def floating_ip_fixed_ip_address(self):
+ """Get floating-ip-fixed-ip-address for floating-ip.
+
+ :returns: IpAddressType object
+
+ """
+ return getattr(self, '_floating_ip_fixed_ip_address', None)
+ #end floating_ip_fixed_ip_address
+
+ @floating_ip_fixed_ip_address.setter
+ def floating_ip_fixed_ip_address(self, floating_ip_fixed_ip_address):
+ """Set floating-ip-fixed-ip-address for floating-ip.
+
+ :param floating_ip_fixed_ip_address: IpAddressType object
+
+ """
+ self._floating_ip_fixed_ip_address = floating_ip_fixed_ip_address
+ #end floating_ip_fixed_ip_address
+
+ def set_floating_ip_fixed_ip_address(self, value):
+ self.floating_ip_fixed_ip_address = value
+ #end set_floating_ip_fixed_ip_address
+
+ def get_floating_ip_fixed_ip_address(self):
+ return self.floating_ip_fixed_ip_address
+ #end get_floating_ip_fixed_ip_address
+
+ @property
+ def floating_ip_address_family(self):
+ """Get floating-ip-address-family for floating-ip.
+
+ :returns: IpAddressFamilyType object
+
+ """
+ return getattr(self, '_floating_ip_address_family', None)
+ #end floating_ip_address_family
+
+ @floating_ip_address_family.setter
+ def floating_ip_address_family(self, floating_ip_address_family):
+ """Set floating-ip-address-family for floating-ip.
+
+ :param floating_ip_address_family: IpAddressFamilyType object
+
+ """
+ self._floating_ip_address_family = floating_ip_address_family
+ #end floating_ip_address_family
+
+ def set_floating_ip_address_family(self, value):
+ self.floating_ip_address_family = value
+ #end set_floating_ip_address_family
+
+ def get_floating_ip_address_family(self):
+ return self.floating_ip_address_family
+ #end get_floating_ip_address_family
+
+ @property
+ def id_perms(self):
+ """Get id-perms for floating-ip.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for floating-ip.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for floating-ip.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for floating-ip.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_floating_ip_address'):
+ self._serialize_field_to_json(serialized, field_names, 'floating_ip_address')
+ if hasattr(self, '_floating_ip_is_virtual_ip'):
+ self._serialize_field_to_json(serialized, field_names, 'floating_ip_is_virtual_ip')
+ if hasattr(self, '_floating_ip_fixed_ip_address'):
+ self._serialize_field_to_json(serialized, field_names, 'floating_ip_fixed_ip_address')
+ if hasattr(self, '_floating_ip_address_family'):
+ self._serialize_field_to_json(serialized, field_names, 'floating_ip_address_family')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'project_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'project_refs')
+ if hasattr(self, 'virtual_machine_interface_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_interface_refs')
+ return serialized
+ #end serialize_to_json
+
+ def set_project(self, ref_obj):
+ """Set project for floating-ip.
+
+ :param ref_obj: Project object
+
+ """
+ self.project_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.project_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_project
+
+ def add_project(self, ref_obj):
+ """Add project to floating-ip.
+
+ :param ref_obj: Project object
+
+ """
+ refs = getattr(self, 'project_refs', [])
+ if not refs:
+ self.project_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.project_refs.append(ref_info)
+ #end add_project
+
+ def del_project(self, ref_obj):
+ refs = self.get_project_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.project_refs.remove(ref)
+ return
+ #end del_project
+
+ def set_project_list(self, ref_obj_list):
+ """Set project list for floating-ip.
+
+ :param ref_obj_list: list of Project object
+
+ """
+ self.project_refs = ref_obj_list
+ #end set_project_list
+
+ def get_project_refs(self):
+ """Return project list for floating-ip.
+
+ :returns: list of <Project>
+
+ """
+ return getattr(self, 'project_refs', None)
+ #end get_project_refs
+
+ def set_virtual_machine_interface(self, ref_obj):
+ """Set virtual-machine-interface for floating-ip.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_machine_interface_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_machine_interface
+
+ def add_virtual_machine_interface(self, ref_obj):
+ """Add virtual-machine-interface to floating-ip.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ refs = getattr(self, 'virtual_machine_interface_refs', [])
+ if not refs:
+ self.virtual_machine_interface_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_machine_interface_refs.append(ref_info)
+ #end add_virtual_machine_interface
+
+ def del_virtual_machine_interface(self, ref_obj):
+ refs = self.get_virtual_machine_interface_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_machine_interface_refs.remove(ref)
+ return
+ #end del_virtual_machine_interface
+
+ def set_virtual_machine_interface_list(self, ref_obj_list):
+ """Set virtual-machine-interface list for floating-ip.
+
+ :param ref_obj_list: list of VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = ref_obj_list
+ #end set_virtual_machine_interface_list
+
+ def get_virtual_machine_interface_refs(self):
+ """Return virtual-machine-interface list for floating-ip.
+
+ :returns: list of <VirtualMachineInterface>
+
+ """
+ return getattr(self, 'virtual_machine_interface_refs', None)
+ #end get_virtual_machine_interface_refs
+
+ def get_floating_ip_pool_back_refs(self):
+ """Return list of all floating-ip-pools using this floating-ip"""
+ return getattr(self, 'floating_ip_pool_back_refs', None)
+ #end get_floating_ip_pool_back_refs
+
+ def get_customer_attachment_back_refs(self):
+ """Return list of all customer-attachments using this floating-ip"""
+ return getattr(self, 'customer_attachment_back_refs', None)
+ #end get_customer_attachment_back_refs
+
+ def dump(self):
+ """Display floating-ip object in compact form."""
+ print '------------ floating-ip ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P floating_ip_address = ', self.get_floating_ip_address()
+ print 'P floating_ip_is_virtual_ip = ', self.get_floating_ip_is_virtual_ip()
+ print 'P floating_ip_fixed_ip_address = ', self.get_floating_ip_fixed_ip_address()
+ print 'P floating_ip_address_family = ', self.get_floating_ip_address_family()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF project = ', self.get_project_refs()
+ print 'REF virtual_machine_interface = ', self.get_virtual_machine_interface_refs()
+ print 'BCK customer_attachment = ', self.get_customer_attachment_back_refs()
+ #end dump
+
+#end class FloatingIp
+
+class FloatingIpPool(object):
+ """
+ Represents floating-ip-pool configuration representation.
+
+ Child of:
+ :class:`.VirtualNetwork` object OR
+
+ Properties:
+ * floating-ip-pool-prefixes (:class:`.FloatingIpPoolType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+ * list of :class:`.FloatingIp` objects
+
+ References to:
+
+ Referred by:
+ * list of :class:`.Project` objects
+ """
+
+ prop_fields = set([u'floating_ip_pool_prefixes', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'virtual_network_back_refs', u'project_back_refs'])
+ children_fields = set([u'floating_ips'])
+
+ def __init__(self, name = None, parent_obj = None, floating_ip_pool_prefixes = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'floating-ip-pool'
+ if not name:
+ name = u'default-floating-ip-pool'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'virtual-network'
+ self.fq_name = [u'default-domain', u'default-project', u'default-virtual-network']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if floating_ip_pool_prefixes:
+ self._floating_ip_pool_prefixes = floating_ip_pool_prefixes
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (floating-ip-pool)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of floating-ip-pool in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of floating-ip-pool as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of floating-ip-pool's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of floating-ip-pool's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def floating_ip_pool_prefixes(self):
+ """Get floating-ip-pool-prefixes for floating-ip-pool.
+
+ :returns: FloatingIpPoolType object
+
+ """
+ return getattr(self, '_floating_ip_pool_prefixes', None)
+ #end floating_ip_pool_prefixes
+
+ @floating_ip_pool_prefixes.setter
+ def floating_ip_pool_prefixes(self, floating_ip_pool_prefixes):
+ """Set floating-ip-pool-prefixes for floating-ip-pool.
+
+ :param floating_ip_pool_prefixes: FloatingIpPoolType object
+
+ """
+ self._floating_ip_pool_prefixes = floating_ip_pool_prefixes
+ #end floating_ip_pool_prefixes
+
+ def set_floating_ip_pool_prefixes(self, value):
+ self.floating_ip_pool_prefixes = value
+ #end set_floating_ip_pool_prefixes
+
+ def get_floating_ip_pool_prefixes(self):
+ return self.floating_ip_pool_prefixes
+ #end get_floating_ip_pool_prefixes
+
+ @property
+ def id_perms(self):
+ """Get id-perms for floating-ip-pool.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for floating-ip-pool.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for floating-ip-pool.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for floating-ip-pool.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_floating_ip_pool_prefixes'):
+ self._serialize_field_to_json(serialized, field_names, 'floating_ip_pool_prefixes')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_floating_ips(self):
+ return getattr(self, 'floating_ips', None)
+ #end get_floating_ips
+
+ def get_virtual_network_back_refs(self):
+ """Return list of all virtual-networks using this floating-ip-pool"""
+ return getattr(self, 'virtual_network_back_refs', None)
+ #end get_virtual_network_back_refs
+
+ def get_project_back_refs(self):
+ """Return list of all projects using this floating-ip-pool"""
+ return getattr(self, 'project_back_refs', None)
+ #end get_project_back_refs
+
+ def dump(self):
+ """Display floating-ip-pool object in compact form."""
+ print '------------ floating-ip-pool ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P floating_ip_pool_prefixes = ', self.get_floating_ip_pool_prefixes()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'HAS floating_ip = ', self.get_floating_ips()
+ print 'BCK project = ', self.get_project_back_refs()
+ #end dump
+
+#end class FloatingIpPool
+
+class PhysicalRouter(object):
+ """
+ Represents physical-router configuration representation.
+
+ Child of:
+ :class:`.GlobalSystemConfig` object OR
+
+ Properties:
+ * physical-router-management-ip (IpAddress type)
+ * physical-router-dataplane-ip (IpAddress type)
+ * physical-router-vendor-name (xsd:string type)
+ * physical-router-product-name (xsd:string type)
+ * physical-router-vnc-managed (xsd:boolean type)
+ * physical-router-user-credentials (:class:`.UserCredentials` type)
+ * physical-router-snmp-credentials (:class:`.SNMPCredentials` type)
+ * physical-router-junos-service-ports (:class:`.JunosServicePorts` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+ * list of :class:`.PhysicalInterface` objects
+ * list of :class:`.LogicalInterface` objects
+
+ References to:
+ * list of :class:`.VirtualRouter` objects
+ * list of :class:`.BgpRouter` objects
+ * list of :class:`.VirtualNetwork` objects
+
+ Referred by:
+ """
+
+ prop_fields = set([u'physical_router_management_ip', u'physical_router_dataplane_ip', u'physical_router_vendor_name', u'physical_router_product_name', u'physical_router_vnc_managed', u'physical_router_user_credentials', u'physical_router_snmp_credentials', u'physical_router_junos_service_ports', u'id_perms', u'display_name'])
+ ref_fields = set(['virtual_router_refs', 'bgp_router_refs', u'virtual_network_refs'])
+ backref_fields = set([u'global_system_config_back_refs'])
+ children_fields = set([u'physical_interfaces', u'logical_interfaces'])
+
+ def __init__(self, name = None, parent_obj = None, physical_router_management_ip = None, physical_router_dataplane_ip = None, physical_router_vendor_name = None, physical_router_product_name = None, physical_router_vnc_managed = None, physical_router_user_credentials = None, physical_router_snmp_credentials = None, physical_router_junos_service_ports = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'physical-router'
+ if not name:
+ name = u'default-physical-router'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'global-system-config'
+ self.fq_name = [u'default-global-system-config']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if physical_router_management_ip:
+ self._physical_router_management_ip = physical_router_management_ip
+ if physical_router_dataplane_ip:
+ self._physical_router_dataplane_ip = physical_router_dataplane_ip
+ if physical_router_vendor_name:
+ self._physical_router_vendor_name = physical_router_vendor_name
+ if physical_router_product_name:
+ self._physical_router_product_name = physical_router_product_name
+ if physical_router_vnc_managed:
+ self._physical_router_vnc_managed = physical_router_vnc_managed
+ if physical_router_user_credentials:
+ self._physical_router_user_credentials = physical_router_user_credentials
+ if physical_router_snmp_credentials:
+ self._physical_router_snmp_credentials = physical_router_snmp_credentials
+ if physical_router_junos_service_ports:
+ self._physical_router_junos_service_ports = physical_router_junos_service_ports
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (physical-router)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of physical-router in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of physical-router as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of physical-router's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of physical-router's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def physical_router_management_ip(self):
+ """Get physical-router-management-ip for physical-router.
+
+ :returns: IpAddress object
+
+ """
+ return getattr(self, '_physical_router_management_ip', None)
+ #end physical_router_management_ip
+
+ @physical_router_management_ip.setter
+ def physical_router_management_ip(self, physical_router_management_ip):
+ """Set physical-router-management-ip for physical-router.
+
+ :param physical_router_management_ip: IpAddress object
+
+ """
+ self._physical_router_management_ip = physical_router_management_ip
+ #end physical_router_management_ip
+
+ def set_physical_router_management_ip(self, value):
+ self.physical_router_management_ip = value
+ #end set_physical_router_management_ip
+
+ def get_physical_router_management_ip(self):
+ return self.physical_router_management_ip
+ #end get_physical_router_management_ip
+
+ @property
+ def physical_router_dataplane_ip(self):
+ """Get physical-router-dataplane-ip for physical-router.
+
+ :returns: IpAddress object
+
+ """
+ return getattr(self, '_physical_router_dataplane_ip', None)
+ #end physical_router_dataplane_ip
+
+ @physical_router_dataplane_ip.setter
+ def physical_router_dataplane_ip(self, physical_router_dataplane_ip):
+ """Set physical-router-dataplane-ip for physical-router.
+
+ :param physical_router_dataplane_ip: IpAddress object
+
+ """
+ self._physical_router_dataplane_ip = physical_router_dataplane_ip
+ #end physical_router_dataplane_ip
+
+ def set_physical_router_dataplane_ip(self, value):
+ self.physical_router_dataplane_ip = value
+ #end set_physical_router_dataplane_ip
+
+ def get_physical_router_dataplane_ip(self):
+ return self.physical_router_dataplane_ip
+ #end get_physical_router_dataplane_ip
+
+ @property
+ def physical_router_vendor_name(self):
+ """Get physical-router-vendor-name for physical-router.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_physical_router_vendor_name', None)
+ #end physical_router_vendor_name
+
+ @physical_router_vendor_name.setter
+ def physical_router_vendor_name(self, physical_router_vendor_name):
+ """Set physical-router-vendor-name for physical-router.
+
+ :param physical_router_vendor_name: xsd:string object
+
+ """
+ self._physical_router_vendor_name = physical_router_vendor_name
+ #end physical_router_vendor_name
+
+ def set_physical_router_vendor_name(self, value):
+ self.physical_router_vendor_name = value
+ #end set_physical_router_vendor_name
+
+ def get_physical_router_vendor_name(self):
+ return self.physical_router_vendor_name
+ #end get_physical_router_vendor_name
+
+ @property
+ def physical_router_product_name(self):
+ """Get physical-router-product-name for physical-router.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_physical_router_product_name', None)
+ #end physical_router_product_name
+
+ @physical_router_product_name.setter
+ def physical_router_product_name(self, physical_router_product_name):
+ """Set physical-router-product-name for physical-router.
+
+ :param physical_router_product_name: xsd:string object
+
+ """
+ self._physical_router_product_name = physical_router_product_name
+ #end physical_router_product_name
+
+ def set_physical_router_product_name(self, value):
+ self.physical_router_product_name = value
+ #end set_physical_router_product_name
+
+ def get_physical_router_product_name(self):
+ return self.physical_router_product_name
+ #end get_physical_router_product_name
+
+ @property
+ def physical_router_vnc_managed(self):
+ """Get physical-router-vnc-managed for physical-router.
+
+ :returns: xsd:boolean object
+
+ """
+ return getattr(self, '_physical_router_vnc_managed', None)
+ #end physical_router_vnc_managed
+
+ @physical_router_vnc_managed.setter
+ def physical_router_vnc_managed(self, physical_router_vnc_managed):
+ """Set physical-router-vnc-managed for physical-router.
+
+ :param physical_router_vnc_managed: xsd:boolean object
+
+ """
+ self._physical_router_vnc_managed = physical_router_vnc_managed
+ #end physical_router_vnc_managed
+
+ def set_physical_router_vnc_managed(self, value):
+ self.physical_router_vnc_managed = value
+ #end set_physical_router_vnc_managed
+
+ def get_physical_router_vnc_managed(self):
+ return self.physical_router_vnc_managed
+ #end get_physical_router_vnc_managed
+
+ @property
+ def physical_router_user_credentials(self):
+ """Get physical-router-user-credentials for physical-router.
+
+ :returns: UserCredentials object
+
+ """
+ return getattr(self, '_physical_router_user_credentials', None)
+ #end physical_router_user_credentials
+
+ @physical_router_user_credentials.setter
+ def physical_router_user_credentials(self, physical_router_user_credentials):
+ """Set physical-router-user-credentials for physical-router.
+
+ :param physical_router_user_credentials: UserCredentials object
+
+ """
+ self._physical_router_user_credentials = physical_router_user_credentials
+ #end physical_router_user_credentials
+
+ def set_physical_router_user_credentials(self, value):
+ self.physical_router_user_credentials = value
+ #end set_physical_router_user_credentials
+
+ def get_physical_router_user_credentials(self):
+ return self.physical_router_user_credentials
+ #end get_physical_router_user_credentials
+
+ @property
+ def physical_router_snmp_credentials(self):
+ """Get physical-router-snmp-credentials for physical-router.
+
+ :returns: SNMPCredentials object
+
+ """
+ return getattr(self, '_physical_router_snmp_credentials', None)
+ #end physical_router_snmp_credentials
+
+ @physical_router_snmp_credentials.setter
+ def physical_router_snmp_credentials(self, physical_router_snmp_credentials):
+ """Set physical-router-snmp-credentials for physical-router.
+
+ :param physical_router_snmp_credentials: SNMPCredentials object
+
+ """
+ self._physical_router_snmp_credentials = physical_router_snmp_credentials
+ #end physical_router_snmp_credentials
+
+ def set_physical_router_snmp_credentials(self, value):
+ self.physical_router_snmp_credentials = value
+ #end set_physical_router_snmp_credentials
+
+ def get_physical_router_snmp_credentials(self):
+ return self.physical_router_snmp_credentials
+ #end get_physical_router_snmp_credentials
+
+ @property
+ def physical_router_junos_service_ports(self):
+ """Get physical-router-junos-service-ports for physical-router.
+
+ :returns: JunosServicePorts object
+
+ """
+ return getattr(self, '_physical_router_junos_service_ports', None)
+ #end physical_router_junos_service_ports
+
+ @physical_router_junos_service_ports.setter
+ def physical_router_junos_service_ports(self, physical_router_junos_service_ports):
+ """Set physical-router-junos-service-ports for physical-router.
+
+ :param physical_router_junos_service_ports: JunosServicePorts object
+
+ """
+ self._physical_router_junos_service_ports = physical_router_junos_service_ports
+ #end physical_router_junos_service_ports
+
+ def set_physical_router_junos_service_ports(self, value):
+ self.physical_router_junos_service_ports = value
+ #end set_physical_router_junos_service_ports
+
+ def get_physical_router_junos_service_ports(self):
+ return self.physical_router_junos_service_ports
+ #end get_physical_router_junos_service_ports
+
+ @property
+ def id_perms(self):
+ """Get id-perms for physical-router.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for physical-router.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for physical-router.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for physical-router.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_physical_router_management_ip'):
+ self._serialize_field_to_json(serialized, field_names, 'physical_router_management_ip')
+ if hasattr(self, '_physical_router_dataplane_ip'):
+ self._serialize_field_to_json(serialized, field_names, 'physical_router_dataplane_ip')
+ if hasattr(self, '_physical_router_vendor_name'):
+ self._serialize_field_to_json(serialized, field_names, 'physical_router_vendor_name')
+ if hasattr(self, '_physical_router_product_name'):
+ self._serialize_field_to_json(serialized, field_names, 'physical_router_product_name')
+ if hasattr(self, '_physical_router_vnc_managed'):
+ self._serialize_field_to_json(serialized, field_names, 'physical_router_vnc_managed')
+ if hasattr(self, '_physical_router_user_credentials'):
+ self._serialize_field_to_json(serialized, field_names, 'physical_router_user_credentials')
+ if hasattr(self, '_physical_router_snmp_credentials'):
+ self._serialize_field_to_json(serialized, field_names, 'physical_router_snmp_credentials')
+ if hasattr(self, '_physical_router_junos_service_ports'):
+ self._serialize_field_to_json(serialized, field_names, 'physical_router_junos_service_ports')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'virtual_router_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_router_refs')
+ if hasattr(self, 'bgp_router_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'bgp_router_refs')
+ if hasattr(self, 'virtual_network_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_network_refs')
+ return serialized
+ #end serialize_to_json
+
+ def get_physical_interfaces(self):
+ return getattr(self, 'physical_interfaces', None)
+ #end get_physical_interfaces
+
+ def get_logical_interfaces(self):
+ return getattr(self, 'logical_interfaces', None)
+ #end get_logical_interfaces
+
+ def set_virtual_router(self, ref_obj):
+ """Set virtual-router for physical-router.
+
+ :param ref_obj: VirtualRouter object
+
+ """
+ self.virtual_router_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_router_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_router
+
+ def add_virtual_router(self, ref_obj):
+ """Add virtual-router to physical-router.
+
+ :param ref_obj: VirtualRouter object
+
+ """
+ refs = getattr(self, 'virtual_router_refs', [])
+ if not refs:
+ self.virtual_router_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_router_refs.append(ref_info)
+ #end add_virtual_router
+
+ def del_virtual_router(self, ref_obj):
+ refs = self.get_virtual_router_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_router_refs.remove(ref)
+ return
+ #end del_virtual_router
+
+ def set_virtual_router_list(self, ref_obj_list):
+ """Set virtual-router list for physical-router.
+
+ :param ref_obj_list: list of VirtualRouter object
+
+ """
+ self.virtual_router_refs = ref_obj_list
+ #end set_virtual_router_list
+
+ def get_virtual_router_refs(self):
+ """Return virtual-router list for physical-router.
+
+ :returns: list of <VirtualRouter>
+
+ """
+ return getattr(self, 'virtual_router_refs', None)
+ #end get_virtual_router_refs
+
+ def set_bgp_router(self, ref_obj):
+ """Set bgp-router for physical-router.
+
+ :param ref_obj: BgpRouter object
+
+ """
+ self.bgp_router_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.bgp_router_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_bgp_router
+
+ def add_bgp_router(self, ref_obj):
+ """Add bgp-router to physical-router.
+
+ :param ref_obj: BgpRouter object
+
+ """
+ refs = getattr(self, 'bgp_router_refs', [])
+ if not refs:
+ self.bgp_router_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.bgp_router_refs.append(ref_info)
+ #end add_bgp_router
+
+ def del_bgp_router(self, ref_obj):
+ refs = self.get_bgp_router_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.bgp_router_refs.remove(ref)
+ return
+ #end del_bgp_router
+
+ def set_bgp_router_list(self, ref_obj_list):
+ """Set bgp-router list for physical-router.
+
+ :param ref_obj_list: list of BgpRouter object
+
+ """
+ self.bgp_router_refs = ref_obj_list
+ #end set_bgp_router_list
+
+ def get_bgp_router_refs(self):
+ """Return bgp-router list for physical-router.
+
+ :returns: list of <BgpRouter>
+
+ """
+ return getattr(self, 'bgp_router_refs', None)
+ #end get_bgp_router_refs
+
+ def set_virtual_network(self, ref_obj):
+ """Set virtual-network for physical-router.
+
+ :param ref_obj: VirtualNetwork object
+
+ """
+ self.virtual_network_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_network_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_network
+
+ def add_virtual_network(self, ref_obj):
+ """Add virtual-network to physical-router.
+
+ :param ref_obj: VirtualNetwork object
+
+ """
+ refs = getattr(self, 'virtual_network_refs', [])
+ if not refs:
+ self.virtual_network_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_network_refs.append(ref_info)
+ #end add_virtual_network
+
+ def del_virtual_network(self, ref_obj):
+ refs = self.get_virtual_network_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_network_refs.remove(ref)
+ return
+ #end del_virtual_network
+
+ def set_virtual_network_list(self, ref_obj_list):
+ """Set virtual-network list for physical-router.
+
+ :param ref_obj_list: list of VirtualNetwork object
+
+ """
+ self.virtual_network_refs = ref_obj_list
+ #end set_virtual_network_list
+
+ def get_virtual_network_refs(self):
+ """Return virtual-network list for physical-router.
+
+ :returns: list of <VirtualNetwork>
+
+ """
+ return getattr(self, 'virtual_network_refs', None)
+ #end get_virtual_network_refs
+
+ def get_global_system_config_back_refs(self):
+ """Return list of all global-system-configs using this physical-router"""
+ return getattr(self, 'global_system_config_back_refs', None)
+ #end get_global_system_config_back_refs
+
+ def dump(self):
+ """Display physical-router object in compact form."""
+ print '------------ physical-router ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P physical_router_management_ip = ', self.get_physical_router_management_ip()
+ print 'P physical_router_dataplane_ip = ', self.get_physical_router_dataplane_ip()
+ print 'P physical_router_vendor_name = ', self.get_physical_router_vendor_name()
+ print 'P physical_router_product_name = ', self.get_physical_router_product_name()
+ print 'P physical_router_vnc_managed = ', self.get_physical_router_vnc_managed()
+ print 'P physical_router_user_credentials = ', self.get_physical_router_user_credentials()
+ print 'P physical_router_snmp_credentials = ', self.get_physical_router_snmp_credentials()
+ print 'P physical_router_junos_service_ports = ', self.get_physical_router_junos_service_ports()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF virtual_router = ', self.get_virtual_router_refs()
+ print 'REF bgp_router = ', self.get_bgp_router_refs()
+ print 'REF virtual_network = ', self.get_virtual_network_refs()
+ print 'HAS physical_interface = ', self.get_physical_interfaces()
+ print 'HAS logical_interface = ', self.get_logical_interfaces()
+ #end dump
+
+#end class PhysicalRouter
+
+class BgpRouter(object):
+ """
+ Represents bgp-router configuration representation.
+
+ Child of:
+ :class:`.RoutingInstance` object OR
+
+ Properties:
+ * bgp-router-parameters (:class:`.BgpRouterParams` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+ * list of (:class:`.BgpRouter` object, :class:`.BgpPeeringAttributes` attribute)
+
+ Referred by:
+ * list of :class:`.GlobalSystemConfig` objects
+ * list of :class:`.PhysicalRouter` objects
+ * list of :class:`.VirtualRouter` objects
+ * list of :class:`.BgpRouter` objects
+ """
+
+ prop_fields = set([u'bgp_router_parameters', u'id_perms', u'display_name'])
+ ref_fields = set(['bgp_router_refs'])
+ backref_fields = set([u'global_system_config_back_refs', u'physical_router_back_refs', 'virtual_router_back_refs', 'routing_instance_back_refs', 'bgp_router_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, bgp_router_parameters = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'bgp-router'
+ if not name:
+ name = u'default-bgp-router'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'routing-instance'
+ self.fq_name = [u'default-domain', u'default-project', u'default-virtual-network', 'default-routing-instance']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if bgp_router_parameters:
+ self._bgp_router_parameters = bgp_router_parameters
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (bgp-router)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of bgp-router in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of bgp-router as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of bgp-router's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of bgp-router's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def bgp_router_parameters(self):
+ """Get bgp-router-parameters for bgp-router.
+
+ :returns: BgpRouterParams object
+
+ """
+ return getattr(self, '_bgp_router_parameters', None)
+ #end bgp_router_parameters
+
+ @bgp_router_parameters.setter
+ def bgp_router_parameters(self, bgp_router_parameters):
+ """Set bgp-router-parameters for bgp-router.
+
+ :param bgp_router_parameters: BgpRouterParams object
+
+ """
+ self._bgp_router_parameters = bgp_router_parameters
+ #end bgp_router_parameters
+
+ def set_bgp_router_parameters(self, value):
+ self.bgp_router_parameters = value
+ #end set_bgp_router_parameters
+
+ def get_bgp_router_parameters(self):
+ return self.bgp_router_parameters
+ #end get_bgp_router_parameters
+
+ @property
+ def id_perms(self):
+ """Get id-perms for bgp-router.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for bgp-router.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for bgp-router.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for bgp-router.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_bgp_router_parameters'):
+ self._serialize_field_to_json(serialized, field_names, 'bgp_router_parameters')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'bgp_router_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'bgp_router_refs')
+ return serialized
+ #end serialize_to_json
+
+ def set_bgp_router(self, ref_obj, ref_data):
+ """Set bgp-router for bgp-router.
+
+ :param ref_obj: BgpRouter object
+ :param ref_data: BgpPeeringAttributes object
+
+ """
+ self.bgp_router_refs = [{'to':ref_obj.get_fq_name(), 'attr':ref_data}]
+ if ref_obj.uuid:
+ self.bgp_router_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_bgp_router
+
+ def add_bgp_router(self, ref_obj, ref_data):
+ """Add bgp-router to bgp-router.
+
+ :param ref_obj: BgpRouter object
+ :param ref_data: BgpPeeringAttributes object
+
+ """
+ refs = getattr(self, 'bgp_router_refs', [])
+ if not refs:
+ self.bgp_router_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name(), 'attr':ref_data}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name(), 'attr':ref_data}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.bgp_router_refs.append(ref_info)
+ #end add_bgp_router
+
+ def del_bgp_router(self, ref_obj):
+ refs = self.get_bgp_router_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.bgp_router_refs.remove(ref)
+ return
+ #end del_bgp_router
+
+ def set_bgp_router_list(self, ref_obj_list, ref_data_list):
+ """Set bgp-router list for bgp-router.
+
+ :param ref_obj_list: list of BgpRouter object
+ :param ref_data_list: list of BgpPeeringAttributes object
+
+ """
+ self.bgp_router_refs = [{'to':ref_obj_list[i], 'attr':ref_data_list[i]} for i in range(len(ref_obj_list))]
+ #end set_bgp_router_list
+
+ def get_bgp_router_refs(self):
+ """Return bgp-router list for bgp-router.
+
+ :returns: list of tuple <BgpRouter, BgpPeeringAttributes>
+
+ """
+ return getattr(self, 'bgp_router_refs', None)
+ #end get_bgp_router_refs
+
+ def get_global_system_config_back_refs(self):
+ """Return list of all global-system-configs using this bgp-router"""
+ return getattr(self, 'global_system_config_back_refs', None)
+ #end get_global_system_config_back_refs
+
+ def get_physical_router_back_refs(self):
+ """Return list of all physical-routers using this bgp-router"""
+ return getattr(self, 'physical_router_back_refs', None)
+ #end get_physical_router_back_refs
+
+ def get_virtual_router_back_refs(self):
+ """Return list of all virtual-routers using this bgp-router"""
+ return getattr(self, 'virtual_router_back_refs', None)
+ #end get_virtual_router_back_refs
+
+ def get_routing_instance_back_refs(self):
+ """Return list of all routing-instances using this bgp-router"""
+ return getattr(self, 'routing_instance_back_refs', None)
+ #end get_routing_instance_back_refs
+
+ def get_bgp_router_back_refs(self):
+ """Return list of all bgp-routers using this bgp-router"""
+ return getattr(self, 'bgp_router_back_refs', None)
+ #end get_bgp_router_back_refs
+
+ def dump(self):
+ """Display bgp-router object in compact form."""
+ print '------------ bgp-router ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P bgp_router_parameters = ', self.get_bgp_router_parameters()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF bgp_router = ', self.get_bgp_router_refs()
+ print 'BCK global_system_config = ', self.get_global_system_config_back_refs()
+ print 'BCK physical_router = ', self.get_physical_router_back_refs()
+ print 'BCK virtual_router = ', self.get_virtual_router_back_refs()
+ print 'BCK bgp_router = ', self.get_bgp_router_back_refs()
+ #end dump
+
+#end class BgpRouter
+
+class VirtualRouter(object):
+ """
+ Represents virtual-router configuration representation.
+
+ Child of:
+ :class:`.GlobalSystemConfig` object OR
+
+ Properties:
+ * virtual-router-type (VirtualRouterType type)
+ * virtual-router-ip-address (IpAddressType type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+ * list of :class:`.BgpRouter` objects
+ * list of :class:`.VirtualMachine` objects
+
+ Referred by:
+ * list of :class:`.PhysicalRouter` objects
+ * list of :class:`.ProviderAttachment` objects
+ """
+
+ prop_fields = set([u'virtual_router_type', u'virtual_router_ip_address', u'id_perms', u'display_name'])
+ ref_fields = set(['bgp_router_refs', u'virtual_machine_refs'])
+ backref_fields = set([u'physical_router_back_refs', u'global_system_config_back_refs', 'provider_attachment_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, virtual_router_type = None, virtual_router_ip_address = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'virtual-router'
+ if not name:
+ name = u'default-virtual-router'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'global-system-config'
+ self.fq_name = [u'default-global-system-config']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if virtual_router_type:
+ self._virtual_router_type = virtual_router_type
+ if virtual_router_ip_address:
+ self._virtual_router_ip_address = virtual_router_ip_address
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (virtual-router)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of virtual-router in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of virtual-router as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of virtual-router's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of virtual-router's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def virtual_router_type(self):
+ """Get virtual-router-type for virtual-router.
+
+ :returns: VirtualRouterType object
+
+ """
+ return getattr(self, '_virtual_router_type', None)
+ #end virtual_router_type
+
+ @virtual_router_type.setter
+ def virtual_router_type(self, virtual_router_type):
+ """Set virtual-router-type for virtual-router.
+
+ :param virtual_router_type: VirtualRouterType object
+
+ """
+ self._virtual_router_type = virtual_router_type
+ #end virtual_router_type
+
+ def set_virtual_router_type(self, value):
+ self.virtual_router_type = value
+ #end set_virtual_router_type
+
+ def get_virtual_router_type(self):
+ return self.virtual_router_type
+ #end get_virtual_router_type
+
+ @property
+ def virtual_router_ip_address(self):
+ """Get virtual-router-ip-address for virtual-router.
+
+ :returns: IpAddressType object
+
+ """
+ return getattr(self, '_virtual_router_ip_address', None)
+ #end virtual_router_ip_address
+
+ @virtual_router_ip_address.setter
+ def virtual_router_ip_address(self, virtual_router_ip_address):
+ """Set virtual-router-ip-address for virtual-router.
+
+ :param virtual_router_ip_address: IpAddressType object
+
+ """
+ self._virtual_router_ip_address = virtual_router_ip_address
+ #end virtual_router_ip_address
+
+ def set_virtual_router_ip_address(self, value):
+ self.virtual_router_ip_address = value
+ #end set_virtual_router_ip_address
+
+ def get_virtual_router_ip_address(self):
+ return self.virtual_router_ip_address
+ #end get_virtual_router_ip_address
+
+ @property
+ def id_perms(self):
+ """Get id-perms for virtual-router.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for virtual-router.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for virtual-router.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for virtual-router.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_virtual_router_type'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_router_type')
+ if hasattr(self, '_virtual_router_ip_address'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_router_ip_address')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'bgp_router_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'bgp_router_refs')
+ if hasattr(self, 'virtual_machine_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_refs')
+ return serialized
+ #end serialize_to_json
+
+ def set_bgp_router(self, ref_obj):
+ """Set bgp-router for virtual-router.
+
+ :param ref_obj: BgpRouter object
+
+ """
+ self.bgp_router_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.bgp_router_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_bgp_router
+
+ def add_bgp_router(self, ref_obj):
+ """Add bgp-router to virtual-router.
+
+ :param ref_obj: BgpRouter object
+
+ """
+ refs = getattr(self, 'bgp_router_refs', [])
+ if not refs:
+ self.bgp_router_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.bgp_router_refs.append(ref_info)
+ #end add_bgp_router
+
+ def del_bgp_router(self, ref_obj):
+ refs = self.get_bgp_router_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.bgp_router_refs.remove(ref)
+ return
+ #end del_bgp_router
+
+ def set_bgp_router_list(self, ref_obj_list):
+ """Set bgp-router list for virtual-router.
+
+ :param ref_obj_list: list of BgpRouter object
+
+ """
+ self.bgp_router_refs = ref_obj_list
+ #end set_bgp_router_list
+
+ def get_bgp_router_refs(self):
+ """Return bgp-router list for virtual-router.
+
+ :returns: list of <BgpRouter>
+
+ """
+ return getattr(self, 'bgp_router_refs', None)
+ #end get_bgp_router_refs
+
+ def set_virtual_machine(self, ref_obj):
+ """Set virtual-machine for virtual-router.
+
+ :param ref_obj: VirtualMachine object
+
+ """
+ self.virtual_machine_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_machine_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_machine
+
+ def add_virtual_machine(self, ref_obj):
+ """Add virtual-machine to virtual-router.
+
+ :param ref_obj: VirtualMachine object
+
+ """
+ refs = getattr(self, 'virtual_machine_refs', [])
+ if not refs:
+ self.virtual_machine_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_machine_refs.append(ref_info)
+ #end add_virtual_machine
+
+ def del_virtual_machine(self, ref_obj):
+ refs = self.get_virtual_machine_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_machine_refs.remove(ref)
+ return
+ #end del_virtual_machine
+
+ def set_virtual_machine_list(self, ref_obj_list):
+ """Set virtual-machine list for virtual-router.
+
+ :param ref_obj_list: list of VirtualMachine object
+
+ """
+ self.virtual_machine_refs = ref_obj_list
+ #end set_virtual_machine_list
+
+ def get_virtual_machine_refs(self):
+ """Return virtual-machine list for virtual-router.
+
+ :returns: list of <VirtualMachine>
+
+ """
+ return getattr(self, 'virtual_machine_refs', None)
+ #end get_virtual_machine_refs
+
+ def get_physical_router_back_refs(self):
+ """Return list of all physical-routers using this virtual-router"""
+ return getattr(self, 'physical_router_back_refs', None)
+ #end get_physical_router_back_refs
+
+ def get_global_system_config_back_refs(self):
+ """Return list of all global-system-configs using this virtual-router"""
+ return getattr(self, 'global_system_config_back_refs', None)
+ #end get_global_system_config_back_refs
+
+ def get_provider_attachment_back_refs(self):
+ """Return list of all provider-attachments using this virtual-router"""
+ return getattr(self, 'provider_attachment_back_refs', None)
+ #end get_provider_attachment_back_refs
+
+ def dump(self):
+ """Display virtual-router object in compact form."""
+ print '------------ virtual-router ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P virtual_router_type = ', self.get_virtual_router_type()
+ print 'P virtual_router_ip_address = ', self.get_virtual_router_ip_address()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF bgp_router = ', self.get_bgp_router_refs()
+ print 'REF virtual_machine = ', self.get_virtual_machine_refs()
+ print 'BCK physical_router = ', self.get_physical_router_back_refs()
+ print 'BCK provider_attachment = ', self.get_provider_attachment_back_refs()
+ #end dump
+
+#end class VirtualRouter
+
+class ConfigRoot(object):
+ """
+ Represents config-root configuration representation.
+
+ Properties:
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+ * list of :class:`.GlobalSystemConfig` objects
+ * list of :class:`.Domain` objects
+
+ References to:
+
+ Referred by:
+ """
+
+ prop_fields = set([u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([])
+ children_fields = set([u'global_system_configs', u'domains'])
+
+ def __init__(self, name = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'config-root'
+ if not name:
+ name = u'default-config-root'
+ self.name = name
+ self._uuid = None
+ self.fq_name = [name]
+
+ # property fields
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (config-root)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of config-root in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of config-root as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def id_perms(self):
+ """Get id-perms for config-root.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for config-root.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for config-root.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for config-root.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_global_system_configs(self):
+ return getattr(self, 'global_system_configs', None)
+ #end get_global_system_configs
+
+ def get_domains(self):
+ return getattr(self, 'domains', None)
+ #end get_domains
+
+ def dump(self):
+ """Display config-root object in compact form."""
+ print '------------ config-root ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'HAS global_system_config = ', self.get_global_system_configs()
+ print 'HAS domain = ', self.get_domains()
+ #end dump
+
+#end class ConfigRoot
+
+class Subnet(object):
+ """
+ Represents subnet configuration representation.
+
+ Properties:
+ * subnet-ip-prefix (:class:`.SubnetType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+ * list of :class:`.VirtualMachineInterface` objects
+
+ Referred by:
+ """
+
+ prop_fields = set([u'subnet_ip_prefix', u'id_perms', u'display_name'])
+ ref_fields = set(['virtual_machine_interface_refs'])
+ backref_fields = set([])
+ children_fields = set([])
+
+ def __init__(self, name = None, subnet_ip_prefix = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'subnet'
+ if not name:
+ name = u'default-subnet'
+ self.name = name
+ self._uuid = None
+ self.fq_name = [name]
+
+ # property fields
+ if subnet_ip_prefix:
+ self._subnet_ip_prefix = subnet_ip_prefix
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (subnet)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of subnet in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of subnet as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def subnet_ip_prefix(self):
+ """Get subnet-ip-prefix for subnet.
+
+ :returns: SubnetType object
+
+ """
+ return getattr(self, '_subnet_ip_prefix', None)
+ #end subnet_ip_prefix
+
+ @subnet_ip_prefix.setter
+ def subnet_ip_prefix(self, subnet_ip_prefix):
+ """Set subnet-ip-prefix for subnet.
+
+ :param subnet_ip_prefix: SubnetType object
+
+ """
+ self._subnet_ip_prefix = subnet_ip_prefix
+ #end subnet_ip_prefix
+
+ def set_subnet_ip_prefix(self, value):
+ self.subnet_ip_prefix = value
+ #end set_subnet_ip_prefix
+
+ def get_subnet_ip_prefix(self):
+ return self.subnet_ip_prefix
+ #end get_subnet_ip_prefix
+
+ @property
+ def id_perms(self):
+ """Get id-perms for subnet.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for subnet.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for subnet.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for subnet.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_subnet_ip_prefix'):
+ self._serialize_field_to_json(serialized, field_names, 'subnet_ip_prefix')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'virtual_machine_interface_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_interface_refs')
+ return serialized
+ #end serialize_to_json
+
+ def set_virtual_machine_interface(self, ref_obj):
+ """Set virtual-machine-interface for subnet.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_machine_interface_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_machine_interface
+
+ def add_virtual_machine_interface(self, ref_obj):
+ """Add virtual-machine-interface to subnet.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ refs = getattr(self, 'virtual_machine_interface_refs', [])
+ if not refs:
+ self.virtual_machine_interface_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_machine_interface_refs.append(ref_info)
+ #end add_virtual_machine_interface
+
+ def del_virtual_machine_interface(self, ref_obj):
+ refs = self.get_virtual_machine_interface_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_machine_interface_refs.remove(ref)
+ return
+ #end del_virtual_machine_interface
+
+ def set_virtual_machine_interface_list(self, ref_obj_list):
+ """Set virtual-machine-interface list for subnet.
+
+ :param ref_obj_list: list of VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = ref_obj_list
+ #end set_virtual_machine_interface_list
+
+ def get_virtual_machine_interface_refs(self):
+ """Return virtual-machine-interface list for subnet.
+
+ :returns: list of <VirtualMachineInterface>
+
+ """
+ return getattr(self, 'virtual_machine_interface_refs', None)
+ #end get_virtual_machine_interface_refs
+
+ def dump(self):
+ """Display subnet object in compact form."""
+ print '------------ subnet ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ print 'P subnet_ip_prefix = ', self.get_subnet_ip_prefix()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF virtual_machine_interface = ', self.get_virtual_machine_interface_refs()
+ #end dump
+
+#end class Subnet
+
+class GlobalSystemConfig(object):
+ """
+ Represents global-system-config configuration representation.
+
+ Child of:
+ :class:`.ConfigRoot` object OR
+
+ Properties:
+ * autonomous-system (AutonomousSystemType type)
+ * config-version (xsd:string type)
+ * plugin-tuning (:class:`.PluginProperties` type)
+ * ibgp-auto-mesh (xsd:boolean type)
+ * ip-fabric-subnets (:class:`.SubnetListType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+ * list of :class:`.GlobalVrouterConfig` objects
+ * list of :class:`.PhysicalRouter` objects
+ * list of :class:`.VirtualRouter` objects
+ * list of :class:`.ConfigNode` objects
+ * list of :class:`.AnalyticsNode` objects
+ * list of :class:`.DatabaseNode` objects
+ * list of :class:`.ServiceApplianceSet` objects
+
+ References to:
+ * list of :class:`.BgpRouter` objects
+
+ Referred by:
+ """
+
+ prop_fields = set([u'autonomous_system', u'config_version', u'plugin_tuning', u'ibgp_auto_mesh', u'ip_fabric_subnets', u'id_perms', u'display_name'])
+ ref_fields = set(['bgp_router_refs'])
+ backref_fields = set([u'config_root_back_refs'])
+ children_fields = set([u'global_vrouter_configs', u'physical_routers', 'virtual_routers', u'config_nodes', u'analytics_nodes', u'database_nodes', u'service_appliance_sets'])
+
+ def __init__(self, name = None, parent_obj = None, autonomous_system = None, config_version = None, plugin_tuning = None, ibgp_auto_mesh = None, ip_fabric_subnets = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'global-system-config'
+ if not name:
+ name = u'default-global-system-config'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.fq_name = [name]
+
+ # property fields
+ if autonomous_system:
+ self._autonomous_system = autonomous_system
+ if config_version:
+ self._config_version = config_version
+ if plugin_tuning:
+ self._plugin_tuning = plugin_tuning
+ if ibgp_auto_mesh:
+ self._ibgp_auto_mesh = ibgp_auto_mesh
+ if ip_fabric_subnets:
+ self._ip_fabric_subnets = ip_fabric_subnets
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (global-system-config)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of global-system-config in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of global-system-config as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of global-system-config's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of global-system-config's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def autonomous_system(self):
+ """Get autonomous-system for global-system-config.
+
+ :returns: AutonomousSystemType object
+
+ """
+ return getattr(self, '_autonomous_system', None)
+ #end autonomous_system
+
+ @autonomous_system.setter
+ def autonomous_system(self, autonomous_system):
+ """Set autonomous-system for global-system-config.
+
+ :param autonomous_system: AutonomousSystemType object
+
+ """
+ self._autonomous_system = autonomous_system
+ #end autonomous_system
+
+ def set_autonomous_system(self, value):
+ self.autonomous_system = value
+ #end set_autonomous_system
+
+ def get_autonomous_system(self):
+ return self.autonomous_system
+ #end get_autonomous_system
+
+ @property
+ def config_version(self):
+ """Get config-version for global-system-config.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_config_version', None)
+ #end config_version
+
+ @config_version.setter
+ def config_version(self, config_version):
+ """Set config-version for global-system-config.
+
+ :param config_version: xsd:string object
+
+ """
+ self._config_version = config_version
+ #end config_version
+
+ def set_config_version(self, value):
+ self.config_version = value
+ #end set_config_version
+
+ def get_config_version(self):
+ return self.config_version
+ #end get_config_version
+
+ @property
+ def plugin_tuning(self):
+ """Get plugin-tuning for global-system-config.
+
+ :returns: PluginProperties object
+
+ """
+ return getattr(self, '_plugin_tuning', None)
+ #end plugin_tuning
+
+ @plugin_tuning.setter
+ def plugin_tuning(self, plugin_tuning):
+ """Set plugin-tuning for global-system-config.
+
+ :param plugin_tuning: PluginProperties object
+
+ """
+ self._plugin_tuning = plugin_tuning
+ #end plugin_tuning
+
+ def set_plugin_tuning(self, value):
+ self.plugin_tuning = value
+ #end set_plugin_tuning
+
+ def get_plugin_tuning(self):
+ return self.plugin_tuning
+ #end get_plugin_tuning
+
+ @property
+ def ibgp_auto_mesh(self):
+ """Get ibgp-auto-mesh for global-system-config.
+
+ :returns: xsd:boolean object
+
+ """
+ return getattr(self, '_ibgp_auto_mesh', None)
+ #end ibgp_auto_mesh
+
+ @ibgp_auto_mesh.setter
+ def ibgp_auto_mesh(self, ibgp_auto_mesh):
+ """Set ibgp-auto-mesh for global-system-config.
+
+ :param ibgp_auto_mesh: xsd:boolean object
+
+ """
+ self._ibgp_auto_mesh = ibgp_auto_mesh
+ #end ibgp_auto_mesh
+
+ def set_ibgp_auto_mesh(self, value):
+ self.ibgp_auto_mesh = value
+ #end set_ibgp_auto_mesh
+
+ def get_ibgp_auto_mesh(self):
+ return self.ibgp_auto_mesh
+ #end get_ibgp_auto_mesh
+
+ @property
+ def ip_fabric_subnets(self):
+ """Get ip-fabric-subnets for global-system-config.
+
+ :returns: SubnetListType object
+
+ """
+ return getattr(self, '_ip_fabric_subnets', None)
+ #end ip_fabric_subnets
+
+ @ip_fabric_subnets.setter
+ def ip_fabric_subnets(self, ip_fabric_subnets):
+ """Set ip-fabric-subnets for global-system-config.
+
+ :param ip_fabric_subnets: SubnetListType object
+
+ """
+ self._ip_fabric_subnets = ip_fabric_subnets
+ #end ip_fabric_subnets
+
+ def set_ip_fabric_subnets(self, value):
+ self.ip_fabric_subnets = value
+ #end set_ip_fabric_subnets
+
+ def get_ip_fabric_subnets(self):
+ return self.ip_fabric_subnets
+ #end get_ip_fabric_subnets
+
+ @property
+ def id_perms(self):
+ """Get id-perms for global-system-config.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for global-system-config.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for global-system-config.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for global-system-config.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_autonomous_system'):
+ self._serialize_field_to_json(serialized, field_names, 'autonomous_system')
+ if hasattr(self, '_config_version'):
+ self._serialize_field_to_json(serialized, field_names, 'config_version')
+ if hasattr(self, '_plugin_tuning'):
+ self._serialize_field_to_json(serialized, field_names, 'plugin_tuning')
+ if hasattr(self, '_ibgp_auto_mesh'):
+ self._serialize_field_to_json(serialized, field_names, 'ibgp_auto_mesh')
+ if hasattr(self, '_ip_fabric_subnets'):
+ self._serialize_field_to_json(serialized, field_names, 'ip_fabric_subnets')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'bgp_router_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'bgp_router_refs')
+ return serialized
+ #end serialize_to_json
+
+ def get_global_vrouter_configs(self):
+ return getattr(self, 'global_vrouter_configs', None)
+ #end get_global_vrouter_configs
+
+ def get_physical_routers(self):
+ return getattr(self, 'physical_routers', None)
+ #end get_physical_routers
+
+ def get_virtual_routers(self):
+ return getattr(self, 'virtual_routers', None)
+ #end get_virtual_routers
+
+ def get_config_nodes(self):
+ return getattr(self, 'config_nodes', None)
+ #end get_config_nodes
+
+ def get_analytics_nodes(self):
+ return getattr(self, 'analytics_nodes', None)
+ #end get_analytics_nodes
+
+ def get_database_nodes(self):
+ return getattr(self, 'database_nodes', None)
+ #end get_database_nodes
+
+ def get_service_appliance_sets(self):
+ return getattr(self, 'service_appliance_sets', None)
+ #end get_service_appliance_sets
+
+ def set_bgp_router(self, ref_obj):
+ """Set bgp-router for global-system-config.
+
+ :param ref_obj: BgpRouter object
+
+ """
+ self.bgp_router_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.bgp_router_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_bgp_router
+
+ def add_bgp_router(self, ref_obj):
+ """Add bgp-router to global-system-config.
+
+ :param ref_obj: BgpRouter object
+
+ """
+ refs = getattr(self, 'bgp_router_refs', [])
+ if not refs:
+ self.bgp_router_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.bgp_router_refs.append(ref_info)
+ #end add_bgp_router
+
+ def del_bgp_router(self, ref_obj):
+ refs = self.get_bgp_router_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.bgp_router_refs.remove(ref)
+ return
+ #end del_bgp_router
+
+ def set_bgp_router_list(self, ref_obj_list):
+ """Set bgp-router list for global-system-config.
+
+ :param ref_obj_list: list of BgpRouter object
+
+ """
+ self.bgp_router_refs = ref_obj_list
+ #end set_bgp_router_list
+
+ def get_bgp_router_refs(self):
+ """Return bgp-router list for global-system-config.
+
+ :returns: list of <BgpRouter>
+
+ """
+ return getattr(self, 'bgp_router_refs', None)
+ #end get_bgp_router_refs
+
+ def get_config_root_back_refs(self):
+ """Return list of all config-roots using this global-system-config"""
+ return getattr(self, 'config_root_back_refs', None)
+ #end get_config_root_back_refs
+
+ def dump(self):
+ """Display global-system-config object in compact form."""
+ print '------------ global-system-config ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P autonomous_system = ', self.get_autonomous_system()
+ print 'P config_version = ', self.get_config_version()
+ print 'P plugin_tuning = ', self.get_plugin_tuning()
+ print 'P ibgp_auto_mesh = ', self.get_ibgp_auto_mesh()
+ print 'P ip_fabric_subnets = ', self.get_ip_fabric_subnets()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF bgp_router = ', self.get_bgp_router_refs()
+ print 'HAS global_vrouter_config = ', self.get_global_vrouter_configs()
+ print 'HAS physical_router = ', self.get_physical_routers()
+ print 'HAS virtual_router = ', self.get_virtual_routers()
+ print 'HAS config_node = ', self.get_config_nodes()
+ print 'HAS analytics_node = ', self.get_analytics_nodes()
+ print 'HAS database_node = ', self.get_database_nodes()
+ print 'HAS service_appliance_set = ', self.get_service_appliance_sets()
+ #end dump
+
+#end class GlobalSystemConfig
+
+class ServiceAppliance(object):
+ """
+ Represents service-appliance configuration representation.
+
+ Child of:
+ :class:`.ServiceApplianceSet` object OR
+
+ Properties:
+ * service-appliance-user-credentials (:class:`.UserCredentials` type)
+ * service-appliance-ip-address (IpAddressType type)
+ * service-appliance-properties (:class:`.KeyValuePairs` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+
+ Referred by:
+ """
+
+ prop_fields = set([u'service_appliance_user_credentials', u'service_appliance_ip_address', u'service_appliance_properties', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'service_appliance_set_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, service_appliance_user_credentials = None, service_appliance_ip_address = None, service_appliance_properties = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'service-appliance'
+ if not name:
+ name = u'default-service-appliance'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'service-appliance-set'
+ self.fq_name = [u'default-global-system-config', u'default-service-appliance-set']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if service_appliance_user_credentials:
+ self._service_appliance_user_credentials = service_appliance_user_credentials
+ if service_appliance_ip_address:
+ self._service_appliance_ip_address = service_appliance_ip_address
+ if service_appliance_properties:
+ self._service_appliance_properties = service_appliance_properties
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (service-appliance)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of service-appliance in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of service-appliance as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of service-appliance's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of service-appliance's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def service_appliance_user_credentials(self):
+ """Get service-appliance-user-credentials for service-appliance.
+
+ :returns: UserCredentials object
+
+ """
+ return getattr(self, '_service_appliance_user_credentials', None)
+ #end service_appliance_user_credentials
+
+ @service_appliance_user_credentials.setter
+ def service_appliance_user_credentials(self, service_appliance_user_credentials):
+ """Set service-appliance-user-credentials for service-appliance.
+
+ :param service_appliance_user_credentials: UserCredentials object
+
+ """
+ self._service_appliance_user_credentials = service_appliance_user_credentials
+ #end service_appliance_user_credentials
+
+ def set_service_appliance_user_credentials(self, value):
+ self.service_appliance_user_credentials = value
+ #end set_service_appliance_user_credentials
+
+ def get_service_appliance_user_credentials(self):
+ return self.service_appliance_user_credentials
+ #end get_service_appliance_user_credentials
+
+ @property
+ def service_appliance_ip_address(self):
+ """Get service-appliance-ip-address for service-appliance.
+
+ :returns: IpAddressType object
+
+ """
+ return getattr(self, '_service_appliance_ip_address', None)
+ #end service_appliance_ip_address
+
+ @service_appliance_ip_address.setter
+ def service_appliance_ip_address(self, service_appliance_ip_address):
+ """Set service-appliance-ip-address for service-appliance.
+
+ :param service_appliance_ip_address: IpAddressType object
+
+ """
+ self._service_appliance_ip_address = service_appliance_ip_address
+ #end service_appliance_ip_address
+
+ def set_service_appliance_ip_address(self, value):
+ self.service_appliance_ip_address = value
+ #end set_service_appliance_ip_address
+
+ def get_service_appliance_ip_address(self):
+ return self.service_appliance_ip_address
+ #end get_service_appliance_ip_address
+
+ @property
+ def service_appliance_properties(self):
+ """Get service-appliance-properties for service-appliance.
+
+ :returns: KeyValuePairs object
+
+ """
+ return getattr(self, '_service_appliance_properties', None)
+ #end service_appliance_properties
+
+ @service_appliance_properties.setter
+ def service_appliance_properties(self, service_appliance_properties):
+ """Set service-appliance-properties for service-appliance.
+
+ :param service_appliance_properties: KeyValuePairs object
+
+ """
+ self._service_appliance_properties = service_appliance_properties
+ #end service_appliance_properties
+
+ def set_service_appliance_properties(self, value):
+ self.service_appliance_properties = value
+ #end set_service_appliance_properties
+
+ def get_service_appliance_properties(self):
+ return self.service_appliance_properties
+ #end get_service_appliance_properties
+
+ @property
+ def id_perms(self):
+ """Get id-perms for service-appliance.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for service-appliance.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for service-appliance.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for service-appliance.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_service_appliance_user_credentials'):
+ self._serialize_field_to_json(serialized, field_names, 'service_appliance_user_credentials')
+ if hasattr(self, '_service_appliance_ip_address'):
+ self._serialize_field_to_json(serialized, field_names, 'service_appliance_ip_address')
+ if hasattr(self, '_service_appliance_properties'):
+ self._serialize_field_to_json(serialized, field_names, 'service_appliance_properties')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_service_appliance_set_back_refs(self):
+ """Return list of all service-appliance-sets using this service-appliance"""
+ return getattr(self, 'service_appliance_set_back_refs', None)
+ #end get_service_appliance_set_back_refs
+
+ def dump(self):
+ """Display service-appliance object in compact form."""
+ print '------------ service-appliance ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P service_appliance_user_credentials = ', self.get_service_appliance_user_credentials()
+ print 'P service_appliance_ip_address = ', self.get_service_appliance_ip_address()
+ print 'P service_appliance_properties = ', self.get_service_appliance_properties()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ #end dump
+
+#end class ServiceAppliance
+
+class ServiceInstance(object):
+ """
+ Represents service-instance configuration representation.
+
+ Child of:
+ :class:`.Project` object OR
+
+ Properties:
+ * service-instance-properties (:class:`.ServiceInstanceType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+ * list of :class:`.ServiceTemplate` objects
+
+ Referred by:
+ * list of :class:`.VirtualMachine` objects
+ * list of :class:`.LogicalRouter` objects
+ * list of :class:`.LoadbalancerPool` objects
+ """
+
+ prop_fields = set([u'service_instance_properties', u'id_perms', u'display_name'])
+ ref_fields = set(['service_template_refs'])
+ backref_fields = set([u'project_back_refs', u'virtual_machine_back_refs', u'logical_router_back_refs', u'loadbalancer_pool_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, service_instance_properties = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'service-instance'
+ if not name:
+ name = u'default-service-instance'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'project'
+ self.fq_name = [u'default-domain', u'default-project']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if service_instance_properties:
+ self._service_instance_properties = service_instance_properties
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (service-instance)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of service-instance in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of service-instance as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of service-instance's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of service-instance's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def service_instance_properties(self):
+ """Get service-instance-properties for service-instance.
+
+ :returns: ServiceInstanceType object
+
+ """
+ return getattr(self, '_service_instance_properties', None)
+ #end service_instance_properties
+
+ @service_instance_properties.setter
+ def service_instance_properties(self, service_instance_properties):
+ """Set service-instance-properties for service-instance.
+
+ :param service_instance_properties: ServiceInstanceType object
+
+ """
+ self._service_instance_properties = service_instance_properties
+ #end service_instance_properties
+
+ def set_service_instance_properties(self, value):
+ self.service_instance_properties = value
+ #end set_service_instance_properties
+
+ def get_service_instance_properties(self):
+ return self.service_instance_properties
+ #end get_service_instance_properties
+
+ @property
+ def id_perms(self):
+ """Get id-perms for service-instance.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for service-instance.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for service-instance.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for service-instance.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_service_instance_properties'):
+ self._serialize_field_to_json(serialized, field_names, 'service_instance_properties')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'service_template_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'service_template_refs')
+ return serialized
+ #end serialize_to_json
+
+ def set_service_template(self, ref_obj):
+ """Set service-template for service-instance.
+
+ :param ref_obj: ServiceTemplate object
+
+ """
+ self.service_template_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.service_template_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_service_template
+
+ def add_service_template(self, ref_obj):
+ """Add service-template to service-instance.
+
+ :param ref_obj: ServiceTemplate object
+
+ """
+ refs = getattr(self, 'service_template_refs', [])
+ if not refs:
+ self.service_template_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.service_template_refs.append(ref_info)
+ #end add_service_template
+
+ def del_service_template(self, ref_obj):
+ refs = self.get_service_template_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.service_template_refs.remove(ref)
+ return
+ #end del_service_template
+
+ def set_service_template_list(self, ref_obj_list):
+ """Set service-template list for service-instance.
+
+ :param ref_obj_list: list of ServiceTemplate object
+
+ """
+ self.service_template_refs = ref_obj_list
+ #end set_service_template_list
+
+ def get_service_template_refs(self):
+ """Return service-template list for service-instance.
+
+ :returns: list of <ServiceTemplate>
+
+ """
+ return getattr(self, 'service_template_refs', None)
+ #end get_service_template_refs
+
+ def get_project_back_refs(self):
+ """Return list of all projects using this service-instance"""
+ return getattr(self, 'project_back_refs', None)
+ #end get_project_back_refs
+
+ def get_virtual_machine_back_refs(self):
+ """Return list of all virtual-machines using this service-instance"""
+ return getattr(self, 'virtual_machine_back_refs', None)
+ #end get_virtual_machine_back_refs
+
+ def get_logical_router_back_refs(self):
+ """Return list of all logical-routers using this service-instance"""
+ return getattr(self, 'logical_router_back_refs', None)
+ #end get_logical_router_back_refs
+
+ def get_loadbalancer_pool_back_refs(self):
+ """Return list of all loadbalancer-pools using this service-instance"""
+ return getattr(self, 'loadbalancer_pool_back_refs', None)
+ #end get_loadbalancer_pool_back_refs
+
+ def dump(self):
+ """Display service-instance object in compact form."""
+ print '------------ service-instance ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P service_instance_properties = ', self.get_service_instance_properties()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF service_template = ', self.get_service_template_refs()
+ print 'BCK virtual_machine = ', self.get_virtual_machine_back_refs()
+ print 'BCK logical_router = ', self.get_logical_router_back_refs()
+ print 'BCK loadbalancer_pool = ', self.get_loadbalancer_pool_back_refs()
+ #end dump
+
+#end class ServiceInstance
+
+class Namespace(object):
+ """
+ Represents namespace configuration representation.
+
+ Child of:
+ :class:`.Domain` object OR
+
+ Properties:
+ * namespace-cidr (:class:`.SubnetType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+
+ Referred by:
+ * list of :class:`.Project` objects
+ """
+
+ prop_fields = set([u'namespace_cidr', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'domain_back_refs', u'project_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, namespace_cidr = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'namespace'
+ if not name:
+ name = u'default-namespace'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'domain'
+ self.fq_name = [u'default-domain']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if namespace_cidr:
+ self._namespace_cidr = namespace_cidr
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (namespace)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of namespace in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of namespace as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of namespace's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of namespace's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def namespace_cidr(self):
+ """Get namespace-cidr for namespace.
+
+ :returns: SubnetType object
+
+ """
+ return getattr(self, '_namespace_cidr', None)
+ #end namespace_cidr
+
+ @namespace_cidr.setter
+ def namespace_cidr(self, namespace_cidr):
+ """Set namespace-cidr for namespace.
+
+ :param namespace_cidr: SubnetType object
+
+ """
+ self._namespace_cidr = namespace_cidr
+ #end namespace_cidr
+
+ def set_namespace_cidr(self, value):
+ self.namespace_cidr = value
+ #end set_namespace_cidr
+
+ def get_namespace_cidr(self):
+ return self.namespace_cidr
+ #end get_namespace_cidr
+
+ @property
+ def id_perms(self):
+ """Get id-perms for namespace.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for namespace.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for namespace.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for namespace.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_namespace_cidr'):
+ self._serialize_field_to_json(serialized, field_names, 'namespace_cidr')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_domain_back_refs(self):
+ """Return list of all domains using this namespace"""
+ return getattr(self, 'domain_back_refs', None)
+ #end get_domain_back_refs
+
+ def get_project_back_refs(self):
+ """Return list of all projects using this namespace"""
+ return getattr(self, 'project_back_refs', None)
+ #end get_project_back_refs
+
+ def dump(self):
+ """Display namespace object in compact form."""
+ print '------------ namespace ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P namespace_cidr = ', self.get_namespace_cidr()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'BCK project = ', self.get_project_back_refs()
+ #end dump
+
+#end class Namespace
+
+class LogicalInterface(object):
+ """
+ Represents logical-interface configuration representation.
+
+ Child of:
+ :class:`.PhysicalRouter` object OR
+ :class:`.PhysicalInterface` object OR
+
+ Properties:
+ * logical-interface-vlan-tag (xsd:integer type)
+ * logical-interface-type (LogicalInterfaceType type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+ * list of :class:`.VirtualMachineInterface` objects
+
+ Referred by:
+ """
+
+ prop_fields = set([u'logical_interface_vlan_tag', u'logical_interface_type', u'id_perms', u'display_name'])
+ ref_fields = set(['virtual_machine_interface_refs'])
+ backref_fields = set([u'physical_router_back_refs', u'physical_interface_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, logical_interface_vlan_tag = None, logical_interface_type = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'logical-interface'
+ if not name:
+ name = u'default-logical-interface'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ # if obj constructed from within server, ignore if parent not specified
+ if not kwargs['parent_type']:
+ raise AmbiguousParentError("[[u'default-global-system-config', u'default-physical-router'], [u'default-global-system-config', u'default-physical-router', u'default-physical-interface']]")
+
+ # property fields
+ if logical_interface_vlan_tag:
+ self._logical_interface_vlan_tag = logical_interface_vlan_tag
+ if logical_interface_type:
+ self._logical_interface_type = logical_interface_type
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (logical-interface)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of logical-interface in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of logical-interface as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of logical-interface's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of logical-interface's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def logical_interface_vlan_tag(self):
+ """Get logical-interface-vlan-tag for logical-interface.
+
+ :returns: xsd:integer object
+
+ """
+ return getattr(self, '_logical_interface_vlan_tag', None)
+ #end logical_interface_vlan_tag
+
+ @logical_interface_vlan_tag.setter
+ def logical_interface_vlan_tag(self, logical_interface_vlan_tag):
+ """Set logical-interface-vlan-tag for logical-interface.
+
+ :param logical_interface_vlan_tag: xsd:integer object
+
+ """
+ self._logical_interface_vlan_tag = logical_interface_vlan_tag
+ #end logical_interface_vlan_tag
+
+ def set_logical_interface_vlan_tag(self, value):
+ self.logical_interface_vlan_tag = value
+ #end set_logical_interface_vlan_tag
+
+ def get_logical_interface_vlan_tag(self):
+ return self.logical_interface_vlan_tag
+ #end get_logical_interface_vlan_tag
+
+ @property
+ def logical_interface_type(self):
+ """Get logical-interface-type for logical-interface.
+
+ :returns: LogicalInterfaceType object
+
+ """
+ return getattr(self, '_logical_interface_type', None)
+ #end logical_interface_type
+
+ @logical_interface_type.setter
+ def logical_interface_type(self, logical_interface_type):
+ """Set logical-interface-type for logical-interface.
+
+ :param logical_interface_type: LogicalInterfaceType object
+
+ """
+ self._logical_interface_type = logical_interface_type
+ #end logical_interface_type
+
+ def set_logical_interface_type(self, value):
+ self.logical_interface_type = value
+ #end set_logical_interface_type
+
+ def get_logical_interface_type(self):
+ return self.logical_interface_type
+ #end get_logical_interface_type
+
+ @property
+ def id_perms(self):
+ """Get id-perms for logical-interface.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for logical-interface.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for logical-interface.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for logical-interface.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_logical_interface_vlan_tag'):
+ self._serialize_field_to_json(serialized, field_names, 'logical_interface_vlan_tag')
+ if hasattr(self, '_logical_interface_type'):
+ self._serialize_field_to_json(serialized, field_names, 'logical_interface_type')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'virtual_machine_interface_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_interface_refs')
+ return serialized
+ #end serialize_to_json
+
+ def set_virtual_machine_interface(self, ref_obj):
+ """Set virtual-machine-interface for logical-interface.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_machine_interface_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_machine_interface
+
+ def add_virtual_machine_interface(self, ref_obj):
+ """Add virtual-machine-interface to logical-interface.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ refs = getattr(self, 'virtual_machine_interface_refs', [])
+ if not refs:
+ self.virtual_machine_interface_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_machine_interface_refs.append(ref_info)
+ #end add_virtual_machine_interface
+
+ def del_virtual_machine_interface(self, ref_obj):
+ refs = self.get_virtual_machine_interface_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_machine_interface_refs.remove(ref)
+ return
+ #end del_virtual_machine_interface
+
+ def set_virtual_machine_interface_list(self, ref_obj_list):
+ """Set virtual-machine-interface list for logical-interface.
+
+ :param ref_obj_list: list of VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = ref_obj_list
+ #end set_virtual_machine_interface_list
+
+ def get_virtual_machine_interface_refs(self):
+ """Return virtual-machine-interface list for logical-interface.
+
+ :returns: list of <VirtualMachineInterface>
+
+ """
+ return getattr(self, 'virtual_machine_interface_refs', None)
+ #end get_virtual_machine_interface_refs
+
+ def get_physical_router_back_refs(self):
+ """Return list of all physical-routers using this logical-interface"""
+ return getattr(self, 'physical_router_back_refs', None)
+ #end get_physical_router_back_refs
+
+ def get_physical_interface_back_refs(self):
+ """Return list of all physical-interfaces using this logical-interface"""
+ return getattr(self, 'physical_interface_back_refs', None)
+ #end get_physical_interface_back_refs
+
+ def dump(self):
+ """Display logical-interface object in compact form."""
+ print '------------ logical-interface ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P logical_interface_vlan_tag = ', self.get_logical_interface_vlan_tag()
+ print 'P logical_interface_type = ', self.get_logical_interface_type()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF virtual_machine_interface = ', self.get_virtual_machine_interface_refs()
+ #end dump
+
+#end class LogicalInterface
+
+class RouteTable(object):
+ """
+ Represents route-table configuration representation.
+
+ Child of:
+ :class:`.Project` object OR
+
+ Properties:
+ * routes (:class:`.RouteTableType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+
+ Referred by:
+ * list of :class:`.VirtualNetwork` objects
+ """
+
+ prop_fields = set([u'routes', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'project_back_refs', u'virtual_network_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, routes = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'route-table'
+ if not name:
+ name = u'default-route-table'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'project'
+ self.fq_name = [u'default-domain', u'default-project']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if routes:
+ self._routes = routes
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (route-table)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of route-table in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of route-table as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of route-table's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of route-table's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def routes(self):
+ """Get routes for route-table.
+
+ :returns: RouteTableType object
+
+ """
+ return getattr(self, '_routes', None)
+ #end routes
+
+ @routes.setter
+ def routes(self, routes):
+ """Set routes for route-table.
+
+ :param routes: RouteTableType object
+
+ """
+ self._routes = routes
+ #end routes
+
+ def set_routes(self, value):
+ self.routes = value
+ #end set_routes
+
+ def get_routes(self):
+ return self.routes
+ #end get_routes
+
+ @property
+ def id_perms(self):
+ """Get id-perms for route-table.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for route-table.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for route-table.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for route-table.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_routes'):
+ self._serialize_field_to_json(serialized, field_names, 'routes')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_project_back_refs(self):
+ """Return list of all projects using this route-table"""
+ return getattr(self, 'project_back_refs', None)
+ #end get_project_back_refs
+
+ def get_virtual_network_back_refs(self):
+ """Return list of all virtual-networks using this route-table"""
+ return getattr(self, 'virtual_network_back_refs', None)
+ #end get_virtual_network_back_refs
+
+ def dump(self):
+ """Display route-table object in compact form."""
+ print '------------ route-table ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P routes = ', self.get_routes()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'BCK virtual_network = ', self.get_virtual_network_back_refs()
+ #end dump
+
+#end class RouteTable
+
+class PhysicalInterface(object):
+ """
+ Represents physical-interface configuration representation.
+
+ Child of:
+ :class:`.PhysicalRouter` object OR
+
+ Properties:
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+ * list of :class:`.LogicalInterface` objects
+
+ References to:
+
+ Referred by:
+ """
+
+ prop_fields = set([u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'physical_router_back_refs'])
+ children_fields = set([u'logical_interfaces'])
+
+ def __init__(self, name = None, parent_obj = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'physical-interface'
+ if not name:
+ name = u'default-physical-interface'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'physical-router'
+ self.fq_name = [u'default-global-system-config', u'default-physical-router']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (physical-interface)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of physical-interface in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of physical-interface as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of physical-interface's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of physical-interface's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def id_perms(self):
+ """Get id-perms for physical-interface.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for physical-interface.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for physical-interface.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for physical-interface.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_logical_interfaces(self):
+ return getattr(self, 'logical_interfaces', None)
+ #end get_logical_interfaces
+
+ def get_physical_router_back_refs(self):
+ """Return list of all physical-routers using this physical-interface"""
+ return getattr(self, 'physical_router_back_refs', None)
+ #end get_physical_router_back_refs
+
+ def dump(self):
+ """Display physical-interface object in compact form."""
+ print '------------ physical-interface ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'HAS logical_interface = ', self.get_logical_interfaces()
+ #end dump
+
+#end class PhysicalInterface
+
+class AccessControlList(object):
+ """
+ Represents access-control-list configuration representation.
+
+ Child of:
+ :class:`.VirtualNetwork` object OR
+ :class:`.SecurityGroup` object OR
+
+ Properties:
+ * access-control-list-entries (:class:`.AclEntriesType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+
+ Referred by:
+ """
+
+ prop_fields = set([u'access_control_list_entries', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'virtual_network_back_refs', u'security_group_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, access_control_list_entries = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'access-control-list'
+ if not name:
+ name = u'default-access-control-list'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ # if obj constructed from within server, ignore if parent not specified
+ if not kwargs['parent_type']:
+ raise AmbiguousParentError("[[u'default-domain', u'default-project', u'default-virtual-network'], [u'default-domain', u'default-project', u'default-security-group']]")
+
+ # property fields
+ if access_control_list_entries:
+ self._access_control_list_entries = access_control_list_entries
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (access-control-list)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of access-control-list in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of access-control-list as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of access-control-list's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of access-control-list's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def access_control_list_entries(self):
+ """Get access-control-list-entries for access-control-list.
+
+ :returns: AclEntriesType object
+
+ """
+ return getattr(self, '_access_control_list_entries', None)
+ #end access_control_list_entries
+
+ @access_control_list_entries.setter
+ def access_control_list_entries(self, access_control_list_entries):
+ """Set access-control-list-entries for access-control-list.
+
+ :param access_control_list_entries: AclEntriesType object
+
+ """
+ self._access_control_list_entries = access_control_list_entries
+ #end access_control_list_entries
+
+ def set_access_control_list_entries(self, value):
+ self.access_control_list_entries = value
+ #end set_access_control_list_entries
+
+ def get_access_control_list_entries(self):
+ return self.access_control_list_entries
+ #end get_access_control_list_entries
+
+ @property
+ def id_perms(self):
+ """Get id-perms for access-control-list.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for access-control-list.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for access-control-list.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for access-control-list.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_access_control_list_entries'):
+ self._serialize_field_to_json(serialized, field_names, 'access_control_list_entries')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_virtual_network_back_refs(self):
+ """Return list of all virtual-networks using this access-control-list"""
+ return getattr(self, 'virtual_network_back_refs', None)
+ #end get_virtual_network_back_refs
+
+ def get_security_group_back_refs(self):
+ """Return list of all security-groups using this access-control-list"""
+ return getattr(self, 'security_group_back_refs', None)
+ #end get_security_group_back_refs
+
+ def dump(self):
+ """Display access-control-list object in compact form."""
+ print '------------ access-control-list ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P access_control_list_entries = ', self.get_access_control_list_entries()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ #end dump
+
+#end class AccessControlList
+
+class AnalyticsNode(object):
+ """
+ Represents analytics-node configuration representation.
+
+ Child of:
+ :class:`.GlobalSystemConfig` object OR
+
+ Properties:
+ * analytics-node-ip-address (IpAddressType type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+
+ Referred by:
+ """
+
+ prop_fields = set([u'analytics_node_ip_address', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'global_system_config_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, analytics_node_ip_address = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'analytics-node'
+ if not name:
+ name = u'default-analytics-node'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'global-system-config'
+ self.fq_name = [u'default-global-system-config']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if analytics_node_ip_address:
+ self._analytics_node_ip_address = analytics_node_ip_address
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (analytics-node)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of analytics-node in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of analytics-node as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of analytics-node's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of analytics-node's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def analytics_node_ip_address(self):
+ """Get analytics-node-ip-address for analytics-node.
+
+ :returns: IpAddressType object
+
+ """
+ return getattr(self, '_analytics_node_ip_address', None)
+ #end analytics_node_ip_address
+
+ @analytics_node_ip_address.setter
+ def analytics_node_ip_address(self, analytics_node_ip_address):
+ """Set analytics-node-ip-address for analytics-node.
+
+ :param analytics_node_ip_address: IpAddressType object
+
+ """
+ self._analytics_node_ip_address = analytics_node_ip_address
+ #end analytics_node_ip_address
+
+ def set_analytics_node_ip_address(self, value):
+ self.analytics_node_ip_address = value
+ #end set_analytics_node_ip_address
+
+ def get_analytics_node_ip_address(self):
+ return self.analytics_node_ip_address
+ #end get_analytics_node_ip_address
+
+ @property
+ def id_perms(self):
+ """Get id-perms for analytics-node.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for analytics-node.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for analytics-node.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for analytics-node.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_analytics_node_ip_address'):
+ self._serialize_field_to_json(serialized, field_names, 'analytics_node_ip_address')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_global_system_config_back_refs(self):
+ """Return list of all global-system-configs using this analytics-node"""
+ return getattr(self, 'global_system_config_back_refs', None)
+ #end get_global_system_config_back_refs
+
+ def dump(self):
+ """Display analytics-node object in compact form."""
+ print '------------ analytics-node ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P analytics_node_ip_address = ', self.get_analytics_node_ip_address()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ #end dump
+
+#end class AnalyticsNode
+
+class VirtualDns(object):
+ """
+ Represents virtual-DNS configuration representation.
+
+ Child of:
+ :class:`.Domain` object OR
+
+ Properties:
+ * virtual-DNS-data (:class:`.VirtualDnsType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+ * list of :class:`.VirtualDnsRecord` objects
+
+ References to:
+
+ Referred by:
+ * list of :class:`.NetworkIpam` objects
+ """
+
+ prop_fields = set([u'virtual_DNS_data', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'domain_back_refs', u'network_ipam_back_refs'])
+ children_fields = set([u'virtual_DNS_records'])
+
+ def __init__(self, name = None, parent_obj = None, virtual_DNS_data = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'virtual-DNS'
+ if not name:
+ name = u'default-virtual-DNS'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'domain'
+ self.fq_name = [u'default-domain']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if virtual_DNS_data:
+ self._virtual_DNS_data = virtual_DNS_data
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (virtual-DNS)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of virtual-DNS in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of virtual-DNS as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of virtual-DNS's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of virtual-DNS's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def virtual_DNS_data(self):
+ """Get virtual-DNS-data for virtual-DNS.
+
+ :returns: VirtualDnsType object
+
+ """
+ return getattr(self, '_virtual_DNS_data', None)
+ #end virtual_DNS_data
+
+ @virtual_DNS_data.setter
+ def virtual_DNS_data(self, virtual_DNS_data):
+ """Set virtual-DNS-data for virtual-DNS.
+
+ :param virtual_DNS_data: VirtualDnsType object
+
+ """
+ self._virtual_DNS_data = virtual_DNS_data
+ #end virtual_DNS_data
+
+ def set_virtual_DNS_data(self, value):
+ self.virtual_DNS_data = value
+ #end set_virtual_DNS_data
+
+ def get_virtual_DNS_data(self):
+ return self.virtual_DNS_data
+ #end get_virtual_DNS_data
+
+ @property
+ def id_perms(self):
+ """Get id-perms for virtual-DNS.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for virtual-DNS.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for virtual-DNS.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for virtual-DNS.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_virtual_DNS_data'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_DNS_data')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_virtual_DNS_records(self):
+ return getattr(self, 'virtual_DNS_records', None)
+ #end get_virtual_DNS_records
+
+ def get_domain_back_refs(self):
+ """Return list of all domains using this virtual-DNS"""
+ return getattr(self, 'domain_back_refs', None)
+ #end get_domain_back_refs
+
+ def get_network_ipam_back_refs(self):
+ """Return list of all network-ipams using this virtual-DNS"""
+ return getattr(self, 'network_ipam_back_refs', None)
+ #end get_network_ipam_back_refs
+
+ def dump(self):
+ """Display virtual-DNS object in compact form."""
+ print '------------ virtual-DNS ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P virtual_DNS_data = ', self.get_virtual_DNS_data()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'HAS virtual_DNS_record = ', self.get_virtual_DNS_records()
+ print 'BCK network_ipam = ', self.get_network_ipam_back_refs()
+ #end dump
+
+#end class VirtualDns
+
+class CustomerAttachment(object):
+ """
+ Represents customer-attachment configuration representation.
+
+ Properties:
+ * attachment-address (:class:`.AttachmentAddressType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+ * list of :class:`.VirtualMachineInterface` objects
+ * list of :class:`.FloatingIp` objects
+
+ Referred by:
+ """
+
+ prop_fields = set([u'attachment_address', u'id_perms', u'display_name'])
+ ref_fields = set(['virtual_machine_interface_refs', u'floating_ip_refs'])
+ backref_fields = set([])
+ children_fields = set([])
+
+ def __init__(self, name = None, attachment_address = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'customer-attachment'
+ if not name:
+ name = u'default-customer-attachment'
+ self.name = name
+ self._uuid = None
+ self.fq_name = [name]
+
+ # property fields
+ if attachment_address:
+ self._attachment_address = attachment_address
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (customer-attachment)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of customer-attachment in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of customer-attachment as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def attachment_address(self):
+ """Get attachment-address for customer-attachment.
+
+ :returns: AttachmentAddressType object
+
+ """
+ return getattr(self, '_attachment_address', None)
+ #end attachment_address
+
+ @attachment_address.setter
+ def attachment_address(self, attachment_address):
+ """Set attachment-address for customer-attachment.
+
+ :param attachment_address: AttachmentAddressType object
+
+ """
+ self._attachment_address = attachment_address
+ #end attachment_address
+
+ def set_attachment_address(self, value):
+ self.attachment_address = value
+ #end set_attachment_address
+
+ def get_attachment_address(self):
+ return self.attachment_address
+ #end get_attachment_address
+
+ @property
+ def id_perms(self):
+ """Get id-perms for customer-attachment.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for customer-attachment.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for customer-attachment.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for customer-attachment.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_attachment_address'):
+ self._serialize_field_to_json(serialized, field_names, 'attachment_address')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'virtual_machine_interface_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_interface_refs')
+ if hasattr(self, 'floating_ip_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'floating_ip_refs')
+ return serialized
+ #end serialize_to_json
+
+ def set_virtual_machine_interface(self, ref_obj):
+ """Set virtual-machine-interface for customer-attachment.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_machine_interface_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_machine_interface
+
+ def add_virtual_machine_interface(self, ref_obj):
+ """Add virtual-machine-interface to customer-attachment.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ refs = getattr(self, 'virtual_machine_interface_refs', [])
+ if not refs:
+ self.virtual_machine_interface_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_machine_interface_refs.append(ref_info)
+ #end add_virtual_machine_interface
+
+ def del_virtual_machine_interface(self, ref_obj):
+ refs = self.get_virtual_machine_interface_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_machine_interface_refs.remove(ref)
+ return
+ #end del_virtual_machine_interface
+
+ def set_virtual_machine_interface_list(self, ref_obj_list):
+ """Set virtual-machine-interface list for customer-attachment.
+
+ :param ref_obj_list: list of VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = ref_obj_list
+ #end set_virtual_machine_interface_list
+
+ def get_virtual_machine_interface_refs(self):
+ """Return virtual-machine-interface list for customer-attachment.
+
+ :returns: list of <VirtualMachineInterface>
+
+ """
+ return getattr(self, 'virtual_machine_interface_refs', None)
+ #end get_virtual_machine_interface_refs
+
+ def set_floating_ip(self, ref_obj):
+ """Set floating-ip for customer-attachment.
+
+ :param ref_obj: FloatingIp object
+
+ """
+ self.floating_ip_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.floating_ip_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_floating_ip
+
+ def add_floating_ip(self, ref_obj):
+ """Add floating-ip to customer-attachment.
+
+ :param ref_obj: FloatingIp object
+
+ """
+ refs = getattr(self, 'floating_ip_refs', [])
+ if not refs:
+ self.floating_ip_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.floating_ip_refs.append(ref_info)
+ #end add_floating_ip
+
+ def del_floating_ip(self, ref_obj):
+ refs = self.get_floating_ip_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.floating_ip_refs.remove(ref)
+ return
+ #end del_floating_ip
+
+ def set_floating_ip_list(self, ref_obj_list):
+ """Set floating-ip list for customer-attachment.
+
+ :param ref_obj_list: list of FloatingIp object
+
+ """
+ self.floating_ip_refs = ref_obj_list
+ #end set_floating_ip_list
+
+ def get_floating_ip_refs(self):
+ """Return floating-ip list for customer-attachment.
+
+ :returns: list of <FloatingIp>
+
+ """
+ return getattr(self, 'floating_ip_refs', None)
+ #end get_floating_ip_refs
+
+ def dump(self):
+ """Display customer-attachment object in compact form."""
+ print '------------ customer-attachment ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ print 'P attachment_address = ', self.get_attachment_address()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF virtual_machine_interface = ', self.get_virtual_machine_interface_refs()
+ print 'REF floating_ip = ', self.get_floating_ip_refs()
+ print 'HAS routing_instance = ', self.get_routing_instances()
+ print 'HAS provider_attachment = ', self.get_provider_attachments()
+ #end dump
+
+#end class CustomerAttachment
+
+class ServiceApplianceSet(object):
+ """
+ Represents service-appliance-set configuration representation.
+
+ Child of:
+ :class:`.GlobalSystemConfig` object OR
+
+ Properties:
+ * service-appliance-set-properties (:class:`.KeyValuePairs` type)
+ * service-appliance-driver (xsd:string type)
+ * service-appliance-ha-mode (xsd:string type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+ * list of :class:`.ServiceAppliance` objects
+
+ References to:
+
+ Referred by:
+ * list of :class:`.LoadbalancerPool` objects
+ """
+
+ prop_fields = set([u'service_appliance_set_properties', u'service_appliance_driver', u'service_appliance_ha_mode', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'global_system_config_back_refs', u'loadbalancer_pool_back_refs'])
+ children_fields = set([u'service_appliances'])
+
+ def __init__(self, name = None, parent_obj = None, service_appliance_set_properties = None, service_appliance_driver = None, service_appliance_ha_mode = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'service-appliance-set'
+ if not name:
+ name = u'default-service-appliance-set'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'global-system-config'
+ self.fq_name = [u'default-global-system-config']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if service_appliance_set_properties:
+ self._service_appliance_set_properties = service_appliance_set_properties
+ if service_appliance_driver:
+ self._service_appliance_driver = service_appliance_driver
+ if service_appliance_ha_mode:
+ self._service_appliance_ha_mode = service_appliance_ha_mode
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (service-appliance-set)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of service-appliance-set in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of service-appliance-set as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of service-appliance-set's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of service-appliance-set's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def service_appliance_set_properties(self):
+ """Get service-appliance-set-properties for service-appliance-set.
+
+ :returns: KeyValuePairs object
+
+ """
+ return getattr(self, '_service_appliance_set_properties', None)
+ #end service_appliance_set_properties
+
+ @service_appliance_set_properties.setter
+ def service_appliance_set_properties(self, service_appliance_set_properties):
+ """Set service-appliance-set-properties for service-appliance-set.
+
+ :param service_appliance_set_properties: KeyValuePairs object
+
+ """
+ self._service_appliance_set_properties = service_appliance_set_properties
+ #end service_appliance_set_properties
+
+ def set_service_appliance_set_properties(self, value):
+ self.service_appliance_set_properties = value
+ #end set_service_appliance_set_properties
+
+ def get_service_appliance_set_properties(self):
+ return self.service_appliance_set_properties
+ #end get_service_appliance_set_properties
+
+ @property
+ def service_appliance_driver(self):
+ """Get service-appliance-driver for service-appliance-set.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_service_appliance_driver', None)
+ #end service_appliance_driver
+
+ @service_appliance_driver.setter
+ def service_appliance_driver(self, service_appliance_driver):
+ """Set service-appliance-driver for service-appliance-set.
+
+ :param service_appliance_driver: xsd:string object
+
+ """
+ self._service_appliance_driver = service_appliance_driver
+ #end service_appliance_driver
+
+ def set_service_appliance_driver(self, value):
+ self.service_appliance_driver = value
+ #end set_service_appliance_driver
+
+ def get_service_appliance_driver(self):
+ return self.service_appliance_driver
+ #end get_service_appliance_driver
+
+ @property
+ def service_appliance_ha_mode(self):
+ """Get service-appliance-ha-mode for service-appliance-set.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_service_appliance_ha_mode', None)
+ #end service_appliance_ha_mode
+
+ @service_appliance_ha_mode.setter
+ def service_appliance_ha_mode(self, service_appliance_ha_mode):
+ """Set service-appliance-ha-mode for service-appliance-set.
+
+ :param service_appliance_ha_mode: xsd:string object
+
+ """
+ self._service_appliance_ha_mode = service_appliance_ha_mode
+ #end service_appliance_ha_mode
+
+ def set_service_appliance_ha_mode(self, value):
+ self.service_appliance_ha_mode = value
+ #end set_service_appliance_ha_mode
+
+ def get_service_appliance_ha_mode(self):
+ return self.service_appliance_ha_mode
+ #end get_service_appliance_ha_mode
+
+ @property
+ def id_perms(self):
+ """Get id-perms for service-appliance-set.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for service-appliance-set.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for service-appliance-set.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for service-appliance-set.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_service_appliance_set_properties'):
+ self._serialize_field_to_json(serialized, field_names, 'service_appliance_set_properties')
+ if hasattr(self, '_service_appliance_driver'):
+ self._serialize_field_to_json(serialized, field_names, 'service_appliance_driver')
+ if hasattr(self, '_service_appliance_ha_mode'):
+ self._serialize_field_to_json(serialized, field_names, 'service_appliance_ha_mode')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_service_appliances(self):
+ return getattr(self, 'service_appliances', None)
+ #end get_service_appliances
+
+ def get_global_system_config_back_refs(self):
+ """Return list of all global-system-configs using this service-appliance-set"""
+ return getattr(self, 'global_system_config_back_refs', None)
+ #end get_global_system_config_back_refs
+
+ def get_loadbalancer_pool_back_refs(self):
+ """Return list of all loadbalancer-pools using this service-appliance-set"""
+ return getattr(self, 'loadbalancer_pool_back_refs', None)
+ #end get_loadbalancer_pool_back_refs
+
+ def dump(self):
+ """Display service-appliance-set object in compact form."""
+ print '------------ service-appliance-set ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P service_appliance_set_properties = ', self.get_service_appliance_set_properties()
+ print 'P service_appliance_driver = ', self.get_service_appliance_driver()
+ print 'P service_appliance_ha_mode = ', self.get_service_appliance_ha_mode()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'HAS service_appliance = ', self.get_service_appliances()
+ print 'BCK loadbalancer_pool = ', self.get_loadbalancer_pool_back_refs()
+ #end dump
+
+#end class ServiceApplianceSet
+
+class ConfigNode(object):
+ """
+ Represents config-node configuration representation.
+
+ Child of:
+ :class:`.GlobalSystemConfig` object OR
+
+ Properties:
+ * config-node-ip-address (IpAddressType type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+
+ Referred by:
+ """
+
+ prop_fields = set([u'config_node_ip_address', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'global_system_config_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, config_node_ip_address = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'config-node'
+ if not name:
+ name = u'default-config-node'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'global-system-config'
+ self.fq_name = [u'default-global-system-config']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if config_node_ip_address:
+ self._config_node_ip_address = config_node_ip_address
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (config-node)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of config-node in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of config-node as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of config-node's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of config-node's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def config_node_ip_address(self):
+ """Get config-node-ip-address for config-node.
+
+ :returns: IpAddressType object
+
+ """
+ return getattr(self, '_config_node_ip_address', None)
+ #end config_node_ip_address
+
+ @config_node_ip_address.setter
+ def config_node_ip_address(self, config_node_ip_address):
+ """Set config-node-ip-address for config-node.
+
+ :param config_node_ip_address: IpAddressType object
+
+ """
+ self._config_node_ip_address = config_node_ip_address
+ #end config_node_ip_address
+
+ def set_config_node_ip_address(self, value):
+ self.config_node_ip_address = value
+ #end set_config_node_ip_address
+
+ def get_config_node_ip_address(self):
+ return self.config_node_ip_address
+ #end get_config_node_ip_address
+
+ @property
+ def id_perms(self):
+ """Get id-perms for config-node.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for config-node.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for config-node.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for config-node.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_config_node_ip_address'):
+ self._serialize_field_to_json(serialized, field_names, 'config_node_ip_address')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_global_system_config_back_refs(self):
+ """Return list of all global-system-configs using this config-node"""
+ return getattr(self, 'global_system_config_back_refs', None)
+ #end get_global_system_config_back_refs
+
+ def dump(self):
+ """Display config-node object in compact form."""
+ print '------------ config-node ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P config_node_ip_address = ', self.get_config_node_ip_address()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ #end dump
+
+#end class ConfigNode
+
+class QosQueue(object):
+ """
+ Represents qos-queue configuration representation.
+
+ Child of:
+ :class:`.Project` object OR
+
+ Properties:
+ * min-bandwidth (xsd:integer type)
+ * max-bandwidth (xsd:integer type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+
+ Referred by:
+ * list of :class:`.QosForwardingClass` objects
+ """
+
+ prop_fields = set([u'min_bandwidth', u'max_bandwidth', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'project_back_refs', u'qos_forwarding_class_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, min_bandwidth = None, max_bandwidth = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'qos-queue'
+ if not name:
+ name = u'default-qos-queue'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'project'
+ self.fq_name = [u'default-domain', u'default-project']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if min_bandwidth:
+ self._min_bandwidth = min_bandwidth
+ if max_bandwidth:
+ self._max_bandwidth = max_bandwidth
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (qos-queue)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of qos-queue in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of qos-queue as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of qos-queue's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of qos-queue's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def min_bandwidth(self):
+ """Get min-bandwidth for qos-queue.
+
+ :returns: xsd:integer object
+
+ """
+ return getattr(self, '_min_bandwidth', None)
+ #end min_bandwidth
+
+ @min_bandwidth.setter
+ def min_bandwidth(self, min_bandwidth):
+ """Set min-bandwidth for qos-queue.
+
+ :param min_bandwidth: xsd:integer object
+
+ """
+ self._min_bandwidth = min_bandwidth
+ #end min_bandwidth
+
+ def set_min_bandwidth(self, value):
+ self.min_bandwidth = value
+ #end set_min_bandwidth
+
+ def get_min_bandwidth(self):
+ return self.min_bandwidth
+ #end get_min_bandwidth
+
+ @property
+ def max_bandwidth(self):
+ """Get max-bandwidth for qos-queue.
+
+ :returns: xsd:integer object
+
+ """
+ return getattr(self, '_max_bandwidth', None)
+ #end max_bandwidth
+
+ @max_bandwidth.setter
+ def max_bandwidth(self, max_bandwidth):
+ """Set max-bandwidth for qos-queue.
+
+ :param max_bandwidth: xsd:integer object
+
+ """
+ self._max_bandwidth = max_bandwidth
+ #end max_bandwidth
+
+ def set_max_bandwidth(self, value):
+ self.max_bandwidth = value
+ #end set_max_bandwidth
+
+ def get_max_bandwidth(self):
+ return self.max_bandwidth
+ #end get_max_bandwidth
+
+ @property
+ def id_perms(self):
+ """Get id-perms for qos-queue.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for qos-queue.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for qos-queue.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for qos-queue.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_min_bandwidth'):
+ self._serialize_field_to_json(serialized, field_names, 'min_bandwidth')
+ if hasattr(self, '_max_bandwidth'):
+ self._serialize_field_to_json(serialized, field_names, 'max_bandwidth')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_project_back_refs(self):
+ """Return list of all projects using this qos-queue"""
+ return getattr(self, 'project_back_refs', None)
+ #end get_project_back_refs
+
+ def get_qos_forwarding_class_back_refs(self):
+ """Return list of all qos-forwarding-classs using this qos-queue"""
+ return getattr(self, 'qos_forwarding_class_back_refs', None)
+ #end get_qos_forwarding_class_back_refs
+
+ def dump(self):
+ """Display qos-queue object in compact form."""
+ print '------------ qos-queue ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P min_bandwidth = ', self.get_min_bandwidth()
+ print 'P max_bandwidth = ', self.get_max_bandwidth()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'BCK qos_forwarding_class = ', self.get_qos_forwarding_class_back_refs()
+ #end dump
+
+#end class QosQueue
+
+class VirtualMachine(object):
+ """
+ Represents virtual-machine configuration representation.
+
+ Properties:
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+ * list of :class:`.VirtualMachineInterface` objects
+
+ References to:
+ * list of :class:`.ServiceInstance` objects
+
+ Referred by:
+ * list of :class:`.VirtualMachineInterface` objects
+ * list of :class:`.VirtualRouter` objects
+ """
+
+ prop_fields = set([u'id_perms', u'display_name'])
+ ref_fields = set([u'service_instance_refs'])
+ backref_fields = set(['virtual_machine_interface_back_refs', 'virtual_router_back_refs'])
+ children_fields = set(['virtual_machine_interfaces'])
+
+ def __init__(self, name = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'virtual-machine'
+ if not name:
+ name = u'default-virtual-machine'
+ self.name = name
+ self._uuid = None
+ self.fq_name = [name]
+
+ # property fields
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (virtual-machine)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of virtual-machine in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of virtual-machine as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def id_perms(self):
+ """Get id-perms for virtual-machine.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for virtual-machine.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for virtual-machine.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for virtual-machine.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'service_instance_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'service_instance_refs')
+ return serialized
+ #end serialize_to_json
+
+ def get_virtual_machine_interfaces(self):
+ return getattr(self, 'virtual_machine_interfaces', None)
+ #end get_virtual_machine_interfaces
+
+ def set_service_instance(self, ref_obj):
+ """Set service-instance for virtual-machine.
+
+ :param ref_obj: ServiceInstance object
+
+ """
+ self.service_instance_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.service_instance_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_service_instance
+
+ def add_service_instance(self, ref_obj):
+ """Add service-instance to virtual-machine.
+
+ :param ref_obj: ServiceInstance object
+
+ """
+ refs = getattr(self, 'service_instance_refs', [])
+ if not refs:
+ self.service_instance_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.service_instance_refs.append(ref_info)
+ #end add_service_instance
+
+ def del_service_instance(self, ref_obj):
+ refs = self.get_service_instance_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.service_instance_refs.remove(ref)
+ return
+ #end del_service_instance
+
+ def set_service_instance_list(self, ref_obj_list):
+ """Set service-instance list for virtual-machine.
+
+ :param ref_obj_list: list of ServiceInstance object
+
+ """
+ self.service_instance_refs = ref_obj_list
+ #end set_service_instance_list
+
+ def get_service_instance_refs(self):
+ """Return service-instance list for virtual-machine.
+
+ :returns: list of <ServiceInstance>
+
+ """
+ return getattr(self, 'service_instance_refs', None)
+ #end get_service_instance_refs
+
+ def get_virtual_machine_interface_back_refs(self):
+ """Return list of all virtual-machine-interfaces using this virtual-machine"""
+ return getattr(self, 'virtual_machine_interface_back_refs', None)
+ #end get_virtual_machine_interface_back_refs
+
+ def get_virtual_router_back_refs(self):
+ """Return list of all virtual-routers using this virtual-machine"""
+ return getattr(self, 'virtual_router_back_refs', None)
+ #end get_virtual_router_back_refs
+
+ def dump(self):
+ """Display virtual-machine object in compact form."""
+ print '------------ virtual-machine ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'HAS virtual_machine_interface = ', self.get_virtual_machine_interfaces()
+ print 'REF service_instance = ', self.get_service_instance_refs()
+ print 'BCK virtual_machine_interface = ', self.get_virtual_machine_interface_back_refs()
+ print 'BCK virtual_router = ', self.get_virtual_router_back_refs()
+ #end dump
+
+#end class VirtualMachine
+
+class InterfaceRouteTable(object):
+ """
+ Represents interface-route-table configuration representation.
+
+ Child of:
+ :class:`.Project` object OR
+
+ Properties:
+ * interface-route-table-routes (:class:`.RouteTableType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+
+ Referred by:
+ * list of :class:`.VirtualMachineInterface` objects
+ """
+
+ prop_fields = set([u'interface_route_table_routes', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'project_back_refs', 'virtual_machine_interface_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, interface_route_table_routes = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'interface-route-table'
+ if not name:
+ name = u'default-interface-route-table'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'project'
+ self.fq_name = [u'default-domain', u'default-project']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if interface_route_table_routes:
+ self._interface_route_table_routes = interface_route_table_routes
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (interface-route-table)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of interface-route-table in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of interface-route-table as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of interface-route-table's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of interface-route-table's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def interface_route_table_routes(self):
+ """Get interface-route-table-routes for interface-route-table.
+
+ :returns: RouteTableType object
+
+ """
+ return getattr(self, '_interface_route_table_routes', None)
+ #end interface_route_table_routes
+
+ @interface_route_table_routes.setter
+ def interface_route_table_routes(self, interface_route_table_routes):
+ """Set interface-route-table-routes for interface-route-table.
+
+ :param interface_route_table_routes: RouteTableType object
+
+ """
+ self._interface_route_table_routes = interface_route_table_routes
+ #end interface_route_table_routes
+
+ def set_interface_route_table_routes(self, value):
+ self.interface_route_table_routes = value
+ #end set_interface_route_table_routes
+
+ def get_interface_route_table_routes(self):
+ return self.interface_route_table_routes
+ #end get_interface_route_table_routes
+
+ @property
+ def id_perms(self):
+ """Get id-perms for interface-route-table.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for interface-route-table.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for interface-route-table.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for interface-route-table.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_interface_route_table_routes'):
+ self._serialize_field_to_json(serialized, field_names, 'interface_route_table_routes')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_project_back_refs(self):
+ """Return list of all projects using this interface-route-table"""
+ return getattr(self, 'project_back_refs', None)
+ #end get_project_back_refs
+
+ def get_virtual_machine_interface_back_refs(self):
+ """Return list of all virtual-machine-interfaces using this interface-route-table"""
+ return getattr(self, 'virtual_machine_interface_back_refs', None)
+ #end get_virtual_machine_interface_back_refs
+
+ def dump(self):
+ """Display interface-route-table object in compact form."""
+ print '------------ interface-route-table ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P interface_route_table_routes = ', self.get_interface_route_table_routes()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'BCK virtual_machine_interface = ', self.get_virtual_machine_interface_back_refs()
+ #end dump
+
+#end class InterfaceRouteTable
+
+class ServiceTemplate(object):
+ """
+ Represents service-template configuration representation.
+
+ Child of:
+ :class:`.Domain` object OR
+
+ Properties:
+ * service-template-properties (:class:`.ServiceTemplateType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+
+ Referred by:
+ * list of :class:`.ServiceInstance` objects
+ """
+
+ prop_fields = set([u'service_template_properties', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'domain_back_refs', u'service_instance_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, service_template_properties = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'service-template'
+ if not name:
+ name = u'default-service-template'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'domain'
+ self.fq_name = [u'default-domain']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if service_template_properties:
+ self._service_template_properties = service_template_properties
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (service-template)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of service-template in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of service-template as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of service-template's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of service-template's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def service_template_properties(self):
+ """Get service-template-properties for service-template.
+
+ :returns: ServiceTemplateType object
+
+ """
+ return getattr(self, '_service_template_properties', None)
+ #end service_template_properties
+
+ @service_template_properties.setter
+ def service_template_properties(self, service_template_properties):
+ """Set service-template-properties for service-template.
+
+ :param service_template_properties: ServiceTemplateType object
+
+ """
+ self._service_template_properties = service_template_properties
+ #end service_template_properties
+
+ def set_service_template_properties(self, value):
+ self.service_template_properties = value
+ #end set_service_template_properties
+
+ def get_service_template_properties(self):
+ return self.service_template_properties
+ #end get_service_template_properties
+
+ @property
+ def id_perms(self):
+ """Get id-perms for service-template.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for service-template.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for service-template.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for service-template.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_service_template_properties'):
+ self._serialize_field_to_json(serialized, field_names, 'service_template_properties')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_domain_back_refs(self):
+ """Return list of all domains using this service-template"""
+ return getattr(self, 'domain_back_refs', None)
+ #end get_domain_back_refs
+
+ def get_service_instance_back_refs(self):
+ """Return list of all service-instances using this service-template"""
+ return getattr(self, 'service_instance_back_refs', None)
+ #end get_service_instance_back_refs
+
+ def dump(self):
+ """Display service-template object in compact form."""
+ print '------------ service-template ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P service_template_properties = ', self.get_service_template_properties()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'BCK service_instance = ', self.get_service_instance_back_refs()
+ #end dump
+
+#end class ServiceTemplate
+
+class VirtualIp(object):
+ """
+ Represents virtual-ip configuration representation.
+
+ Child of:
+ :class:`.Project` object OR
+
+ Properties:
+ * virtual-ip-properties (:class:`.VirtualIpType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+ * list of :class:`.LoadbalancerPool` objects
+ * list of :class:`.VirtualMachineInterface` objects
+
+ Referred by:
+ """
+
+ prop_fields = set([u'virtual_ip_properties', u'id_perms', u'display_name'])
+ ref_fields = set([u'loadbalancer_pool_refs', 'virtual_machine_interface_refs'])
+ backref_fields = set([u'project_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, virtual_ip_properties = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'virtual-ip'
+ if not name:
+ name = u'default-virtual-ip'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'project'
+ self.fq_name = [u'default-domain', u'default-project']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if virtual_ip_properties:
+ self._virtual_ip_properties = virtual_ip_properties
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (virtual-ip)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of virtual-ip in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of virtual-ip as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of virtual-ip's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of virtual-ip's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def virtual_ip_properties(self):
+ """Get virtual-ip-properties for virtual-ip.
+
+ :returns: VirtualIpType object
+
+ """
+ return getattr(self, '_virtual_ip_properties', None)
+ #end virtual_ip_properties
+
+ @virtual_ip_properties.setter
+ def virtual_ip_properties(self, virtual_ip_properties):
+ """Set virtual-ip-properties for virtual-ip.
+
+ :param virtual_ip_properties: VirtualIpType object
+
+ """
+ self._virtual_ip_properties = virtual_ip_properties
+ #end virtual_ip_properties
+
+ def set_virtual_ip_properties(self, value):
+ self.virtual_ip_properties = value
+ #end set_virtual_ip_properties
+
+ def get_virtual_ip_properties(self):
+ return self.virtual_ip_properties
+ #end get_virtual_ip_properties
+
+ @property
+ def id_perms(self):
+ """Get id-perms for virtual-ip.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for virtual-ip.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for virtual-ip.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for virtual-ip.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_virtual_ip_properties'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_ip_properties')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'loadbalancer_pool_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'loadbalancer_pool_refs')
+ if hasattr(self, 'virtual_machine_interface_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_interface_refs')
+ return serialized
+ #end serialize_to_json
+
+ def set_loadbalancer_pool(self, ref_obj):
+ """Set loadbalancer-pool for virtual-ip.
+
+ :param ref_obj: LoadbalancerPool object
+
+ """
+ self.loadbalancer_pool_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.loadbalancer_pool_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_loadbalancer_pool
+
+ def add_loadbalancer_pool(self, ref_obj):
+ """Add loadbalancer-pool to virtual-ip.
+
+ :param ref_obj: LoadbalancerPool object
+
+ """
+ refs = getattr(self, 'loadbalancer_pool_refs', [])
+ if not refs:
+ self.loadbalancer_pool_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.loadbalancer_pool_refs.append(ref_info)
+ #end add_loadbalancer_pool
+
+ def del_loadbalancer_pool(self, ref_obj):
+ refs = self.get_loadbalancer_pool_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.loadbalancer_pool_refs.remove(ref)
+ return
+ #end del_loadbalancer_pool
+
+ def set_loadbalancer_pool_list(self, ref_obj_list):
+ """Set loadbalancer-pool list for virtual-ip.
+
+ :param ref_obj_list: list of LoadbalancerPool object
+
+ """
+ self.loadbalancer_pool_refs = ref_obj_list
+ #end set_loadbalancer_pool_list
+
+ def get_loadbalancer_pool_refs(self):
+ """Return loadbalancer-pool list for virtual-ip.
+
+ :returns: list of <LoadbalancerPool>
+
+ """
+ return getattr(self, 'loadbalancer_pool_refs', None)
+ #end get_loadbalancer_pool_refs
+
+ def set_virtual_machine_interface(self, ref_obj):
+ """Set virtual-machine-interface for virtual-ip.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_machine_interface_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_machine_interface
+
+ def add_virtual_machine_interface(self, ref_obj):
+ """Add virtual-machine-interface to virtual-ip.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ refs = getattr(self, 'virtual_machine_interface_refs', [])
+ if not refs:
+ self.virtual_machine_interface_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_machine_interface_refs.append(ref_info)
+ #end add_virtual_machine_interface
+
+ def del_virtual_machine_interface(self, ref_obj):
+ refs = self.get_virtual_machine_interface_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_machine_interface_refs.remove(ref)
+ return
+ #end del_virtual_machine_interface
+
+ def set_virtual_machine_interface_list(self, ref_obj_list):
+ """Set virtual-machine-interface list for virtual-ip.
+
+ :param ref_obj_list: list of VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = ref_obj_list
+ #end set_virtual_machine_interface_list
+
+ def get_virtual_machine_interface_refs(self):
+ """Return virtual-machine-interface list for virtual-ip.
+
+ :returns: list of <VirtualMachineInterface>
+
+ """
+ return getattr(self, 'virtual_machine_interface_refs', None)
+ #end get_virtual_machine_interface_refs
+
+ def get_project_back_refs(self):
+ """Return list of all projects using this virtual-ip"""
+ return getattr(self, 'project_back_refs', None)
+ #end get_project_back_refs
+
+ def dump(self):
+ """Display virtual-ip object in compact form."""
+ print '------------ virtual-ip ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P virtual_ip_properties = ', self.get_virtual_ip_properties()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF loadbalancer_pool = ', self.get_loadbalancer_pool_refs()
+ print 'REF virtual_machine_interface = ', self.get_virtual_machine_interface_refs()
+ #end dump
+
+#end class VirtualIp
+
+class LoadbalancerMember(object):
+ """
+ Represents loadbalancer-member configuration representation.
+
+ Child of:
+ :class:`.LoadbalancerPool` object OR
+
+ Properties:
+ * loadbalancer-member-properties (:class:`.LoadbalancerMemberType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+
+ Referred by:
+ """
+
+ prop_fields = set([u'loadbalancer_member_properties', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'loadbalancer_pool_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, loadbalancer_member_properties = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'loadbalancer-member'
+ if not name:
+ name = u'default-loadbalancer-member'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'loadbalancer-pool'
+ self.fq_name = [u'default-domain', u'default-project', u'default-loadbalancer-pool']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if loadbalancer_member_properties:
+ self._loadbalancer_member_properties = loadbalancer_member_properties
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (loadbalancer-member)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of loadbalancer-member in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of loadbalancer-member as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of loadbalancer-member's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of loadbalancer-member's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def loadbalancer_member_properties(self):
+ """Get loadbalancer-member-properties for loadbalancer-member.
+
+ :returns: LoadbalancerMemberType object
+
+ """
+ return getattr(self, '_loadbalancer_member_properties', None)
+ #end loadbalancer_member_properties
+
+ @loadbalancer_member_properties.setter
+ def loadbalancer_member_properties(self, loadbalancer_member_properties):
+ """Set loadbalancer-member-properties for loadbalancer-member.
+
+ :param loadbalancer_member_properties: LoadbalancerMemberType object
+
+ """
+ self._loadbalancer_member_properties = loadbalancer_member_properties
+ #end loadbalancer_member_properties
+
+ def set_loadbalancer_member_properties(self, value):
+ self.loadbalancer_member_properties = value
+ #end set_loadbalancer_member_properties
+
+ def get_loadbalancer_member_properties(self):
+ return self.loadbalancer_member_properties
+ #end get_loadbalancer_member_properties
+
+ @property
+ def id_perms(self):
+ """Get id-perms for loadbalancer-member.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for loadbalancer-member.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for loadbalancer-member.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for loadbalancer-member.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_loadbalancer_member_properties'):
+ self._serialize_field_to_json(serialized, field_names, 'loadbalancer_member_properties')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_loadbalancer_pool_back_refs(self):
+ """Return list of all loadbalancer-pools using this loadbalancer-member"""
+ return getattr(self, 'loadbalancer_pool_back_refs', None)
+ #end get_loadbalancer_pool_back_refs
+
+ def dump(self):
+ """Display loadbalancer-member object in compact form."""
+ print '------------ loadbalancer-member ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P loadbalancer_member_properties = ', self.get_loadbalancer_member_properties()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ #end dump
+
+#end class LoadbalancerMember
+
+class SecurityGroup(object):
+ """
+ Represents security-group configuration representation.
+
+ Child of:
+ :class:`.Project` object OR
+
+ Properties:
+ * security-group-id (xsd:string type)
+ * configured-security-group-id (xsd:integer type)
+ * security-group-entries (:class:`.PolicyEntriesType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+ * list of :class:`.AccessControlList` objects
+
+ References to:
+
+ Referred by:
+ * list of :class:`.VirtualMachineInterface` objects
+ """
+
+ prop_fields = set([u'security_group_id', u'configured_security_group_id', u'security_group_entries', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'project_back_refs', 'virtual_machine_interface_back_refs'])
+ children_fields = set([u'access_control_lists'])
+
+ def __init__(self, name = None, parent_obj = None, security_group_id = None, configured_security_group_id = None, security_group_entries = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'security-group'
+ if not name:
+ name = u'default-security-group'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'project'
+ self.fq_name = [u'default-domain', u'default-project']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if security_group_id:
+ self._security_group_id = security_group_id
+ if configured_security_group_id:
+ self._configured_security_group_id = configured_security_group_id
+ if security_group_entries:
+ self._security_group_entries = security_group_entries
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (security-group)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of security-group in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of security-group as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of security-group's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of security-group's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def security_group_id(self):
+ """Get security-group-id for security-group.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_security_group_id', None)
+ #end security_group_id
+
+ @security_group_id.setter
+ def security_group_id(self, security_group_id):
+ """Set security-group-id for security-group.
+
+ :param security_group_id: xsd:string object
+
+ """
+ self._security_group_id = security_group_id
+ #end security_group_id
+
+ def set_security_group_id(self, value):
+ self.security_group_id = value
+ #end set_security_group_id
+
+ def get_security_group_id(self):
+ return self.security_group_id
+ #end get_security_group_id
+
+ @property
+ def configured_security_group_id(self):
+ """Get configured-security-group-id for security-group.
+
+ :returns: xsd:integer object
+
+ """
+ return getattr(self, '_configured_security_group_id', None)
+ #end configured_security_group_id
+
+ @configured_security_group_id.setter
+ def configured_security_group_id(self, configured_security_group_id):
+ """Set configured-security-group-id for security-group.
+
+ :param configured_security_group_id: xsd:integer object
+
+ """
+ self._configured_security_group_id = configured_security_group_id
+ #end configured_security_group_id
+
+ def set_configured_security_group_id(self, value):
+ self.configured_security_group_id = value
+ #end set_configured_security_group_id
+
+ def get_configured_security_group_id(self):
+ return self.configured_security_group_id
+ #end get_configured_security_group_id
+
+ @property
+ def security_group_entries(self):
+ """Get security-group-entries for security-group.
+
+ :returns: PolicyEntriesType object
+
+ """
+ return getattr(self, '_security_group_entries', None)
+ #end security_group_entries
+
+ @security_group_entries.setter
+ def security_group_entries(self, security_group_entries):
+ """Set security-group-entries for security-group.
+
+ :param security_group_entries: PolicyEntriesType object
+
+ """
+ self._security_group_entries = security_group_entries
+ #end security_group_entries
+
+ def set_security_group_entries(self, value):
+ self.security_group_entries = value
+ #end set_security_group_entries
+
+ def get_security_group_entries(self):
+ return self.security_group_entries
+ #end get_security_group_entries
+
+ @property
+ def id_perms(self):
+ """Get id-perms for security-group.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for security-group.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for security-group.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for security-group.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_security_group_id'):
+ self._serialize_field_to_json(serialized, field_names, 'security_group_id')
+ if hasattr(self, '_configured_security_group_id'):
+ self._serialize_field_to_json(serialized, field_names, 'configured_security_group_id')
+ if hasattr(self, '_security_group_entries'):
+ self._serialize_field_to_json(serialized, field_names, 'security_group_entries')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_access_control_lists(self):
+ return getattr(self, 'access_control_lists', None)
+ #end get_access_control_lists
+
+ def get_project_back_refs(self):
+ """Return list of all projects using this security-group"""
+ return getattr(self, 'project_back_refs', None)
+ #end get_project_back_refs
+
+ def get_virtual_machine_interface_back_refs(self):
+ """Return list of all virtual-machine-interfaces using this security-group"""
+ return getattr(self, 'virtual_machine_interface_back_refs', None)
+ #end get_virtual_machine_interface_back_refs
+
+ def dump(self):
+ """Display security-group object in compact form."""
+ print '------------ security-group ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P security_group_id = ', self.get_security_group_id()
+ print 'P configured_security_group_id = ', self.get_configured_security_group_id()
+ print 'P security_group_entries = ', self.get_security_group_entries()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'HAS access_control_list = ', self.get_access_control_lists()
+ print 'BCK virtual_machine_interface = ', self.get_virtual_machine_interface_back_refs()
+ #end dump
+
+#end class SecurityGroup
+
+class ProviderAttachment(object):
+ """
+ Represents provider-attachment configuration representation.
+
+ Properties:
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+ * list of :class:`.VirtualRouter` objects
+
+ Referred by:
+ """
+
+ prop_fields = set([u'id_perms', u'display_name'])
+ ref_fields = set(['virtual_router_refs'])
+ backref_fields = set(['customer_attachment_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'provider-attachment'
+ if not name:
+ name = u'default-provider-attachment'
+ self.name = name
+ self._uuid = None
+ self.fq_name = [name]
+
+ # property fields
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (provider-attachment)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of provider-attachment in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of provider-attachment as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def id_perms(self):
+ """Get id-perms for provider-attachment.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for provider-attachment.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for provider-attachment.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for provider-attachment.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'virtual_router_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_router_refs')
+ return serialized
+ #end serialize_to_json
+
+ def set_virtual_router(self, ref_obj):
+ """Set virtual-router for provider-attachment.
+
+ :param ref_obj: VirtualRouter object
+
+ """
+ self.virtual_router_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_router_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_router
+
+ def add_virtual_router(self, ref_obj):
+ """Add virtual-router to provider-attachment.
+
+ :param ref_obj: VirtualRouter object
+
+ """
+ refs = getattr(self, 'virtual_router_refs', [])
+ if not refs:
+ self.virtual_router_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_router_refs.append(ref_info)
+ #end add_virtual_router
+
+ def del_virtual_router(self, ref_obj):
+ refs = self.get_virtual_router_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_router_refs.remove(ref)
+ return
+ #end del_virtual_router
+
+ def set_virtual_router_list(self, ref_obj_list):
+ """Set virtual-router list for provider-attachment.
+
+ :param ref_obj_list: list of VirtualRouter object
+
+ """
+ self.virtual_router_refs = ref_obj_list
+ #end set_virtual_router_list
+
+ def get_virtual_router_refs(self):
+ """Return virtual-router list for provider-attachment.
+
+ :returns: list of <VirtualRouter>
+
+ """
+ return getattr(self, 'virtual_router_refs', None)
+ #end get_virtual_router_refs
+
+ def get_customer_attachment_back_refs(self):
+ """Return list of all customer-attachments using this provider-attachment"""
+ return getattr(self, 'customer_attachment_back_refs', None)
+ #end get_customer_attachment_back_refs
+
+ def dump(self):
+ """Display provider-attachment object in compact form."""
+ print '------------ provider-attachment ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF virtual_router = ', self.get_virtual_router_refs()
+ #end dump
+
+#end class ProviderAttachment
+
+class VirtualMachineInterface(object):
+ """
+ Represents virtual-machine-interface configuration representation.
+
+ Child of:
+ :class:`.VirtualMachine` object OR
+ :class:`.Project` object OR
+
+ Properties:
+ * virtual-machine-interface-mac-addresses (:class:`.MacAddressesType` type)
+ * virtual-machine-interface-dhcp-option-list (:class:`.DhcpOptionsListType` type)
+ * virtual-machine-interface-host-routes (:class:`.RouteTableType` type)
+ * virtual-machine-interface-allowed-address-pairs (:class:`.AllowedAddressPairs` type)
+ * vrf-assign-table (:class:`.VrfAssignTableType` type)
+ * virtual-machine-interface-device-owner (xsd:string type)
+ * virtual-machine-interface-properties (:class:`.VirtualMachineInterfacePropertiesType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+ * list of :class:`.QosForwardingClass` objects
+ * list of :class:`.SecurityGroup` objects
+ * list of :class:`.VirtualMachineInterface` objects
+ * list of :class:`.VirtualMachine` objects
+ * list of :class:`.VirtualNetwork` objects
+ * list of (:class:`.RoutingInstance` object, :class:`.PolicyBasedForwardingRuleType` attribute)
+ * list of :class:`.InterfaceRouteTable` objects
+
+ Referred by:
+ * list of :class:`.VirtualMachineInterface` objects
+ * list of :class:`.InstanceIp` objects
+ * list of :class:`.Subnet` objects
+ * list of :class:`.FloatingIp` objects
+ * list of :class:`.LogicalInterface` objects
+ * list of :class:`.CustomerAttachment` objects
+ * list of :class:`.LogicalRouter` objects
+ * list of :class:`.LoadbalancerPool` objects
+ * list of :class:`.VirtualIp` objects
+ """
+
+ prop_fields = set([u'virtual_machine_interface_mac_addresses', u'virtual_machine_interface_dhcp_option_list', u'virtual_machine_interface_host_routes', u'virtual_machine_interface_allowed_address_pairs', u'vrf_assign_table', u'virtual_machine_interface_device_owner', u'virtual_machine_interface_properties', u'id_perms', u'display_name'])
+ ref_fields = set([u'qos_forwarding_class_refs', u'security_group_refs', 'virtual_machine_interface_refs', u'virtual_machine_refs', u'virtual_network_refs', 'routing_instance_refs', u'interface_route_table_refs'])
+ backref_fields = set(['virtual_machine_interface_back_refs', u'virtual_machine_back_refs', u'project_back_refs', u'instance_ip_back_refs', u'subnet_back_refs', u'floating_ip_back_refs', u'logical_interface_back_refs', 'customer_attachment_back_refs', u'logical_router_back_refs', u'loadbalancer_pool_back_refs', u'virtual_ip_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, virtual_machine_interface_mac_addresses = None, virtual_machine_interface_dhcp_option_list = None, virtual_machine_interface_host_routes = None, virtual_machine_interface_allowed_address_pairs = None, vrf_assign_table = None, virtual_machine_interface_device_owner = None, virtual_machine_interface_properties = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'virtual-machine-interface'
+ if not name:
+ name = u'default-virtual-machine-interface'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ # if obj constructed from within server, ignore if parent not specified
+ if not kwargs['parent_type']:
+ raise AmbiguousParentError("[[u'default-virtual-machine'], [u'default-domain', u'default-project']]")
+
+ # property fields
+ if virtual_machine_interface_mac_addresses:
+ self._virtual_machine_interface_mac_addresses = virtual_machine_interface_mac_addresses
+ if virtual_machine_interface_dhcp_option_list:
+ self._virtual_machine_interface_dhcp_option_list = virtual_machine_interface_dhcp_option_list
+ if virtual_machine_interface_host_routes:
+ self._virtual_machine_interface_host_routes = virtual_machine_interface_host_routes
+ if virtual_machine_interface_allowed_address_pairs:
+ self._virtual_machine_interface_allowed_address_pairs = virtual_machine_interface_allowed_address_pairs
+ if vrf_assign_table:
+ self._vrf_assign_table = vrf_assign_table
+ if virtual_machine_interface_device_owner:
+ self._virtual_machine_interface_device_owner = virtual_machine_interface_device_owner
+ if virtual_machine_interface_properties:
+ self._virtual_machine_interface_properties = virtual_machine_interface_properties
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (virtual-machine-interface)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of virtual-machine-interface in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of virtual-machine-interface as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of virtual-machine-interface's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of virtual-machine-interface's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def virtual_machine_interface_mac_addresses(self):
+ """Get virtual-machine-interface-mac-addresses for virtual-machine-interface.
+
+ :returns: MacAddressesType object
+
+ """
+ return getattr(self, '_virtual_machine_interface_mac_addresses', None)
+ #end virtual_machine_interface_mac_addresses
+
+ @virtual_machine_interface_mac_addresses.setter
+ def virtual_machine_interface_mac_addresses(self, virtual_machine_interface_mac_addresses):
+ """Set virtual-machine-interface-mac-addresses for virtual-machine-interface.
+
+ :param virtual_machine_interface_mac_addresses: MacAddressesType object
+
+ """
+ self._virtual_machine_interface_mac_addresses = virtual_machine_interface_mac_addresses
+ #end virtual_machine_interface_mac_addresses
+
+ def set_virtual_machine_interface_mac_addresses(self, value):
+ self.virtual_machine_interface_mac_addresses = value
+ #end set_virtual_machine_interface_mac_addresses
+
+ def get_virtual_machine_interface_mac_addresses(self):
+ return self.virtual_machine_interface_mac_addresses
+ #end get_virtual_machine_interface_mac_addresses
+
+ @property
+ def virtual_machine_interface_dhcp_option_list(self):
+ """Get virtual-machine-interface-dhcp-option-list for virtual-machine-interface.
+
+ :returns: DhcpOptionsListType object
+
+ """
+ return getattr(self, '_virtual_machine_interface_dhcp_option_list', None)
+ #end virtual_machine_interface_dhcp_option_list
+
+ @virtual_machine_interface_dhcp_option_list.setter
+ def virtual_machine_interface_dhcp_option_list(self, virtual_machine_interface_dhcp_option_list):
+ """Set virtual-machine-interface-dhcp-option-list for virtual-machine-interface.
+
+ :param virtual_machine_interface_dhcp_option_list: DhcpOptionsListType object
+
+ """
+ self._virtual_machine_interface_dhcp_option_list = virtual_machine_interface_dhcp_option_list
+ #end virtual_machine_interface_dhcp_option_list
+
+ def set_virtual_machine_interface_dhcp_option_list(self, value):
+ self.virtual_machine_interface_dhcp_option_list = value
+ #end set_virtual_machine_interface_dhcp_option_list
+
+ def get_virtual_machine_interface_dhcp_option_list(self):
+ return self.virtual_machine_interface_dhcp_option_list
+ #end get_virtual_machine_interface_dhcp_option_list
+
+ @property
+ def virtual_machine_interface_host_routes(self):
+ """Get virtual-machine-interface-host-routes for virtual-machine-interface.
+
+ :returns: RouteTableType object
+
+ """
+ return getattr(self, '_virtual_machine_interface_host_routes', None)
+ #end virtual_machine_interface_host_routes
+
+ @virtual_machine_interface_host_routes.setter
+ def virtual_machine_interface_host_routes(self, virtual_machine_interface_host_routes):
+ """Set virtual-machine-interface-host-routes for virtual-machine-interface.
+
+ :param virtual_machine_interface_host_routes: RouteTableType object
+
+ """
+ self._virtual_machine_interface_host_routes = virtual_machine_interface_host_routes
+ #end virtual_machine_interface_host_routes
+
+ def set_virtual_machine_interface_host_routes(self, value):
+ self.virtual_machine_interface_host_routes = value
+ #end set_virtual_machine_interface_host_routes
+
+ def get_virtual_machine_interface_host_routes(self):
+ return self.virtual_machine_interface_host_routes
+ #end get_virtual_machine_interface_host_routes
+
+ @property
+ def virtual_machine_interface_allowed_address_pairs(self):
+ """Get virtual-machine-interface-allowed-address-pairs for virtual-machine-interface.
+
+ :returns: AllowedAddressPairs object
+
+ """
+ return getattr(self, '_virtual_machine_interface_allowed_address_pairs', None)
+ #end virtual_machine_interface_allowed_address_pairs
+
+ @virtual_machine_interface_allowed_address_pairs.setter
+ def virtual_machine_interface_allowed_address_pairs(self, virtual_machine_interface_allowed_address_pairs):
+ """Set virtual-machine-interface-allowed-address-pairs for virtual-machine-interface.
+
+ :param virtual_machine_interface_allowed_address_pairs: AllowedAddressPairs object
+
+ """
+ self._virtual_machine_interface_allowed_address_pairs = virtual_machine_interface_allowed_address_pairs
+ #end virtual_machine_interface_allowed_address_pairs
+
+ def set_virtual_machine_interface_allowed_address_pairs(self, value):
+ self.virtual_machine_interface_allowed_address_pairs = value
+ #end set_virtual_machine_interface_allowed_address_pairs
+
+ def get_virtual_machine_interface_allowed_address_pairs(self):
+ return self.virtual_machine_interface_allowed_address_pairs
+ #end get_virtual_machine_interface_allowed_address_pairs
+
+ @property
+ def vrf_assign_table(self):
+ """Get vrf-assign-table for virtual-machine-interface.
+
+ :returns: VrfAssignTableType object
+
+ """
+ return getattr(self, '_vrf_assign_table', None)
+ #end vrf_assign_table
+
+ @vrf_assign_table.setter
+ def vrf_assign_table(self, vrf_assign_table):
+ """Set vrf-assign-table for virtual-machine-interface.
+
+ :param vrf_assign_table: VrfAssignTableType object
+
+ """
+ self._vrf_assign_table = vrf_assign_table
+ #end vrf_assign_table
+
+ def set_vrf_assign_table(self, value):
+ self.vrf_assign_table = value
+ #end set_vrf_assign_table
+
+ def get_vrf_assign_table(self):
+ return self.vrf_assign_table
+ #end get_vrf_assign_table
+
+ @property
+ def virtual_machine_interface_device_owner(self):
+ """Get virtual-machine-interface-device-owner for virtual-machine-interface.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_virtual_machine_interface_device_owner', None)
+ #end virtual_machine_interface_device_owner
+
+ @virtual_machine_interface_device_owner.setter
+ def virtual_machine_interface_device_owner(self, virtual_machine_interface_device_owner):
+ """Set virtual-machine-interface-device-owner for virtual-machine-interface.
+
+ :param virtual_machine_interface_device_owner: xsd:string object
+
+ """
+ self._virtual_machine_interface_device_owner = virtual_machine_interface_device_owner
+ #end virtual_machine_interface_device_owner
+
+ def set_virtual_machine_interface_device_owner(self, value):
+ self.virtual_machine_interface_device_owner = value
+ #end set_virtual_machine_interface_device_owner
+
+ def get_virtual_machine_interface_device_owner(self):
+ return self.virtual_machine_interface_device_owner
+ #end get_virtual_machine_interface_device_owner
+
+ @property
+ def virtual_machine_interface_properties(self):
+ """Get virtual-machine-interface-properties for virtual-machine-interface.
+
+ :returns: VirtualMachineInterfacePropertiesType object
+
+ """
+ return getattr(self, '_virtual_machine_interface_properties', None)
+ #end virtual_machine_interface_properties
+
+ @virtual_machine_interface_properties.setter
+ def virtual_machine_interface_properties(self, virtual_machine_interface_properties):
+ """Set virtual-machine-interface-properties for virtual-machine-interface.
+
+ :param virtual_machine_interface_properties: VirtualMachineInterfacePropertiesType object
+
+ """
+ self._virtual_machine_interface_properties = virtual_machine_interface_properties
+ #end virtual_machine_interface_properties
+
+ def set_virtual_machine_interface_properties(self, value):
+ self.virtual_machine_interface_properties = value
+ #end set_virtual_machine_interface_properties
+
+ def get_virtual_machine_interface_properties(self):
+ return self.virtual_machine_interface_properties
+ #end get_virtual_machine_interface_properties
+
+ @property
+ def id_perms(self):
+ """Get id-perms for virtual-machine-interface.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for virtual-machine-interface.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for virtual-machine-interface.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for virtual-machine-interface.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_virtual_machine_interface_mac_addresses'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_interface_mac_addresses')
+ if hasattr(self, '_virtual_machine_interface_dhcp_option_list'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_interface_dhcp_option_list')
+ if hasattr(self, '_virtual_machine_interface_host_routes'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_interface_host_routes')
+ if hasattr(self, '_virtual_machine_interface_allowed_address_pairs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_interface_allowed_address_pairs')
+ if hasattr(self, '_vrf_assign_table'):
+ self._serialize_field_to_json(serialized, field_names, 'vrf_assign_table')
+ if hasattr(self, '_virtual_machine_interface_device_owner'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_interface_device_owner')
+ if hasattr(self, '_virtual_machine_interface_properties'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_interface_properties')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'qos_forwarding_class_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'qos_forwarding_class_refs')
+ if hasattr(self, 'security_group_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'security_group_refs')
+ if hasattr(self, 'virtual_machine_interface_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_interface_refs')
+ if hasattr(self, 'virtual_machine_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_refs')
+ if hasattr(self, 'virtual_network_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_network_refs')
+ if hasattr(self, 'routing_instance_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'routing_instance_refs')
+ if hasattr(self, 'interface_route_table_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'interface_route_table_refs')
+ return serialized
+ #end serialize_to_json
+
+ def set_qos_forwarding_class(self, ref_obj):
+ """Set qos-forwarding-class for virtual-machine-interface.
+
+ :param ref_obj: QosForwardingClass object
+
+ """
+ self.qos_forwarding_class_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.qos_forwarding_class_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_qos_forwarding_class
+
+ def add_qos_forwarding_class(self, ref_obj):
+ """Add qos-forwarding-class to virtual-machine-interface.
+
+ :param ref_obj: QosForwardingClass object
+
+ """
+ refs = getattr(self, 'qos_forwarding_class_refs', [])
+ if not refs:
+ self.qos_forwarding_class_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.qos_forwarding_class_refs.append(ref_info)
+ #end add_qos_forwarding_class
+
+ def del_qos_forwarding_class(self, ref_obj):
+ refs = self.get_qos_forwarding_class_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.qos_forwarding_class_refs.remove(ref)
+ return
+ #end del_qos_forwarding_class
+
+ def set_qos_forwarding_class_list(self, ref_obj_list):
+ """Set qos-forwarding-class list for virtual-machine-interface.
+
+ :param ref_obj_list: list of QosForwardingClass object
+
+ """
+ self.qos_forwarding_class_refs = ref_obj_list
+ #end set_qos_forwarding_class_list
+
+ def get_qos_forwarding_class_refs(self):
+ """Return qos-forwarding-class list for virtual-machine-interface.
+
+ :returns: list of <QosForwardingClass>
+
+ """
+ return getattr(self, 'qos_forwarding_class_refs', None)
+ #end get_qos_forwarding_class_refs
+
+ def set_security_group(self, ref_obj):
+ """Set security-group for virtual-machine-interface.
+
+ :param ref_obj: SecurityGroup object
+
+ """
+ self.security_group_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.security_group_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_security_group
+
+ def add_security_group(self, ref_obj):
+ """Add security-group to virtual-machine-interface.
+
+ :param ref_obj: SecurityGroup object
+
+ """
+ refs = getattr(self, 'security_group_refs', [])
+ if not refs:
+ self.security_group_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.security_group_refs.append(ref_info)
+ #end add_security_group
+
+ def del_security_group(self, ref_obj):
+ refs = self.get_security_group_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.security_group_refs.remove(ref)
+ return
+ #end del_security_group
+
+ def set_security_group_list(self, ref_obj_list):
+ """Set security-group list for virtual-machine-interface.
+
+ :param ref_obj_list: list of SecurityGroup object
+
+ """
+ self.security_group_refs = ref_obj_list
+ #end set_security_group_list
+
+ def get_security_group_refs(self):
+ """Return security-group list for virtual-machine-interface.
+
+ :returns: list of <SecurityGroup>
+
+ """
+ return getattr(self, 'security_group_refs', None)
+ #end get_security_group_refs
+
+ def set_virtual_machine_interface(self, ref_obj):
+ """Set virtual-machine-interface for virtual-machine-interface.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_machine_interface_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_machine_interface
+
+ def add_virtual_machine_interface(self, ref_obj):
+ """Add virtual-machine-interface to virtual-machine-interface.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ refs = getattr(self, 'virtual_machine_interface_refs', [])
+ if not refs:
+ self.virtual_machine_interface_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_machine_interface_refs.append(ref_info)
+ #end add_virtual_machine_interface
+
+ def del_virtual_machine_interface(self, ref_obj):
+ refs = self.get_virtual_machine_interface_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_machine_interface_refs.remove(ref)
+ return
+ #end del_virtual_machine_interface
+
+ def set_virtual_machine_interface_list(self, ref_obj_list):
+ """Set virtual-machine-interface list for virtual-machine-interface.
+
+ :param ref_obj_list: list of VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = ref_obj_list
+ #end set_virtual_machine_interface_list
+
+ def get_virtual_machine_interface_refs(self):
+ """Return virtual-machine-interface list for virtual-machine-interface.
+
+ :returns: list of <VirtualMachineInterface>
+
+ """
+ return getattr(self, 'virtual_machine_interface_refs', None)
+ #end get_virtual_machine_interface_refs
+
+ def set_virtual_machine(self, ref_obj):
+ """Set virtual-machine for virtual-machine-interface.
+
+ :param ref_obj: VirtualMachine object
+
+ """
+ self.virtual_machine_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_machine_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_machine
+
+ def add_virtual_machine(self, ref_obj):
+ """Add virtual-machine to virtual-machine-interface.
+
+ :param ref_obj: VirtualMachine object
+
+ """
+ refs = getattr(self, 'virtual_machine_refs', [])
+ if not refs:
+ self.virtual_machine_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_machine_refs.append(ref_info)
+ #end add_virtual_machine
+
+ def del_virtual_machine(self, ref_obj):
+ refs = self.get_virtual_machine_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_machine_refs.remove(ref)
+ return
+ #end del_virtual_machine
+
+ def set_virtual_machine_list(self, ref_obj_list):
+ """Set virtual-machine list for virtual-machine-interface.
+
+ :param ref_obj_list: list of VirtualMachine object
+
+ """
+ self.virtual_machine_refs = ref_obj_list
+ #end set_virtual_machine_list
+
+ def get_virtual_machine_refs(self):
+ """Return virtual-machine list for virtual-machine-interface.
+
+ :returns: list of <VirtualMachine>
+
+ """
+ return getattr(self, 'virtual_machine_refs', None)
+ #end get_virtual_machine_refs
+
+ def set_virtual_network(self, ref_obj):
+ """Set virtual-network for virtual-machine-interface.
+
+ :param ref_obj: VirtualNetwork object
+
+ """
+ self.virtual_network_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_network_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_network
+
+ def add_virtual_network(self, ref_obj):
+ """Add virtual-network to virtual-machine-interface.
+
+ :param ref_obj: VirtualNetwork object
+
+ """
+ refs = getattr(self, 'virtual_network_refs', [])
+ if not refs:
+ self.virtual_network_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_network_refs.append(ref_info)
+ #end add_virtual_network
+
+ def del_virtual_network(self, ref_obj):
+ refs = self.get_virtual_network_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_network_refs.remove(ref)
+ return
+ #end del_virtual_network
+
+ def set_virtual_network_list(self, ref_obj_list):
+ """Set virtual-network list for virtual-machine-interface.
+
+ :param ref_obj_list: list of VirtualNetwork object
+
+ """
+ self.virtual_network_refs = ref_obj_list
+ #end set_virtual_network_list
+
+ def get_virtual_network_refs(self):
+ """Return virtual-network list for virtual-machine-interface.
+
+ :returns: list of <VirtualNetwork>
+
+ """
+ return getattr(self, 'virtual_network_refs', None)
+ #end get_virtual_network_refs
+
+ def set_routing_instance(self, ref_obj, ref_data):
+ """Set routing-instance for virtual-machine-interface.
+
+ :param ref_obj: RoutingInstance object
+ :param ref_data: PolicyBasedForwardingRuleType object
+
+ """
+ self.routing_instance_refs = [{'to':ref_obj.get_fq_name(), 'attr':ref_data}]
+ if ref_obj.uuid:
+ self.routing_instance_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_routing_instance
+
+ def add_routing_instance(self, ref_obj, ref_data):
+ """Add routing-instance to virtual-machine-interface.
+
+ :param ref_obj: RoutingInstance object
+ :param ref_data: PolicyBasedForwardingRuleType object
+
+ """
+ refs = getattr(self, 'routing_instance_refs', [])
+ if not refs:
+ self.routing_instance_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name(), 'attr':ref_data}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name(), 'attr':ref_data}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.routing_instance_refs.append(ref_info)
+ #end add_routing_instance
+
+ def del_routing_instance(self, ref_obj):
+ refs = self.get_routing_instance_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.routing_instance_refs.remove(ref)
+ return
+ #end del_routing_instance
+
+ def set_routing_instance_list(self, ref_obj_list, ref_data_list):
+ """Set routing-instance list for virtual-machine-interface.
+
+ :param ref_obj_list: list of RoutingInstance object
+ :param ref_data_list: list of PolicyBasedForwardingRuleType object
+
+ """
+ self.routing_instance_refs = [{'to':ref_obj_list[i], 'attr':ref_data_list[i]} for i in range(len(ref_obj_list))]
+ #end set_routing_instance_list
+
+ def get_routing_instance_refs(self):
+ """Return routing-instance list for virtual-machine-interface.
+
+ :returns: list of tuple <RoutingInstance, PolicyBasedForwardingRuleType>
+
+ """
+ return getattr(self, 'routing_instance_refs', None)
+ #end get_routing_instance_refs
+
+ def set_interface_route_table(self, ref_obj):
+ """Set interface-route-table for virtual-machine-interface.
+
+ :param ref_obj: InterfaceRouteTable object
+
+ """
+ self.interface_route_table_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.interface_route_table_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_interface_route_table
+
+ def add_interface_route_table(self, ref_obj):
+ """Add interface-route-table to virtual-machine-interface.
+
+ :param ref_obj: InterfaceRouteTable object
+
+ """
+ refs = getattr(self, 'interface_route_table_refs', [])
+ if not refs:
+ self.interface_route_table_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.interface_route_table_refs.append(ref_info)
+ #end add_interface_route_table
+
+ def del_interface_route_table(self, ref_obj):
+ refs = self.get_interface_route_table_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.interface_route_table_refs.remove(ref)
+ return
+ #end del_interface_route_table
+
+ def set_interface_route_table_list(self, ref_obj_list):
+ """Set interface-route-table list for virtual-machine-interface.
+
+ :param ref_obj_list: list of InterfaceRouteTable object
+
+ """
+ self.interface_route_table_refs = ref_obj_list
+ #end set_interface_route_table_list
+
+ def get_interface_route_table_refs(self):
+ """Return interface-route-table list for virtual-machine-interface.
+
+ :returns: list of <InterfaceRouteTable>
+
+ """
+ return getattr(self, 'interface_route_table_refs', None)
+ #end get_interface_route_table_refs
+
+ def get_virtual_machine_interface_back_refs(self):
+ """Return list of all virtual-machine-interfaces using this virtual-machine-interface"""
+ return getattr(self, 'virtual_machine_interface_back_refs', None)
+ #end get_virtual_machine_interface_back_refs
+
+ def get_virtual_machine_back_refs(self):
+ """Return list of all virtual-machines using this virtual-machine-interface"""
+ return getattr(self, 'virtual_machine_back_refs', None)
+ #end get_virtual_machine_back_refs
+
+ def get_project_back_refs(self):
+ """Return list of all projects using this virtual-machine-interface"""
+ return getattr(self, 'project_back_refs', None)
+ #end get_project_back_refs
+
+ def get_instance_ip_back_refs(self):
+ """Return list of all instance-ips using this virtual-machine-interface"""
+ return getattr(self, 'instance_ip_back_refs', None)
+ #end get_instance_ip_back_refs
+
+ def get_subnet_back_refs(self):
+ """Return list of all subnets using this virtual-machine-interface"""
+ return getattr(self, 'subnet_back_refs', None)
+ #end get_subnet_back_refs
+
+ def get_floating_ip_back_refs(self):
+ """Return list of all floating-ips using this virtual-machine-interface"""
+ return getattr(self, 'floating_ip_back_refs', None)
+ #end get_floating_ip_back_refs
+
+ def get_logical_interface_back_refs(self):
+ """Return list of all logical-interfaces using this virtual-machine-interface"""
+ return getattr(self, 'logical_interface_back_refs', None)
+ #end get_logical_interface_back_refs
+
+ def get_customer_attachment_back_refs(self):
+ """Return list of all customer-attachments using this virtual-machine-interface"""
+ return getattr(self, 'customer_attachment_back_refs', None)
+ #end get_customer_attachment_back_refs
+
+ def get_logical_router_back_refs(self):
+ """Return list of all logical-routers using this virtual-machine-interface"""
+ return getattr(self, 'logical_router_back_refs', None)
+ #end get_logical_router_back_refs
+
+ def get_loadbalancer_pool_back_refs(self):
+ """Return list of all loadbalancer-pools using this virtual-machine-interface"""
+ return getattr(self, 'loadbalancer_pool_back_refs', None)
+ #end get_loadbalancer_pool_back_refs
+
+ def get_virtual_ip_back_refs(self):
+ """Return list of all virtual-ips using this virtual-machine-interface"""
+ return getattr(self, 'virtual_ip_back_refs', None)
+ #end get_virtual_ip_back_refs
+
+ def dump(self):
+ """Display virtual-machine-interface object in compact form."""
+ print '------------ virtual-machine-interface ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P virtual_machine_interface_mac_addresses = ', self.get_virtual_machine_interface_mac_addresses()
+ print 'P virtual_machine_interface_dhcp_option_list = ', self.get_virtual_machine_interface_dhcp_option_list()
+ print 'P virtual_machine_interface_host_routes = ', self.get_virtual_machine_interface_host_routes()
+ print 'P virtual_machine_interface_allowed_address_pairs = ', self.get_virtual_machine_interface_allowed_address_pairs()
+ print 'P vrf_assign_table = ', self.get_vrf_assign_table()
+ print 'P virtual_machine_interface_device_owner = ', self.get_virtual_machine_interface_device_owner()
+ print 'P virtual_machine_interface_properties = ', self.get_virtual_machine_interface_properties()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF qos_forwarding_class = ', self.get_qos_forwarding_class_refs()
+ print 'REF security_group = ', self.get_security_group_refs()
+ print 'REF virtual_machine_interface = ', self.get_virtual_machine_interface_refs()
+ print 'REF virtual_machine = ', self.get_virtual_machine_refs()
+ print 'REF virtual_network = ', self.get_virtual_network_refs()
+ print 'REF routing_instance = ', self.get_routing_instance_refs()
+ print 'REF interface_route_table = ', self.get_interface_route_table_refs()
+ print 'BCK virtual_machine_interface = ', self.get_virtual_machine_interface_back_refs()
+ print 'BCK instance_ip = ', self.get_instance_ip_back_refs()
+ print 'BCK subnet = ', self.get_subnet_back_refs()
+ print 'BCK floating_ip = ', self.get_floating_ip_back_refs()
+ print 'BCK logical_interface = ', self.get_logical_interface_back_refs()
+ print 'BCK customer_attachment = ', self.get_customer_attachment_back_refs()
+ print 'BCK logical_router = ', self.get_logical_router_back_refs()
+ print 'BCK loadbalancer_pool = ', self.get_loadbalancer_pool_back_refs()
+ print 'BCK virtual_ip = ', self.get_virtual_ip_back_refs()
+ #end dump
+
+#end class VirtualMachineInterface
+
+class LoadbalancerHealthmonitor(object):
+ """
+ Represents loadbalancer-healthmonitor configuration representation.
+
+ Child of:
+ :class:`.Project` object OR
+
+ Properties:
+ * loadbalancer-healthmonitor-properties (:class:`.LoadbalancerHealthmonitorType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+
+ Referred by:
+ * list of :class:`.LoadbalancerPool` objects
+ """
+
+ prop_fields = set([u'loadbalancer_healthmonitor_properties', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'project_back_refs', u'loadbalancer_pool_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, loadbalancer_healthmonitor_properties = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'loadbalancer-healthmonitor'
+ if not name:
+ name = u'default-loadbalancer-healthmonitor'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'project'
+ self.fq_name = [u'default-domain', u'default-project']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if loadbalancer_healthmonitor_properties:
+ self._loadbalancer_healthmonitor_properties = loadbalancer_healthmonitor_properties
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (loadbalancer-healthmonitor)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of loadbalancer-healthmonitor in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of loadbalancer-healthmonitor as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of loadbalancer-healthmonitor's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of loadbalancer-healthmonitor's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def loadbalancer_healthmonitor_properties(self):
+ """Get loadbalancer-healthmonitor-properties for loadbalancer-healthmonitor.
+
+ :returns: LoadbalancerHealthmonitorType object
+
+ """
+ return getattr(self, '_loadbalancer_healthmonitor_properties', None)
+ #end loadbalancer_healthmonitor_properties
+
+ @loadbalancer_healthmonitor_properties.setter
+ def loadbalancer_healthmonitor_properties(self, loadbalancer_healthmonitor_properties):
+ """Set loadbalancer-healthmonitor-properties for loadbalancer-healthmonitor.
+
+ :param loadbalancer_healthmonitor_properties: LoadbalancerHealthmonitorType object
+
+ """
+ self._loadbalancer_healthmonitor_properties = loadbalancer_healthmonitor_properties
+ #end loadbalancer_healthmonitor_properties
+
+ def set_loadbalancer_healthmonitor_properties(self, value):
+ self.loadbalancer_healthmonitor_properties = value
+ #end set_loadbalancer_healthmonitor_properties
+
+ def get_loadbalancer_healthmonitor_properties(self):
+ return self.loadbalancer_healthmonitor_properties
+ #end get_loadbalancer_healthmonitor_properties
+
+ @property
+ def id_perms(self):
+ """Get id-perms for loadbalancer-healthmonitor.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for loadbalancer-healthmonitor.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for loadbalancer-healthmonitor.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for loadbalancer-healthmonitor.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_loadbalancer_healthmonitor_properties'):
+ self._serialize_field_to_json(serialized, field_names, 'loadbalancer_healthmonitor_properties')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_project_back_refs(self):
+ """Return list of all projects using this loadbalancer-healthmonitor"""
+ return getattr(self, 'project_back_refs', None)
+ #end get_project_back_refs
+
+ def get_loadbalancer_pool_back_refs(self):
+ """Return list of all loadbalancer-pools using this loadbalancer-healthmonitor"""
+ return getattr(self, 'loadbalancer_pool_back_refs', None)
+ #end get_loadbalancer_pool_back_refs
+
+ def dump(self):
+ """Display loadbalancer-healthmonitor object in compact form."""
+ print '------------ loadbalancer-healthmonitor ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P loadbalancer_healthmonitor_properties = ', self.get_loadbalancer_healthmonitor_properties()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'BCK loadbalancer_pool = ', self.get_loadbalancer_pool_back_refs()
+ #end dump
+
+#end class LoadbalancerHealthmonitor
+
+class VirtualNetwork(object):
+ """
+ Represents virtual-network configuration representation.
+
+ Child of:
+ :class:`.Project` object OR
+
+ Properties:
+ * virtual-network-properties (:class:`.VirtualNetworkType` type)
+ * virtual-network-network-id (xsd:integer type)
+ * route-target-list (:class:`.RouteTargetList` type)
+ * router-external (xsd:boolean type)
+ * is-shared (xsd:boolean type)
+ * external-ipam (xsd:boolean type)
+ * flood-unknown-unicast (xsd:boolean type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+ * list of :class:`.AccessControlList` objects
+ * list of :class:`.FloatingIpPool` objects
+ * list of :class:`.RoutingInstance` objects
+
+ References to:
+ * list of :class:`.QosForwardingClass` objects
+ * list of (:class:`.NetworkIpam` object, :class:`.VnSubnetsType` attribute)
+ * list of (:class:`.NetworkPolicy` object, :class:`.VirtualNetworkPolicyType` attribute)
+ * list of :class:`.RouteTable` objects
+
+ Referred by:
+ * list of :class:`.VirtualMachineInterface` objects
+ * list of :class:`.InstanceIp` objects
+ * list of :class:`.PhysicalRouter` objects
+ * list of :class:`.LogicalRouter` objects
+ """
+
+ prop_fields = set([u'virtual_network_properties', u'virtual_network_network_id', u'route_target_list', u'router_external', u'is_shared', u'external_ipam', u'flood_unknown_unicast', u'id_perms', u'display_name'])
+ ref_fields = set([u'qos_forwarding_class_refs', u'network_ipam_refs', u'network_policy_refs', u'route_table_refs'])
+ backref_fields = set([u'project_back_refs', 'virtual_machine_interface_back_refs', u'instance_ip_back_refs', u'physical_router_back_refs', u'logical_router_back_refs'])
+ children_fields = set([u'access_control_lists', u'floating_ip_pools', 'routing_instances'])
+
+ def __init__(self, name = None, parent_obj = None, virtual_network_properties = None, virtual_network_network_id = None, route_target_list = None, router_external = None, is_shared = None, external_ipam = None, flood_unknown_unicast = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'virtual-network'
+ if not name:
+ name = u'default-virtual-network'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'project'
+ self.fq_name = [u'default-domain', u'default-project']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if virtual_network_properties:
+ self._virtual_network_properties = virtual_network_properties
+ if virtual_network_network_id:
+ self._virtual_network_network_id = virtual_network_network_id
+ if route_target_list:
+ self._route_target_list = route_target_list
+ if router_external:
+ self._router_external = router_external
+ if is_shared:
+ self._is_shared = is_shared
+ if external_ipam:
+ self._external_ipam = external_ipam
+ if flood_unknown_unicast:
+ self._flood_unknown_unicast = flood_unknown_unicast
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (virtual-network)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of virtual-network in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of virtual-network as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of virtual-network's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of virtual-network's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def virtual_network_properties(self):
+ """Get virtual-network-properties for virtual-network.
+
+ :returns: VirtualNetworkType object
+
+ """
+ return getattr(self, '_virtual_network_properties', None)
+ #end virtual_network_properties
+
+ @virtual_network_properties.setter
+ def virtual_network_properties(self, virtual_network_properties):
+ """Set virtual-network-properties for virtual-network.
+
+ :param virtual_network_properties: VirtualNetworkType object
+
+ """
+ self._virtual_network_properties = virtual_network_properties
+ #end virtual_network_properties
+
+ def set_virtual_network_properties(self, value):
+ self.virtual_network_properties = value
+ #end set_virtual_network_properties
+
+ def get_virtual_network_properties(self):
+ return self.virtual_network_properties
+ #end get_virtual_network_properties
+
+ @property
+ def virtual_network_network_id(self):
+ """Get virtual-network-network-id for virtual-network.
+
+ :returns: xsd:integer object
+
+ """
+ return getattr(self, '_virtual_network_network_id', None)
+ #end virtual_network_network_id
+
+ @virtual_network_network_id.setter
+ def virtual_network_network_id(self, virtual_network_network_id):
+ """Set virtual-network-network-id for virtual-network.
+
+ :param virtual_network_network_id: xsd:integer object
+
+ """
+ self._virtual_network_network_id = virtual_network_network_id
+ #end virtual_network_network_id
+
+ def set_virtual_network_network_id(self, value):
+ self.virtual_network_network_id = value
+ #end set_virtual_network_network_id
+
+ def get_virtual_network_network_id(self):
+ return self.virtual_network_network_id
+ #end get_virtual_network_network_id
+
+ @property
+ def route_target_list(self):
+ """Get route-target-list for virtual-network.
+
+ :returns: RouteTargetList object
+
+ """
+ return getattr(self, '_route_target_list', None)
+ #end route_target_list
+
+ @route_target_list.setter
+ def route_target_list(self, route_target_list):
+ """Set route-target-list for virtual-network.
+
+ :param route_target_list: RouteTargetList object
+
+ """
+ self._route_target_list = route_target_list
+ #end route_target_list
+
+ def set_route_target_list(self, value):
+ self.route_target_list = value
+ #end set_route_target_list
+
+ def get_route_target_list(self):
+ return self.route_target_list
+ #end get_route_target_list
+
+ @property
+ def router_external(self):
+ """Get router-external for virtual-network.
+
+ :returns: xsd:boolean object
+
+ """
+ return getattr(self, '_router_external', None)
+ #end router_external
+
+ @router_external.setter
+ def router_external(self, router_external):
+ """Set router-external for virtual-network.
+
+ :param router_external: xsd:boolean object
+
+ """
+ self._router_external = router_external
+ #end router_external
+
+ def set_router_external(self, value):
+ self.router_external = value
+ #end set_router_external
+
+ def get_router_external(self):
+ return self.router_external
+ #end get_router_external
+
+ @property
+ def is_shared(self):
+ """Get is-shared for virtual-network.
+
+ :returns: xsd:boolean object
+
+ """
+ return getattr(self, '_is_shared', None)
+ #end is_shared
+
+ @is_shared.setter
+ def is_shared(self, is_shared):
+ """Set is-shared for virtual-network.
+
+ :param is_shared: xsd:boolean object
+
+ """
+ self._is_shared = is_shared
+ #end is_shared
+
+ def set_is_shared(self, value):
+ self.is_shared = value
+ #end set_is_shared
+
+ def get_is_shared(self):
+ return self.is_shared
+ #end get_is_shared
+
+ @property
+ def external_ipam(self):
+ """Get external-ipam for virtual-network.
+
+ :returns: xsd:boolean object
+
+ """
+ return getattr(self, '_external_ipam', None)
+ #end external_ipam
+
+ @external_ipam.setter
+ def external_ipam(self, external_ipam):
+ """Set external-ipam for virtual-network.
+
+ :param external_ipam: xsd:boolean object
+
+ """
+ self._external_ipam = external_ipam
+ #end external_ipam
+
+ def set_external_ipam(self, value):
+ self.external_ipam = value
+ #end set_external_ipam
+
+ def get_external_ipam(self):
+ return self.external_ipam
+ #end get_external_ipam
+
+ @property
+ def flood_unknown_unicast(self):
+ """Get flood-unknown-unicast for virtual-network.
+
+ :returns: xsd:boolean object
+
+ """
+ return getattr(self, '_flood_unknown_unicast', None)
+ #end flood_unknown_unicast
+
+ @flood_unknown_unicast.setter
+ def flood_unknown_unicast(self, flood_unknown_unicast):
+ """Set flood-unknown-unicast for virtual-network.
+
+ :param flood_unknown_unicast: xsd:boolean object
+
+ """
+ self._flood_unknown_unicast = flood_unknown_unicast
+ #end flood_unknown_unicast
+
+ def set_flood_unknown_unicast(self, value):
+ self.flood_unknown_unicast = value
+ #end set_flood_unknown_unicast
+
+ def get_flood_unknown_unicast(self):
+ return self.flood_unknown_unicast
+ #end get_flood_unknown_unicast
+
+ @property
+ def id_perms(self):
+ """Get id-perms for virtual-network.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for virtual-network.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for virtual-network.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for virtual-network.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_virtual_network_properties'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_network_properties')
+ if hasattr(self, '_virtual_network_network_id'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_network_network_id')
+ if hasattr(self, '_route_target_list'):
+ self._serialize_field_to_json(serialized, field_names, 'route_target_list')
+ if hasattr(self, '_router_external'):
+ self._serialize_field_to_json(serialized, field_names, 'router_external')
+ if hasattr(self, '_is_shared'):
+ self._serialize_field_to_json(serialized, field_names, 'is_shared')
+ if hasattr(self, '_external_ipam'):
+ self._serialize_field_to_json(serialized, field_names, 'external_ipam')
+ if hasattr(self, '_flood_unknown_unicast'):
+ self._serialize_field_to_json(serialized, field_names, 'flood_unknown_unicast')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'qos_forwarding_class_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'qos_forwarding_class_refs')
+ if hasattr(self, 'network_ipam_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'network_ipam_refs')
+ if hasattr(self, 'network_policy_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'network_policy_refs')
+ if hasattr(self, 'route_table_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'route_table_refs')
+ return serialized
+ #end serialize_to_json
+
+ def get_access_control_lists(self):
+ return getattr(self, 'access_control_lists', None)
+ #end get_access_control_lists
+
+ def get_floating_ip_pools(self):
+ return getattr(self, 'floating_ip_pools', None)
+ #end get_floating_ip_pools
+
+ def get_routing_instances(self):
+ return getattr(self, 'routing_instances', None)
+ #end get_routing_instances
+
+ def set_qos_forwarding_class(self, ref_obj):
+ """Set qos-forwarding-class for virtual-network.
+
+ :param ref_obj: QosForwardingClass object
+
+ """
+ self.qos_forwarding_class_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.qos_forwarding_class_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_qos_forwarding_class
+
+ def add_qos_forwarding_class(self, ref_obj):
+ """Add qos-forwarding-class to virtual-network.
+
+ :param ref_obj: QosForwardingClass object
+
+ """
+ refs = getattr(self, 'qos_forwarding_class_refs', [])
+ if not refs:
+ self.qos_forwarding_class_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.qos_forwarding_class_refs.append(ref_info)
+ #end add_qos_forwarding_class
+
+ def del_qos_forwarding_class(self, ref_obj):
+ refs = self.get_qos_forwarding_class_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.qos_forwarding_class_refs.remove(ref)
+ return
+ #end del_qos_forwarding_class
+
+ def set_qos_forwarding_class_list(self, ref_obj_list):
+ """Set qos-forwarding-class list for virtual-network.
+
+ :param ref_obj_list: list of QosForwardingClass object
+
+ """
+ self.qos_forwarding_class_refs = ref_obj_list
+ #end set_qos_forwarding_class_list
+
+ def get_qos_forwarding_class_refs(self):
+ """Return qos-forwarding-class list for virtual-network.
+
+ :returns: list of <QosForwardingClass>
+
+ """
+ return getattr(self, 'qos_forwarding_class_refs', None)
+ #end get_qos_forwarding_class_refs
+
+ def set_network_ipam(self, ref_obj, ref_data):
+ """Set network-ipam for virtual-network.
+
+ :param ref_obj: NetworkIpam object
+ :param ref_data: VnSubnetsType object
+
+ """
+ self.network_ipam_refs = [{'to':ref_obj.get_fq_name(), 'attr':ref_data}]
+ if ref_obj.uuid:
+ self.network_ipam_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_network_ipam
+
+ def add_network_ipam(self, ref_obj, ref_data):
+ """Add network-ipam to virtual-network.
+
+ :param ref_obj: NetworkIpam object
+ :param ref_data: VnSubnetsType object
+
+ """
+ refs = getattr(self, 'network_ipam_refs', [])
+ if not refs:
+ self.network_ipam_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name(), 'attr':ref_data}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name(), 'attr':ref_data}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.network_ipam_refs.append(ref_info)
+ #end add_network_ipam
+
+ def del_network_ipam(self, ref_obj):
+ refs = self.get_network_ipam_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.network_ipam_refs.remove(ref)
+ return
+ #end del_network_ipam
+
+ def set_network_ipam_list(self, ref_obj_list, ref_data_list):
+ """Set network-ipam list for virtual-network.
+
+ :param ref_obj_list: list of NetworkIpam object
+ :param ref_data_list: list of VnSubnetsType object
+
+ """
+ self.network_ipam_refs = [{'to':ref_obj_list[i], 'attr':ref_data_list[i]} for i in range(len(ref_obj_list))]
+ #end set_network_ipam_list
+
+ def get_network_ipam_refs(self):
+ """Return network-ipam list for virtual-network.
+
+ :returns: list of tuple <NetworkIpam, VnSubnetsType>
+
+ """
+ return getattr(self, 'network_ipam_refs', None)
+ #end get_network_ipam_refs
+
+ def set_network_policy(self, ref_obj, ref_data):
+ """Set network-policy for virtual-network.
+
+ :param ref_obj: NetworkPolicy object
+ :param ref_data: VirtualNetworkPolicyType object
+
+ """
+ self.network_policy_refs = [{'to':ref_obj.get_fq_name(), 'attr':ref_data}]
+ if ref_obj.uuid:
+ self.network_policy_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_network_policy
+
+ def add_network_policy(self, ref_obj, ref_data):
+ """Add network-policy to virtual-network.
+
+ :param ref_obj: NetworkPolicy object
+ :param ref_data: VirtualNetworkPolicyType object
+
+ """
+ refs = getattr(self, 'network_policy_refs', [])
+ if not refs:
+ self.network_policy_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name(), 'attr':ref_data}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name(), 'attr':ref_data}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.network_policy_refs.append(ref_info)
+ #end add_network_policy
+
+ def del_network_policy(self, ref_obj):
+ refs = self.get_network_policy_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.network_policy_refs.remove(ref)
+ return
+ #end del_network_policy
+
+ def set_network_policy_list(self, ref_obj_list, ref_data_list):
+ """Set network-policy list for virtual-network.
+
+ :param ref_obj_list: list of NetworkPolicy object
+ :param ref_data_list: list of VirtualNetworkPolicyType object
+
+ """
+ self.network_policy_refs = [{'to':ref_obj_list[i], 'attr':ref_data_list[i]} for i in range(len(ref_obj_list))]
+ #end set_network_policy_list
+
+ def get_network_policy_refs(self):
+ """Return network-policy list for virtual-network.
+
+ :returns: list of tuple <NetworkPolicy, VirtualNetworkPolicyType>
+
+ """
+ return getattr(self, 'network_policy_refs', None)
+ #end get_network_policy_refs
+
+ def set_route_table(self, ref_obj):
+ """Set route-table for virtual-network.
+
+ :param ref_obj: RouteTable object
+
+ """
+ self.route_table_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.route_table_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_route_table
+
+ def add_route_table(self, ref_obj):
+ """Add route-table to virtual-network.
+
+ :param ref_obj: RouteTable object
+
+ """
+ refs = getattr(self, 'route_table_refs', [])
+ if not refs:
+ self.route_table_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.route_table_refs.append(ref_info)
+ #end add_route_table
+
+ def del_route_table(self, ref_obj):
+ refs = self.get_route_table_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.route_table_refs.remove(ref)
+ return
+ #end del_route_table
+
+ def set_route_table_list(self, ref_obj_list):
+ """Set route-table list for virtual-network.
+
+ :param ref_obj_list: list of RouteTable object
+
+ """
+ self.route_table_refs = ref_obj_list
+ #end set_route_table_list
+
+ def get_route_table_refs(self):
+ """Return route-table list for virtual-network.
+
+ :returns: list of <RouteTable>
+
+ """
+ return getattr(self, 'route_table_refs', None)
+ #end get_route_table_refs
+
+ def get_project_back_refs(self):
+ """Return list of all projects using this virtual-network"""
+ return getattr(self, 'project_back_refs', None)
+ #end get_project_back_refs
+
+ def get_virtual_machine_interface_back_refs(self):
+ """Return list of all virtual-machine-interfaces using this virtual-network"""
+ return getattr(self, 'virtual_machine_interface_back_refs', None)
+ #end get_virtual_machine_interface_back_refs
+
+ def get_instance_ip_back_refs(self):
+ """Return list of all instance-ips using this virtual-network"""
+ return getattr(self, 'instance_ip_back_refs', None)
+ #end get_instance_ip_back_refs
+
+ def get_physical_router_back_refs(self):
+ """Return list of all physical-routers using this virtual-network"""
+ return getattr(self, 'physical_router_back_refs', None)
+ #end get_physical_router_back_refs
+
+ def get_logical_router_back_refs(self):
+ """Return list of all logical-routers using this virtual-network"""
+ return getattr(self, 'logical_router_back_refs', None)
+ #end get_logical_router_back_refs
+
+ def dump(self):
+ """Display virtual-network object in compact form."""
+ print '------------ virtual-network ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P virtual_network_properties = ', self.get_virtual_network_properties()
+ print 'P virtual_network_network_id = ', self.get_virtual_network_network_id()
+ print 'P route_target_list = ', self.get_route_target_list()
+ print 'P router_external = ', self.get_router_external()
+ print 'P is_shared = ', self.get_is_shared()
+ print 'P external_ipam = ', self.get_external_ipam()
+ print 'P flood_unknown_unicast = ', self.get_flood_unknown_unicast()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF qos_forwarding_class = ', self.get_qos_forwarding_class_refs()
+ print 'REF network_ipam = ', self.get_network_ipam_refs()
+ print 'REF network_policy = ', self.get_network_policy_refs()
+ print 'HAS access_control_list = ', self.get_access_control_lists()
+ print 'HAS floating_ip_pool = ', self.get_floating_ip_pools()
+ print 'HAS routing_instance = ', self.get_routing_instances()
+ print 'REF route_table = ', self.get_route_table_refs()
+ print 'BCK virtual_machine_interface = ', self.get_virtual_machine_interface_back_refs()
+ print 'BCK instance_ip = ', self.get_instance_ip_back_refs()
+ print 'BCK physical_router = ', self.get_physical_router_back_refs()
+ print 'BCK logical_router = ', self.get_logical_router_back_refs()
+ #end dump
+
+#end class VirtualNetwork
+
+class Project(object):
+ """
+ Represents project configuration representation.
+
+ Child of:
+ :class:`.Domain` object OR
+
+ Properties:
+ * quota (:class:`.QuotaType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+ * list of :class:`.SecurityGroup` objects
+ * list of :class:`.VirtualNetwork` objects
+ * list of :class:`.QosQueue` objects
+ * list of :class:`.QosForwardingClass` objects
+ * list of :class:`.NetworkIpam` objects
+ * list of :class:`.NetworkPolicy` objects
+ * list of :class:`.VirtualMachineInterface` objects
+ * list of :class:`.ServiceInstance` objects
+ * list of :class:`.RouteTable` objects
+ * list of :class:`.InterfaceRouteTable` objects
+ * list of :class:`.LogicalRouter` objects
+ * list of :class:`.LoadbalancerPool` objects
+ * list of :class:`.LoadbalancerHealthmonitor` objects
+ * list of :class:`.VirtualIp` objects
+
+ References to:
+ * list of (:class:`.Namespace` object, :class:`.SubnetType` attribute)
+ * list of :class:`.FloatingIpPool` objects
+
+ Referred by:
+ * list of :class:`.FloatingIp` objects
+ """
+
+ prop_fields = set([u'quota', u'id_perms', u'display_name'])
+ ref_fields = set([u'namespace_refs', u'floating_ip_pool_refs'])
+ backref_fields = set([u'domain_back_refs', u'floating_ip_back_refs'])
+ children_fields = set([u'security_groups', u'virtual_networks', u'qos_queues', u'qos_forwarding_classs', u'network_ipams', u'network_policys', 'virtual_machine_interfaces', u'service_instances', u'route_tables', u'interface_route_tables', u'logical_routers', u'loadbalancer_pools', u'loadbalancer_healthmonitors', u'virtual_ips'])
+
+ def __init__(self, name = None, parent_obj = None, quota = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'project'
+ if not name:
+ name = u'default-project'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'domain'
+ self.fq_name = [u'default-domain']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if quota:
+ self._quota = quota
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (project)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of project in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of project as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of project's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of project's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def quota(self):
+ """Get quota for project.
+
+ :returns: QuotaType object
+
+ """
+ return getattr(self, '_quota', None)
+ #end quota
+
+ @quota.setter
+ def quota(self, quota):
+ """Set quota for project.
+
+ :param quota: QuotaType object
+
+ """
+ self._quota = quota
+ #end quota
+
+ def set_quota(self, value):
+ self.quota = value
+ #end set_quota
+
+ def get_quota(self):
+ return self.quota
+ #end get_quota
+
+ @property
+ def id_perms(self):
+ """Get id-perms for project.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for project.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for project.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for project.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_quota'):
+ self._serialize_field_to_json(serialized, field_names, 'quota')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'namespace_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'namespace_refs')
+ if hasattr(self, 'floating_ip_pool_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'floating_ip_pool_refs')
+ return serialized
+ #end serialize_to_json
+
+ def get_security_groups(self):
+ return getattr(self, 'security_groups', None)
+ #end get_security_groups
+
+ def get_virtual_networks(self):
+ return getattr(self, 'virtual_networks', None)
+ #end get_virtual_networks
+
+ def get_qos_queues(self):
+ return getattr(self, 'qos_queues', None)
+ #end get_qos_queues
+
+ def get_qos_forwarding_classs(self):
+ return getattr(self, 'qos_forwarding_classs', None)
+ #end get_qos_forwarding_classs
+
+ def get_network_ipams(self):
+ return getattr(self, 'network_ipams', None)
+ #end get_network_ipams
+
+ def get_network_policys(self):
+ return getattr(self, 'network_policys', None)
+ #end get_network_policys
+
+ def get_virtual_machine_interfaces(self):
+ return getattr(self, 'virtual_machine_interfaces', None)
+ #end get_virtual_machine_interfaces
+
+ def get_service_instances(self):
+ return getattr(self, 'service_instances', None)
+ #end get_service_instances
+
+ def get_route_tables(self):
+ return getattr(self, 'route_tables', None)
+ #end get_route_tables
+
+ def get_interface_route_tables(self):
+ return getattr(self, 'interface_route_tables', None)
+ #end get_interface_route_tables
+
+ def get_logical_routers(self):
+ return getattr(self, 'logical_routers', None)
+ #end get_logical_routers
+
+ def get_loadbalancer_pools(self):
+ return getattr(self, 'loadbalancer_pools', None)
+ #end get_loadbalancer_pools
+
+ def get_loadbalancer_healthmonitors(self):
+ return getattr(self, 'loadbalancer_healthmonitors', None)
+ #end get_loadbalancer_healthmonitors
+
+ def get_virtual_ips(self):
+ return getattr(self, 'virtual_ips', None)
+ #end get_virtual_ips
+
+ def set_namespace(self, ref_obj, ref_data):
+ """Set namespace for project.
+
+ :param ref_obj: Namespace object
+ :param ref_data: SubnetType object
+
+ """
+ self.namespace_refs = [{'to':ref_obj.get_fq_name(), 'attr':ref_data}]
+ if ref_obj.uuid:
+ self.namespace_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_namespace
+
+ def add_namespace(self, ref_obj, ref_data):
+ """Add namespace to project.
+
+ :param ref_obj: Namespace object
+ :param ref_data: SubnetType object
+
+ """
+ refs = getattr(self, 'namespace_refs', [])
+ if not refs:
+ self.namespace_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name(), 'attr':ref_data}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name(), 'attr':ref_data}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.namespace_refs.append(ref_info)
+ #end add_namespace
+
+ def del_namespace(self, ref_obj):
+ refs = self.get_namespace_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.namespace_refs.remove(ref)
+ return
+ #end del_namespace
+
+ def set_namespace_list(self, ref_obj_list, ref_data_list):
+ """Set namespace list for project.
+
+ :param ref_obj_list: list of Namespace object
+ :param ref_data_list: list of SubnetType object
+
+ """
+ self.namespace_refs = [{'to':ref_obj_list[i], 'attr':ref_data_list[i]} for i in range(len(ref_obj_list))]
+ #end set_namespace_list
+
+ def get_namespace_refs(self):
+ """Return namespace list for project.
+
+ :returns: list of tuple <Namespace, SubnetType>
+
+ """
+ return getattr(self, 'namespace_refs', None)
+ #end get_namespace_refs
+
+ def set_floating_ip_pool(self, ref_obj):
+ """Set floating-ip-pool for project.
+
+ :param ref_obj: FloatingIpPool object
+
+ """
+ self.floating_ip_pool_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.floating_ip_pool_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_floating_ip_pool
+
+ def add_floating_ip_pool(self, ref_obj):
+ """Add floating-ip-pool to project.
+
+ :param ref_obj: FloatingIpPool object
+
+ """
+ refs = getattr(self, 'floating_ip_pool_refs', [])
+ if not refs:
+ self.floating_ip_pool_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.floating_ip_pool_refs.append(ref_info)
+ #end add_floating_ip_pool
+
+ def del_floating_ip_pool(self, ref_obj):
+ refs = self.get_floating_ip_pool_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.floating_ip_pool_refs.remove(ref)
+ return
+ #end del_floating_ip_pool
+
+ def set_floating_ip_pool_list(self, ref_obj_list):
+ """Set floating-ip-pool list for project.
+
+ :param ref_obj_list: list of FloatingIpPool object
+
+ """
+ self.floating_ip_pool_refs = ref_obj_list
+ #end set_floating_ip_pool_list
+
+ def get_floating_ip_pool_refs(self):
+ """Return floating-ip-pool list for project.
+
+ :returns: list of <FloatingIpPool>
+
+ """
+ return getattr(self, 'floating_ip_pool_refs', None)
+ #end get_floating_ip_pool_refs
+
+ def get_domain_back_refs(self):
+ """Return list of all domains using this project"""
+ return getattr(self, 'domain_back_refs', None)
+ #end get_domain_back_refs
+
+ def get_floating_ip_back_refs(self):
+ """Return list of all floating-ips using this project"""
+ return getattr(self, 'floating_ip_back_refs', None)
+ #end get_floating_ip_back_refs
+
+ def dump(self):
+ """Display project object in compact form."""
+ print '------------ project ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P quota = ', self.get_quota()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF namespace = ', self.get_namespace_refs()
+ print 'HAS security_group = ', self.get_security_groups()
+ print 'HAS virtual_network = ', self.get_virtual_networks()
+ print 'HAS qos_queue = ', self.get_qos_queues()
+ print 'HAS qos_forwarding_class = ', self.get_qos_forwarding_classs()
+ print 'HAS network_ipam = ', self.get_network_ipams()
+ print 'HAS network_policy = ', self.get_network_policys()
+ print 'HAS virtual_machine_interface = ', self.get_virtual_machine_interfaces()
+ print 'REF floating_ip_pool = ', self.get_floating_ip_pool_refs()
+ print 'HAS service_instance = ', self.get_service_instances()
+ print 'HAS route_table = ', self.get_route_tables()
+ print 'HAS interface_route_table = ', self.get_interface_route_tables()
+ print 'HAS logical_router = ', self.get_logical_routers()
+ print 'HAS loadbalancer_pool = ', self.get_loadbalancer_pools()
+ print 'HAS loadbalancer_healthmonitor = ', self.get_loadbalancer_healthmonitors()
+ print 'HAS virtual_ip = ', self.get_virtual_ips()
+ print 'BCK floating_ip = ', self.get_floating_ip_back_refs()
+ #end dump
+
+#end class Project
+
+class QosForwardingClass(object):
+ """
+ Represents qos-forwarding-class configuration representation.
+
+ Child of:
+ :class:`.Project` object OR
+
+ Properties:
+ * dscp (xsd:integer type)
+ * trusted (xsd:boolean type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+ * list of :class:`.QosQueue` objects
+
+ Referred by:
+ * list of :class:`.VirtualNetwork` objects
+ * list of :class:`.VirtualMachineInterface` objects
+ """
+
+ prop_fields = set([u'dscp', u'trusted', u'id_perms', u'display_name'])
+ ref_fields = set([u'qos_queue_refs'])
+ backref_fields = set([u'project_back_refs', u'virtual_network_back_refs', 'virtual_machine_interface_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, dscp = None, trusted = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'qos-forwarding-class'
+ if not name:
+ name = u'default-qos-forwarding-class'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'project'
+ self.fq_name = [u'default-domain', u'default-project']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if dscp:
+ self._dscp = dscp
+ if trusted:
+ self._trusted = trusted
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (qos-forwarding-class)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of qos-forwarding-class in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of qos-forwarding-class as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of qos-forwarding-class's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of qos-forwarding-class's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def dscp(self):
+ """Get dscp for qos-forwarding-class.
+
+ :returns: xsd:integer object
+
+ """
+ return getattr(self, '_dscp', None)
+ #end dscp
+
+ @dscp.setter
+ def dscp(self, dscp):
+ """Set dscp for qos-forwarding-class.
+
+ :param dscp: xsd:integer object
+
+ """
+ self._dscp = dscp
+ #end dscp
+
+ def set_dscp(self, value):
+ self.dscp = value
+ #end set_dscp
+
+ def get_dscp(self):
+ return self.dscp
+ #end get_dscp
+
+ @property
+ def trusted(self):
+ """Get trusted for qos-forwarding-class.
+
+ :returns: xsd:boolean object
+
+ """
+ return getattr(self, '_trusted', None)
+ #end trusted
+
+ @trusted.setter
+ def trusted(self, trusted):
+ """Set trusted for qos-forwarding-class.
+
+ :param trusted: xsd:boolean object
+
+ """
+ self._trusted = trusted
+ #end trusted
+
+ def set_trusted(self, value):
+ self.trusted = value
+ #end set_trusted
+
+ def get_trusted(self):
+ return self.trusted
+ #end get_trusted
+
+ @property
+ def id_perms(self):
+ """Get id-perms for qos-forwarding-class.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for qos-forwarding-class.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for qos-forwarding-class.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for qos-forwarding-class.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_dscp'):
+ self._serialize_field_to_json(serialized, field_names, 'dscp')
+ if hasattr(self, '_trusted'):
+ self._serialize_field_to_json(serialized, field_names, 'trusted')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'qos_queue_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'qos_queue_refs')
+ return serialized
+ #end serialize_to_json
+
+ def set_qos_queue(self, ref_obj):
+ """Set qos-queue for qos-forwarding-class.
+
+ :param ref_obj: QosQueue object
+
+ """
+ self.qos_queue_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.qos_queue_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_qos_queue
+
+ def add_qos_queue(self, ref_obj):
+ """Add qos-queue to qos-forwarding-class.
+
+ :param ref_obj: QosQueue object
+
+ """
+ refs = getattr(self, 'qos_queue_refs', [])
+ if not refs:
+ self.qos_queue_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.qos_queue_refs.append(ref_info)
+ #end add_qos_queue
+
+ def del_qos_queue(self, ref_obj):
+ refs = self.get_qos_queue_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.qos_queue_refs.remove(ref)
+ return
+ #end del_qos_queue
+
+ def set_qos_queue_list(self, ref_obj_list):
+ """Set qos-queue list for qos-forwarding-class.
+
+ :param ref_obj_list: list of QosQueue object
+
+ """
+ self.qos_queue_refs = ref_obj_list
+ #end set_qos_queue_list
+
+ def get_qos_queue_refs(self):
+ """Return qos-queue list for qos-forwarding-class.
+
+ :returns: list of <QosQueue>
+
+ """
+ return getattr(self, 'qos_queue_refs', None)
+ #end get_qos_queue_refs
+
+ def get_project_back_refs(self):
+ """Return list of all projects using this qos-forwarding-class"""
+ return getattr(self, 'project_back_refs', None)
+ #end get_project_back_refs
+
+ def get_virtual_network_back_refs(self):
+ """Return list of all virtual-networks using this qos-forwarding-class"""
+ return getattr(self, 'virtual_network_back_refs', None)
+ #end get_virtual_network_back_refs
+
+ def get_virtual_machine_interface_back_refs(self):
+ """Return list of all virtual-machine-interfaces using this qos-forwarding-class"""
+ return getattr(self, 'virtual_machine_interface_back_refs', None)
+ #end get_virtual_machine_interface_back_refs
+
+ def dump(self):
+ """Display qos-forwarding-class object in compact form."""
+ print '------------ qos-forwarding-class ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P dscp = ', self.get_dscp()
+ print 'P trusted = ', self.get_trusted()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF qos_queue = ', self.get_qos_queue_refs()
+ print 'BCK virtual_network = ', self.get_virtual_network_back_refs()
+ print 'BCK virtual_machine_interface = ', self.get_virtual_machine_interface_back_refs()
+ #end dump
+
+#end class QosForwardingClass
+
+class DatabaseNode(object):
+ """
+ Represents database-node configuration representation.
+
+ Child of:
+ :class:`.GlobalSystemConfig` object OR
+
+ Properties:
+ * database-node-ip-address (IpAddressType type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+
+ Referred by:
+ """
+
+ prop_fields = set([u'database_node_ip_address', u'id_perms', u'display_name'])
+ ref_fields = set([])
+ backref_fields = set([u'global_system_config_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, database_node_ip_address = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'database-node'
+ if not name:
+ name = u'default-database-node'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'global-system-config'
+ self.fq_name = [u'default-global-system-config']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if database_node_ip_address:
+ self._database_node_ip_address = database_node_ip_address
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (database-node)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of database-node in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of database-node as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of database-node's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of database-node's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def database_node_ip_address(self):
+ """Get database-node-ip-address for database-node.
+
+ :returns: IpAddressType object
+
+ """
+ return getattr(self, '_database_node_ip_address', None)
+ #end database_node_ip_address
+
+ @database_node_ip_address.setter
+ def database_node_ip_address(self, database_node_ip_address):
+ """Set database-node-ip-address for database-node.
+
+ :param database_node_ip_address: IpAddressType object
+
+ """
+ self._database_node_ip_address = database_node_ip_address
+ #end database_node_ip_address
+
+ def set_database_node_ip_address(self, value):
+ self.database_node_ip_address = value
+ #end set_database_node_ip_address
+
+ def get_database_node_ip_address(self):
+ return self.database_node_ip_address
+ #end get_database_node_ip_address
+
+ @property
+ def id_perms(self):
+ """Get id-perms for database-node.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for database-node.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for database-node.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for database-node.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_database_node_ip_address'):
+ self._serialize_field_to_json(serialized, field_names, 'database_node_ip_address')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ return serialized
+ #end serialize_to_json
+
+ def get_global_system_config_back_refs(self):
+ """Return list of all global-system-configs using this database-node"""
+ return getattr(self, 'global_system_config_back_refs', None)
+ #end get_global_system_config_back_refs
+
+ def dump(self):
+ """Display database-node object in compact form."""
+ print '------------ database-node ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P database_node_ip_address = ', self.get_database_node_ip_address()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ #end dump
+
+#end class DatabaseNode
+
+class RoutingInstance(object):
+ """
+ Represents routing-instance configuration representation.
+
+ Child of:
+ :class:`.VirtualNetwork` object OR
+
+ Properties:
+ * service-chain-information (:class:`.ServiceChainInfo` type)
+ * routing-instance-is-default (xsd:boolean type)
+ * static-route-entries (:class:`.StaticRouteEntriesType` type)
+ * default-ce-protocol (:class:`.DefaultProtocolType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+ * list of :class:`.BgpRouter` objects
+
+ References to:
+ * list of (:class:`.RoutingInstance` object, :class:`.ConnectionType` attribute)
+ * list of (:class:`.RouteTarget` object, :class:`.InstanceTargetType` attribute)
+
+ Referred by:
+ * list of :class:`.VirtualMachineInterface` objects
+ * list of :class:`.RoutingInstance` objects
+ """
+
+ prop_fields = set([u'service_chain_information', u'routing_instance_is_default', u'static_route_entries', u'default_ce_protocol', u'id_perms', u'display_name'])
+ ref_fields = set(['routing_instance_refs', 'route_target_refs'])
+ backref_fields = set(['virtual_machine_interface_back_refs', u'virtual_network_back_refs', 'routing_instance_back_refs', 'customer_attachment_back_refs'])
+ children_fields = set(['bgp_routers'])
+
+ def __init__(self, name = None, parent_obj = None, service_chain_information = None, routing_instance_is_default = None, static_route_entries = None, default_ce_protocol = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'routing-instance'
+ if not name:
+ name = u'default-routing-instance'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'virtual-network'
+ self.fq_name = [u'default-domain', u'default-project', u'default-virtual-network']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if service_chain_information:
+ self._service_chain_information = service_chain_information
+ if routing_instance_is_default:
+ self._routing_instance_is_default = routing_instance_is_default
+ if static_route_entries:
+ self._static_route_entries = static_route_entries
+ if default_ce_protocol:
+ self._default_ce_protocol = default_ce_protocol
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (routing-instance)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of routing-instance in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of routing-instance as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of routing-instance's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of routing-instance's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def service_chain_information(self):
+ """Get service-chain-information for routing-instance.
+
+ :returns: ServiceChainInfo object
+
+ """
+ return getattr(self, '_service_chain_information', None)
+ #end service_chain_information
+
+ @service_chain_information.setter
+ def service_chain_information(self, service_chain_information):
+ """Set service-chain-information for routing-instance.
+
+ :param service_chain_information: ServiceChainInfo object
+
+ """
+ self._service_chain_information = service_chain_information
+ #end service_chain_information
+
+ def set_service_chain_information(self, value):
+ self.service_chain_information = value
+ #end set_service_chain_information
+
+ def get_service_chain_information(self):
+ return self.service_chain_information
+ #end get_service_chain_information
+
+ @property
+ def routing_instance_is_default(self):
+ """Get routing-instance-is-default for routing-instance.
+
+ :returns: xsd:boolean object
+
+ """
+ return getattr(self, '_routing_instance_is_default', None)
+ #end routing_instance_is_default
+
+ @routing_instance_is_default.setter
+ def routing_instance_is_default(self, routing_instance_is_default):
+ """Set routing-instance-is-default for routing-instance.
+
+ :param routing_instance_is_default: xsd:boolean object
+
+ """
+ self._routing_instance_is_default = routing_instance_is_default
+ #end routing_instance_is_default
+
+ def set_routing_instance_is_default(self, value):
+ self.routing_instance_is_default = value
+ #end set_routing_instance_is_default
+
+ def get_routing_instance_is_default(self):
+ return self.routing_instance_is_default
+ #end get_routing_instance_is_default
+
+ @property
+ def static_route_entries(self):
+ """Get static-route-entries for routing-instance.
+
+ :returns: StaticRouteEntriesType object
+
+ """
+ return getattr(self, '_static_route_entries', None)
+ #end static_route_entries
+
+ @static_route_entries.setter
+ def static_route_entries(self, static_route_entries):
+ """Set static-route-entries for routing-instance.
+
+ :param static_route_entries: StaticRouteEntriesType object
+
+ """
+ self._static_route_entries = static_route_entries
+ #end static_route_entries
+
+ def set_static_route_entries(self, value):
+ self.static_route_entries = value
+ #end set_static_route_entries
+
+ def get_static_route_entries(self):
+ return self.static_route_entries
+ #end get_static_route_entries
+
+ @property
+ def default_ce_protocol(self):
+ """Get default-ce-protocol for routing-instance.
+
+ :returns: DefaultProtocolType object
+
+ """
+ return getattr(self, '_default_ce_protocol', None)
+ #end default_ce_protocol
+
+ @default_ce_protocol.setter
+ def default_ce_protocol(self, default_ce_protocol):
+ """Set default-ce-protocol for routing-instance.
+
+ :param default_ce_protocol: DefaultProtocolType object
+
+ """
+ self._default_ce_protocol = default_ce_protocol
+ #end default_ce_protocol
+
+ def set_default_ce_protocol(self, value):
+ self.default_ce_protocol = value
+ #end set_default_ce_protocol
+
+ def get_default_ce_protocol(self):
+ return self.default_ce_protocol
+ #end get_default_ce_protocol
+
+ @property
+ def id_perms(self):
+ """Get id-perms for routing-instance.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for routing-instance.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for routing-instance.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for routing-instance.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_service_chain_information'):
+ self._serialize_field_to_json(serialized, field_names, 'service_chain_information')
+ if hasattr(self, '_routing_instance_is_default'):
+ self._serialize_field_to_json(serialized, field_names, 'routing_instance_is_default')
+ if hasattr(self, '_static_route_entries'):
+ self._serialize_field_to_json(serialized, field_names, 'static_route_entries')
+ if hasattr(self, '_default_ce_protocol'):
+ self._serialize_field_to_json(serialized, field_names, 'default_ce_protocol')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'routing_instance_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'routing_instance_refs')
+ if hasattr(self, 'route_target_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'route_target_refs')
+ return serialized
+ #end serialize_to_json
+
+ def get_bgp_routers(self):
+ return getattr(self, 'bgp_routers', None)
+ #end get_bgp_routers
+
+ def set_routing_instance(self, ref_obj, ref_data):
+ """Set routing-instance for routing-instance.
+
+ :param ref_obj: RoutingInstance object
+ :param ref_data: ConnectionType object
+
+ """
+ self.routing_instance_refs = [{'to':ref_obj.get_fq_name(), 'attr':ref_data}]
+ if ref_obj.uuid:
+ self.routing_instance_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_routing_instance
+
+ def add_routing_instance(self, ref_obj, ref_data):
+ """Add routing-instance to routing-instance.
+
+ :param ref_obj: RoutingInstance object
+ :param ref_data: ConnectionType object
+
+ """
+ refs = getattr(self, 'routing_instance_refs', [])
+ if not refs:
+ self.routing_instance_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name(), 'attr':ref_data}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name(), 'attr':ref_data}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.routing_instance_refs.append(ref_info)
+ #end add_routing_instance
+
+ def del_routing_instance(self, ref_obj):
+ refs = self.get_routing_instance_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.routing_instance_refs.remove(ref)
+ return
+ #end del_routing_instance
+
+ def set_routing_instance_list(self, ref_obj_list, ref_data_list):
+ """Set routing-instance list for routing-instance.
+
+ :param ref_obj_list: list of RoutingInstance object
+ :param ref_data_list: list of ConnectionType object
+
+ """
+ self.routing_instance_refs = [{'to':ref_obj_list[i], 'attr':ref_data_list[i]} for i in range(len(ref_obj_list))]
+ #end set_routing_instance_list
+
+ def get_routing_instance_refs(self):
+ """Return routing-instance list for routing-instance.
+
+ :returns: list of tuple <RoutingInstance, ConnectionType>
+
+ """
+ return getattr(self, 'routing_instance_refs', None)
+ #end get_routing_instance_refs
+
+ def set_route_target(self, ref_obj, ref_data):
+ """Set route-target for routing-instance.
+
+ :param ref_obj: RouteTarget object
+ :param ref_data: InstanceTargetType object
+
+ """
+ self.route_target_refs = [{'to':ref_obj.get_fq_name(), 'attr':ref_data}]
+ if ref_obj.uuid:
+ self.route_target_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_route_target
+
+ def add_route_target(self, ref_obj, ref_data):
+ """Add route-target to routing-instance.
+
+ :param ref_obj: RouteTarget object
+ :param ref_data: InstanceTargetType object
+
+ """
+ refs = getattr(self, 'route_target_refs', [])
+ if not refs:
+ self.route_target_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name(), 'attr':ref_data}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name(), 'attr':ref_data}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.route_target_refs.append(ref_info)
+ #end add_route_target
+
+ def del_route_target(self, ref_obj):
+ refs = self.get_route_target_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.route_target_refs.remove(ref)
+ return
+ #end del_route_target
+
+ def set_route_target_list(self, ref_obj_list, ref_data_list):
+ """Set route-target list for routing-instance.
+
+ :param ref_obj_list: list of RouteTarget object
+ :param ref_data_list: list of InstanceTargetType object
+
+ """
+ self.route_target_refs = [{'to':ref_obj_list[i], 'attr':ref_data_list[i]} for i in range(len(ref_obj_list))]
+ #end set_route_target_list
+
+ def get_route_target_refs(self):
+ """Return route-target list for routing-instance.
+
+ :returns: list of tuple <RouteTarget, InstanceTargetType>
+
+ """
+ return getattr(self, 'route_target_refs', None)
+ #end get_route_target_refs
+
+ def get_virtual_machine_interface_back_refs(self):
+ """Return list of all virtual-machine-interfaces using this routing-instance"""
+ return getattr(self, 'virtual_machine_interface_back_refs', None)
+ #end get_virtual_machine_interface_back_refs
+
+ def get_virtual_network_back_refs(self):
+ """Return list of all virtual-networks using this routing-instance"""
+ return getattr(self, 'virtual_network_back_refs', None)
+ #end get_virtual_network_back_refs
+
+ def get_routing_instance_back_refs(self):
+ """Return list of all routing-instances using this routing-instance"""
+ return getattr(self, 'routing_instance_back_refs', None)
+ #end get_routing_instance_back_refs
+
+ def get_customer_attachment_back_refs(self):
+ """Return list of all customer-attachments using this routing-instance"""
+ return getattr(self, 'customer_attachment_back_refs', None)
+ #end get_customer_attachment_back_refs
+
+ def dump(self):
+ """Display routing-instance object in compact form."""
+ print '------------ routing-instance ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P service_chain_information = ', self.get_service_chain_information()
+ print 'P routing_instance_is_default = ', self.get_routing_instance_is_default()
+ print 'P static_route_entries = ', self.get_static_route_entries()
+ print 'P default_ce_protocol = ', self.get_default_ce_protocol()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'HAS bgp_router = ', self.get_bgp_routers()
+ print 'REF routing_instance = ', self.get_routing_instance_refs()
+ print 'REF route_target = ', self.get_route_target_refs()
+ print 'BCK virtual_machine_interface = ', self.get_virtual_machine_interface_back_refs()
+ print 'BCK routing_instance = ', self.get_routing_instance_back_refs()
+ #end dump
+
+#end class RoutingInstance
+
+class NetworkIpam(object):
+ """
+ Represents network-ipam configuration representation.
+
+ Child of:
+ :class:`.Project` object OR
+
+ Properties:
+ * network-ipam-mgmt (:class:`.IpamType` type)
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+ * list of :class:`.VirtualDns` objects
+
+ Referred by:
+ * list of :class:`.VirtualNetwork` objects
+ """
+
+ prop_fields = set([u'network_ipam_mgmt', u'id_perms', u'display_name'])
+ ref_fields = set([u'virtual_DNS_refs'])
+ backref_fields = set([u'project_back_refs', u'virtual_network_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, network_ipam_mgmt = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'network-ipam'
+ if not name:
+ name = u'default-network-ipam'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'project'
+ self.fq_name = [u'default-domain', u'default-project']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if network_ipam_mgmt:
+ self._network_ipam_mgmt = network_ipam_mgmt
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (network-ipam)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of network-ipam in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of network-ipam as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of network-ipam's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of network-ipam's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def network_ipam_mgmt(self):
+ """Get network-ipam-mgmt for network-ipam.
+
+ :returns: IpamType object
+
+ """
+ return getattr(self, '_network_ipam_mgmt', None)
+ #end network_ipam_mgmt
+
+ @network_ipam_mgmt.setter
+ def network_ipam_mgmt(self, network_ipam_mgmt):
+ """Set network-ipam-mgmt for network-ipam.
+
+ :param network_ipam_mgmt: IpamType object
+
+ """
+ self._network_ipam_mgmt = network_ipam_mgmt
+ #end network_ipam_mgmt
+
+ def set_network_ipam_mgmt(self, value):
+ self.network_ipam_mgmt = value
+ #end set_network_ipam_mgmt
+
+ def get_network_ipam_mgmt(self):
+ return self.network_ipam_mgmt
+ #end get_network_ipam_mgmt
+
+ @property
+ def id_perms(self):
+ """Get id-perms for network-ipam.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for network-ipam.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for network-ipam.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for network-ipam.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_network_ipam_mgmt'):
+ self._serialize_field_to_json(serialized, field_names, 'network_ipam_mgmt')
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'virtual_DNS_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_DNS_refs')
+ return serialized
+ #end serialize_to_json
+
+ def set_virtual_DNS(self, ref_obj):
+ """Set virtual-DNS for network-ipam.
+
+ :param ref_obj: VirtualDns object
+
+ """
+ self.virtual_DNS_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_DNS_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_DNS
+
+ def add_virtual_DNS(self, ref_obj):
+ """Add virtual-DNS to network-ipam.
+
+ :param ref_obj: VirtualDns object
+
+ """
+ refs = getattr(self, 'virtual_DNS_refs', [])
+ if not refs:
+ self.virtual_DNS_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_DNS_refs.append(ref_info)
+ #end add_virtual_DNS
+
+ def del_virtual_DNS(self, ref_obj):
+ refs = self.get_virtual_DNS_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_DNS_refs.remove(ref)
+ return
+ #end del_virtual_DNS
+
+ def set_virtual_DNS_list(self, ref_obj_list):
+ """Set virtual-DNS list for network-ipam.
+
+ :param ref_obj_list: list of VirtualDns object
+
+ """
+ self.virtual_DNS_refs = ref_obj_list
+ #end set_virtual_DNS_list
+
+ def get_virtual_DNS_refs(self):
+ """Return virtual-DNS list for network-ipam.
+
+ :returns: list of <VirtualDns>
+
+ """
+ return getattr(self, 'virtual_DNS_refs', None)
+ #end get_virtual_DNS_refs
+
+ def get_project_back_refs(self):
+ """Return list of all projects using this network-ipam"""
+ return getattr(self, 'project_back_refs', None)
+ #end get_project_back_refs
+
+ def get_virtual_network_back_refs(self):
+ """Return list of all virtual-networks using this network-ipam"""
+ return getattr(self, 'virtual_network_back_refs', None)
+ #end get_virtual_network_back_refs
+
+ def dump(self):
+ """Display network-ipam object in compact form."""
+ print '------------ network-ipam ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P network_ipam_mgmt = ', self.get_network_ipam_mgmt()
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF virtual_DNS = ', self.get_virtual_DNS_refs()
+ print 'BCK virtual_network = ', self.get_virtual_network_back_refs()
+ #end dump
+
+#end class NetworkIpam
+
+class LogicalRouter(object):
+ """
+ Represents logical-router configuration representation.
+
+ Child of:
+ :class:`.Project` object OR
+
+ Properties:
+ * id-perms (:class:`.IdPermsType` type)
+ * display-name (xsd:string type)
+
+ Children:
+
+ References to:
+ * list of :class:`.VirtualMachineInterface` objects
+ * list of :class:`.RouteTarget` objects
+ * list of :class:`.VirtualNetwork` objects
+ * list of :class:`.ServiceInstance` objects
+
+ Referred by:
+ """
+
+ prop_fields = set([u'id_perms', u'display_name'])
+ ref_fields = set(['virtual_machine_interface_refs', 'route_target_refs', u'virtual_network_refs', u'service_instance_refs'])
+ backref_fields = set([u'project_back_refs'])
+ children_fields = set([])
+
+ def __init__(self, name = None, parent_obj = None, id_perms = None, display_name = None, *args, **kwargs):
+ # type-independent fields
+ self._type = 'logical-router'
+ if not name:
+ name = u'default-logical-router'
+ self.name = name
+ self._uuid = None
+ # Determine parent type and fq_name
+ kwargs_parent_type = kwargs.get('parent_type', None)
+ kwargs_fq_name = kwargs.get('fq_name', None)
+ if parent_obj:
+ self.parent_type = parent_obj._type
+ # copy parent's fq_name
+ self.fq_name = list(parent_obj.fq_name)
+ self.fq_name.append(name)
+ elif kwargs_parent_type and kwargs_fq_name:
+ self.parent_type = kwargs_parent_type
+ self.fq_name = kwargs_fq_name
+ else: # No parent obj specified
+ self.parent_type = 'project'
+ self.fq_name = [u'default-domain', u'default-project']
+ self.fq_name.append(name)
+
+
+ # property fields
+ if id_perms:
+ self._id_perms = id_perms
+ if display_name:
+ self._display_name = display_name
+ #end __init__
+
+ def get_type(self):
+ """Return object type (logical-router)."""
+ return self._type
+ #end get_type
+
+ def get_fq_name(self):
+ """Return FQN of logical-router in list form."""
+ return self.fq_name
+ #end get_fq_name
+
+ def get_fq_name_str(self):
+ """Return FQN of logical-router as colon delimited string."""
+ return ':'.join(self.fq_name)
+ #end get_fq_name_str
+
+ @property
+ def parent_name(self):
+ return self.fq_name[:-1][-1]
+ #end parent_name
+
+ def get_parent_fq_name(self):
+ """Return FQN of logical-router's parent in list form."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return self.fq_name[:-1]
+ #end get_parent_fq_name
+
+ def get_parent_fq_name_str(self):
+ """Return FQN of logical-router's parent as colon delimted string."""
+ if not hasattr(self, 'parent_type'):
+ # child of config-root
+ return None
+
+ return ':'.join(self.fq_name[:-1])
+ #end get_parent_fq_name_str
+
+ @property
+ def uuid(self):
+ return getattr(self, '_uuid', None)
+ #end uuid
+
+ @uuid.setter
+ def uuid(self, uuid_val):
+ self._uuid = uuid_val
+ #end uuid
+
+ def set_uuid(self, uuid_val):
+ self.uuid = uuid_val
+ #end set_uuid
+
+ def get_uuid(self):
+ return self.uuid
+ #end get_uuid
+
+ @property
+ def id_perms(self):
+ """Get id-perms for logical-router.
+
+ :returns: IdPermsType object
+
+ """
+ return getattr(self, '_id_perms', None)
+ #end id_perms
+
+ @id_perms.setter
+ def id_perms(self, id_perms):
+ """Set id-perms for logical-router.
+
+ :param id_perms: IdPermsType object
+
+ """
+ self._id_perms = id_perms
+ #end id_perms
+
+ def set_id_perms(self, value):
+ self.id_perms = value
+ #end set_id_perms
+
+ def get_id_perms(self):
+ return self.id_perms
+ #end get_id_perms
+
+ @property
+ def display_name(self):
+ """Get display-name for logical-router.
+
+ :returns: xsd:string object
+
+ """
+ return getattr(self, '_display_name', None)
+ #end display_name
+
+ @display_name.setter
+ def display_name(self, display_name):
+ """Set display-name for logical-router.
+
+ :param display_name: xsd:string object
+
+ """
+ self._display_name = display_name
+ #end display_name
+
+ def set_display_name(self, value):
+ self.display_name = value
+ #end set_display_name
+
+ def get_display_name(self):
+ return self.display_name
+ #end get_display_name
+
+ def _serialize_field_to_json(self, serialized, fields_to_serialize, field_name):
+ if fields_to_serialize is None: # all fields are serialized
+ serialized[field_name] = getattr(self, field_name)
+ elif field_name in fields_to_serialize:
+ serialized[field_name] = getattr(self, field_name)
+ #end _serialize_field_to_json
+
+ def serialize_to_json(self, field_names = None):
+ serialized = {}
+
+ # serialize common fields
+ self._serialize_field_to_json(serialized, ['uuid'], 'uuid')
+ self._serialize_field_to_json(serialized, field_names, 'fq_name')
+ if hasattr(self, 'parent_type'):
+ self._serialize_field_to_json(serialized, field_names, 'parent_type')
+
+ # serialize property fields
+ if hasattr(self, '_id_perms'):
+ self._serialize_field_to_json(serialized, field_names, 'id_perms')
+ if hasattr(self, '_display_name'):
+ self._serialize_field_to_json(serialized, field_names, 'display_name')
+
+ # serialize reference fields
+ if hasattr(self, 'virtual_machine_interface_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_machine_interface_refs')
+ if hasattr(self, 'route_target_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'route_target_refs')
+ if hasattr(self, 'virtual_network_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'virtual_network_refs')
+ if hasattr(self, 'service_instance_refs'):
+ self._serialize_field_to_json(serialized, field_names, 'service_instance_refs')
+ return serialized
+ #end serialize_to_json
+
+ def set_virtual_machine_interface(self, ref_obj):
+ """Set virtual-machine-interface for logical-router.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_machine_interface_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_machine_interface
+
+ def add_virtual_machine_interface(self, ref_obj):
+ """Add virtual-machine-interface to logical-router.
+
+ :param ref_obj: VirtualMachineInterface object
+
+ """
+ refs = getattr(self, 'virtual_machine_interface_refs', [])
+ if not refs:
+ self.virtual_machine_interface_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_machine_interface_refs.append(ref_info)
+ #end add_virtual_machine_interface
+
+ def del_virtual_machine_interface(self, ref_obj):
+ refs = self.get_virtual_machine_interface_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_machine_interface_refs.remove(ref)
+ return
+ #end del_virtual_machine_interface
+
+ def set_virtual_machine_interface_list(self, ref_obj_list):
+ """Set virtual-machine-interface list for logical-router.
+
+ :param ref_obj_list: list of VirtualMachineInterface object
+
+ """
+ self.virtual_machine_interface_refs = ref_obj_list
+ #end set_virtual_machine_interface_list
+
+ def get_virtual_machine_interface_refs(self):
+ """Return virtual-machine-interface list for logical-router.
+
+ :returns: list of <VirtualMachineInterface>
+
+ """
+ return getattr(self, 'virtual_machine_interface_refs', None)
+ #end get_virtual_machine_interface_refs
+
+ def set_route_target(self, ref_obj):
+ """Set route-target for logical-router.
+
+ :param ref_obj: RouteTarget object
+
+ """
+ self.route_target_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.route_target_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_route_target
+
+ def add_route_target(self, ref_obj):
+ """Add route-target to logical-router.
+
+ :param ref_obj: RouteTarget object
+
+ """
+ refs = getattr(self, 'route_target_refs', [])
+ if not refs:
+ self.route_target_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.route_target_refs.append(ref_info)
+ #end add_route_target
+
+ def del_route_target(self, ref_obj):
+ refs = self.get_route_target_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.route_target_refs.remove(ref)
+ return
+ #end del_route_target
+
+ def set_route_target_list(self, ref_obj_list):
+ """Set route-target list for logical-router.
+
+ :param ref_obj_list: list of RouteTarget object
+
+ """
+ self.route_target_refs = ref_obj_list
+ #end set_route_target_list
+
+ def get_route_target_refs(self):
+ """Return route-target list for logical-router.
+
+ :returns: list of <RouteTarget>
+
+ """
+ return getattr(self, 'route_target_refs', None)
+ #end get_route_target_refs
+
+ def set_virtual_network(self, ref_obj):
+ """Set virtual-network for logical-router.
+
+ :param ref_obj: VirtualNetwork object
+
+ """
+ self.virtual_network_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.virtual_network_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_virtual_network
+
+ def add_virtual_network(self, ref_obj):
+ """Add virtual-network to logical-router.
+
+ :param ref_obj: VirtualNetwork object
+
+ """
+ refs = getattr(self, 'virtual_network_refs', [])
+ if not refs:
+ self.virtual_network_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.virtual_network_refs.append(ref_info)
+ #end add_virtual_network
+
+ def del_virtual_network(self, ref_obj):
+ refs = self.get_virtual_network_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.virtual_network_refs.remove(ref)
+ return
+ #end del_virtual_network
+
+ def set_virtual_network_list(self, ref_obj_list):
+ """Set virtual-network list for logical-router.
+
+ :param ref_obj_list: list of VirtualNetwork object
+
+ """
+ self.virtual_network_refs = ref_obj_list
+ #end set_virtual_network_list
+
+ def get_virtual_network_refs(self):
+ """Return virtual-network list for logical-router.
+
+ :returns: list of <VirtualNetwork>
+
+ """
+ return getattr(self, 'virtual_network_refs', None)
+ #end get_virtual_network_refs
+
+ def set_service_instance(self, ref_obj):
+ """Set service-instance for logical-router.
+
+ :param ref_obj: ServiceInstance object
+
+ """
+ self.service_instance_refs = [{'to':ref_obj.get_fq_name()}]
+ if ref_obj.uuid:
+ self.service_instance_refs[0]['uuid'] = ref_obj.uuid
+
+ #end set_service_instance
+
+ def add_service_instance(self, ref_obj):
+ """Add service-instance to logical-router.
+
+ :param ref_obj: ServiceInstance object
+
+ """
+ refs = getattr(self, 'service_instance_refs', [])
+ if not refs:
+ self.service_instance_refs = []
+
+ # if ref already exists, update any attr with it
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ ref = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref['uuid'] = ref_obj.uuid
+ return
+
+ # ref didn't exist before
+ ref_info = {'to':ref_obj.get_fq_name()}
+ if ref_obj.uuid:
+ ref_info['uuid'] = ref_obj.uuid
+
+ self.service_instance_refs.append(ref_info)
+ #end add_service_instance
+
+ def del_service_instance(self, ref_obj):
+ refs = self.get_service_instance_refs()
+ if not refs:
+ return
+
+ for ref in refs:
+ if ref['to'] == ref_obj.get_fq_name():
+ self.service_instance_refs.remove(ref)
+ return
+ #end del_service_instance
+
+ def set_service_instance_list(self, ref_obj_list):
+ """Set service-instance list for logical-router.
+
+ :param ref_obj_list: list of ServiceInstance object
+
+ """
+ self.service_instance_refs = ref_obj_list
+ #end set_service_instance_list
+
+ def get_service_instance_refs(self):
+ """Return service-instance list for logical-router.
+
+ :returns: list of <ServiceInstance>
+
+ """
+ return getattr(self, 'service_instance_refs', None)
+ #end get_service_instance_refs
+
+ def get_project_back_refs(self):
+ """Return list of all projects using this logical-router"""
+ return getattr(self, 'project_back_refs', None)
+ #end get_project_back_refs
+
+ def dump(self):
+ """Display logical-router object in compact form."""
+ print '------------ logical-router ------------'
+ print 'Name = ', self.get_fq_name()
+ print 'Uuid = ', self.uuid
+ if hasattr(self, 'parent_type'): # non config-root children
+ print 'Parent Type = ', self.parent_type
+ print 'P id_perms = ', self.get_id_perms()
+ print 'P display_name = ', self.get_display_name()
+ print 'REF virtual_machine_interface = ', self.get_virtual_machine_interface_refs()
+ print 'REF route_target = ', self.get_route_target_refs()
+ print 'REF virtual_network = ', self.get_virtual_network_refs()
+ print 'REF service_instance = ', self.get_service_instance_refs()
+ #end dump
+
+#end class LogicalRouter
+