@@ -13,7 +13,6 @@ class NetworkGroup:
1313 def __init__ (self , Organization : object , network_group_id : str = None , network_group_name : str = None , group : str = None ):
1414 """Initialize the network group class with a group name or ID."""
1515 self .logger = Organization .logger
16- self .Networks = Networks (Organization )
1716 self .network_groups = Organization .find_network_groups_by_organization ()
1817 if (not network_group_id and not network_group_name ) and group :
1918 self .logger .debug (f"got 'group' = '{ group } ' which could be a short name or id" )
@@ -70,13 +69,14 @@ def __init__(self, Organization: object, network_group_id: str = None, network_g
7069 for net in Organization .get_networks_by_group (network_group_id = self .network_group_id ):
7170 self .network_ids_by_normal_name [normalize_caseless (net ['name' ])] = net ['id' ]
7271
73- def nc_data_centers_by_location (self ):
74- """Get a controller data center by locationCode ."""
75- my_nc_data_centers_by_location = dict ()
76- for dc in self . get_controller_data_centers ( ):
77- my_nc_data_centers_by_location [ dc ['locationCode' ]] = dc ['id' ]
72+ def map_region_id_by_location_code (self ):
73+ """Map all region ids by their location code e.g. us-west-1: id ."""
74+ region_map = dict ()
75+ for region in Networks . find_regions ( provider = 'OCP' ) + Networks . find_regions ( provider = 'AWS' ):
76+ region_map [ region ['locationCode' ]] = region ['id' ]
7877 # e.g. { us-east-1: 02f0eb51-fb7a-4d2e-8463-32bd9f6fa4d7 }
79- return (my_nc_data_centers_by_location )
78+ return (region_map )
79+ nc_data_centers_by_location = map_region_id_by_location_code
8080
8181 # resolve network UUIDs by name
8282 def network_id_by_normal_name (self , name ):
@@ -101,26 +101,10 @@ def network_exists(self, name: str, deleted: bool = False):
101101 else :
102102 return (False )
103103
104- def nc_data_centers (self , ** kwargs ):
105- """Find network controller data centers."""
106- # data centers returns a list of dicts (data center objects)
107- params = dict ()
108- for param in kwargs .keys ():
109- params [param ] = kwargs [param ]
110- params ["productVersion" ] = self .find_latest_network_version (is_active = True )
111- params ["hostType" ] = "NC"
112- params ["provider" ] = "AWS"
113-
114- url = self .audience + 'core/v2/data-centers'
115- headers = {"authorization" : "Bearer " + self .token }
116- try :
117- data_centers = list ()
118- for i in find_generic_resources (setup = self , url = url , embedded = NET_RESOURCES ['data-centers' ]._embedded , ** params ):
119- data_centers .extend (i )
120- except Exception as e :
121- raise RuntimeError (f"failed to get data-centers from url: '{ url } ', caught { e } " )
122- else :
123- return (data_centers )
104+ def find_regions (self , ** kwargs ):
105+ """Find network controller data center regions."""
106+ return (Networks .find_regions (** kwargs ))
107+ nc_data_centers = find_regions
124108
125109 # provide a compatible alias
126110 get_controller_data_centers = nc_data_centers
@@ -133,19 +117,15 @@ def get_product_metadata(self, is_active: bool = True):
133117 :param product_version: semver string of a single version to get, default is all versions
134118 """
135119 url = self .audience + 'product-metadata/v2/download-urls.json'
136- try :
137- all_product_metadata , status_symbol = get_generic_resource_by_url (setup = self , url = url )
138- except Exception as e :
139- raise RuntimeError (f"failed to get product-metadata from url: '{ url } ', caught { e } " )
120+ all_product_metadata , status_symbol = get_generic_resource_by_url (setup = self , url = url )
121+ if is_active :
122+ filtered_product_metadata = dict ()
123+ for product in all_product_metadata .keys ():
124+ if all_product_metadata [product ]['active' ]:
125+ filtered_product_metadata [product ] = all_product_metadata [product ]
126+ return (filtered_product_metadata )
140127 else :
141- if is_active :
142- filtered_product_metadata = dict ()
143- for product in all_product_metadata .keys ():
144- if all_product_metadata [product ]['active' ]:
145- filtered_product_metadata [product ] = all_product_metadata [product ]
146- return (filtered_product_metadata )
147- else :
148- return (all_product_metadata )
128+ return (all_product_metadata )
149129
150130 def find_network_versions (self , is_active : bool = True ):
151131 """Find active network versions."""
0 commit comments