def add_asn_namespace(self, fab, asn): """add AS number as fabric namespace""" ns_name = "asn_%d" % asn self._logger.info('Adding ASN namespace "%s" to fabric "%s" ...', ns_name, fab.name) ns_fq_name = fab.fq_name + [ns_name] namespace = FabricNamespace( name=ns_name, fq_name=ns_fq_name, parent_type='fabric', fabric_namespace_type='ASN', fabric_namespace_value={'asn': { 'asn': [asn] }}) namespace.set_tag_list([{'to': ['label=fabric-as-number']}]) try: ns_uuid = self._api.fabric_namespace_create(namespace) namespace = self._api.fabric_namespace_read(id=ns_uuid) except RefsExistError: self._logger.warn("Fabric namespace '%s' already exists", ns_name) namespace = self._api.fabric_namespace_read(fq_name=ns_fq_name) self._logger.debug( "Fabric namespace created:\n%s", pprint.pformat(self._api.obj_to_dict(namespace), indent=4)) return namespace
def add_asn_namespace(self, fab, asn): """add AS number as fabric namespace""" ns_name = "asn_%d" % asn self._logger.info( 'Adding ASN namespace "%s" to fabric "%s" ...', ns_name, fab.name) ns_fq_name = fab.fq_name + [ns_name] namespace = FabricNamespace( name=ns_name, fq_name=ns_fq_name, parent_type='fabric', fabric_namespace_type='ASN', fabric_namespace_value={ 'asn': { 'asn': [asn] } } ) namespace.set_tag_list([{'to': ['label=fabric-as-number']}]) try: ns_uuid = self._api.fabric_namespace_create(namespace) namespace = self._api.fabric_namespace_read(id=ns_uuid) except RefsExistError: self._logger.warn( "Fabric namespace '%s' already exists", ns_name) namespace = self._api.fabric_namespace_read(fq_name=ns_fq_name) self._logger.debug( "Fabric namespace created:\n%s", pprint.pformat(self._api.obj_to_dict(namespace), indent=4)) return namespace
def add_mgmt_ip_namespace(self, fab, name, cidrs): """add management ip prefixes as fabric namespace""" ns_name = 'mgmt_ip-' + name self._logger.info( 'Adding management ip namespace "%s" to fabric "%s" ...', ns_name, fab.name) subnets = [] for cidr in cidrs: ip_prefix = cidr.split('/') subnets.append({ 'ip_prefix': ip_prefix[0], 'ip_prefix_len': ip_prefix[1] }) ns_fq_name = fab.fq_name + [ns_name] namespace = FabricNamespace( name=ns_name, fq_name=ns_fq_name, parent_type='fabric', fabric_namespace_type='IPV4-CIDR', fabric_namespace_value={ 'ipv4_cidr': { 'subnet': subnets }, } ) namespace.set_tag_list([{'to': ['label=fabric-management-ip']}]) try: ns_uuid = self._api.fabric_namespace_create(namespace) namespace = self._api.fabric_namespace_read(id=ns_uuid) except RefsExistError: self._logger.warn( "Fabric namespace '%s' already exists", ns_name) namespace = self._api.fabric_namespace_read(fq_name=ns_fq_name) self._logger.debug( "Fabric namespace created:\n%s", pprint.pformat(self._api.obj_to_dict(namespace), indent=4)) return namespace