Enabling Flake8 and import sorting
[osm/RO.git] / RO-VIM-azure / osm_rovim_azure / vimconn_azure.py
index c78b0f9..729db82 100755 (executable)
 ##
 
 import base64
-from osm_ro_plugin import vimconn
 import logging
-import netaddr
+from os import getenv
 import re
 
-from os import getenv
+from azure.core.exceptions import ResourceNotFoundError
 from azure.identity import ClientSecretCredential
-from azure.mgmt.resource import ResourceManagementClient
-from azure.mgmt.network import NetworkManagementClient
 from azure.mgmt.compute import ComputeManagementClient
 from azure.mgmt.compute.models import DiskCreateOption
-from azure.core.exceptions import ResourceNotFoundError
+from azure.mgmt.network import NetworkManagementClient
+from azure.mgmt.resource import ResourceManagementClient
 from azure.profiles import ProfileDefinition
-from msrestazure.azure_exceptions import CloudError
+from cryptography.hazmat.backends import default_backend as crypto_default_backend
+from cryptography.hazmat.primitives import serialization as crypto_serialization
+from cryptography.hazmat.primitives.asymmetric import rsa
 from msrest.exceptions import AuthenticationError
+from msrestazure.azure_exceptions import CloudError
 import msrestazure.tools as azure_tools
+import netaddr
+from osm_ro_plugin import vimconn
 from requests.exceptions import ConnectionError
 
-from cryptography.hazmat.primitives import serialization as crypto_serialization
-from cryptography.hazmat.primitives.asymmetric import rsa
-from cryptography.hazmat.backends import default_backend as crypto_default_backend
-
 __author__ = "Isabel Lloret, Sergio Gonzalez, Alfonso Tierno, Gerardo Garcia"
 __date__ = "$18-apr-2019 23:59:59$"
 
@@ -229,14 +228,6 @@ class vimconnector(vimconn.VimConnector):
         else:
             raise vimconn.VimConnException("Subscription not specified")
 
-        # REGION
-        if "region_name" in config:
-            self.region = config.get("region_name")
-        else:
-            raise vimconn.VimConnException(
-                "Azure region_name is not specified at config"
-            )
-
         # RESOURCE_GROUP
         if "resource_group" in config:
             self.resource_group = config.get("resource_group")
@@ -245,6 +236,14 @@ class vimconnector(vimconn.VimConnector):
                 "Azure resource_group is not specified at config"
             )
 
+        # REGION
+        if "region_name" in config:
+            self.region = config.get("region_name")
+        else:
+            raise vimconn.VimConnException(
+                "Azure region_name is not specified at config"
+            )
+
         # VNET_NAME
         if "vnet_name" in config:
             self.vnet_name = config["vnet_name"]
@@ -543,12 +542,14 @@ class vimconnector(vimconn.VimConnector):
 
         return name
 
-    def _create_nic(self, net, nic_name, static_ip=None, created_items={}):
+    def _create_nic(self, net, nic_name, region=None, static_ip=None, created_items={}):
         self.logger.debug("create nic name %s, net_name %s", nic_name, net)
         self._reload_connection()
 
         subnet_id = net["net_id"]
-        location = self._get_location_from_resource_group(self.resource_group)
+        location = self.region or self._get_location_from_resource_group(
+            self.resource_group
+        )
         try:
             net_ifz = {"location": location}
             net_ip_config = {
@@ -903,7 +904,7 @@ class vimconnector(vimconn.VimConnector):
                 # subnet_id=net["net_id"]
                 nic_name = vm_name + "-nic-" + str(idx)
                 vm_nic, nic_items = self._create_nic(
-                    net, nic_name, net.get("ip_address"), created_items
+                    net, nic_name, self.region, net.get("ip_address"), created_items
                 )
                 vm_nics.append({"id": str(vm_nic.id)})
                 net["vim_id"] = vm_nic.id