Fix bug 1859 for VNET supporting in a different resource group
Change-Id: Iaddd2515995eb4c49977c7c705b7634638bb3071
Signed-off-by: gallardo <sgallardor@indra.es>
diff --git a/RO-VIM-azure/osm_rovim_azure/vimconn_azure.py b/RO-VIM-azure/osm_rovim_azure/vimconn_azure.py
index 729db82..967eb3d 100755
--- a/RO-VIM-azure/osm_rovim_azure/vimconn_azure.py
+++ b/RO-VIM-azure/osm_rovim_azure/vimconn_azure.py
@@ -248,6 +248,9 @@
if "vnet_name" in config:
self.vnet_name = config["vnet_name"]
+ # VNET_RESOURCE_GROUP
+ self.vnet_resource_group = config.get("vnet_resource_group")
+
# TODO - not used, do anything about it?
# public ssh key
self.pub_key = config.get("pub_key")
@@ -404,7 +407,7 @@
"""
try:
vnet = self.conn_vnet.virtual_networks.get(
- self.resource_group, self.vnet_name
+ self.vnet_resource_group or self.resource_group, self.vnet_name
)
self.vnet_address_space = vnet.address_space.address_prefixes[0]
self.vnet_id = vnet.id
@@ -427,10 +430,12 @@
self.logger.debug("create base vnet: %s", self.vnet_name)
self.conn_vnet.virtual_networks.begin_create_or_update(
- self.resource_group, self.vnet_name, vnet_params
+ self.vnet_resource_group or self.resource_group,
+ self.vnet_name,
+ vnet_params,
)
vnet = self.conn_vnet.virtual_networks.get(
- self.resource_group, self.vnet_name
+ self.vnet_resource_group or self.resource_group, self.vnet_name
)
self.vnet_id = vnet.id
except Exception as e:
@@ -510,7 +515,10 @@
self.logger.debug("creating subnet_name: {}".format(subnet_name))
async_creation = self.conn_vnet.subnets.begin_create_or_update(
- self.resource_group, self.vnet_name, subnet_name, subnet_params
+ self.vnet_resource_group or self.resource_group,
+ self.vnet_name,
+ subnet_name,
+ subnet_params,
)
async_creation.wait()
# TODO - do not wait here, check where it is used
@@ -525,7 +533,9 @@
Adds a prefix to the subnet_name with a number in case the indicated name is repeated
Checks subnets with the indicated name (without suffix) and adds a suffix with a number
"""
- all_subnets = self.conn_vnet.subnets.list(self.resource_group, self.vnet_name)
+ all_subnets = self.conn_vnet.subnets.list(
+ self.vnet_resource_group or self.resource_group, self.vnet_name
+ )
# Filter to subnets starting with the indicated name
subnets = list(
filter(lambda subnet: (subnet.name.startswith(subnet_name)), all_subnets)
@@ -550,6 +560,7 @@
location = self.region or self._get_location_from_resource_group(
self.resource_group
)
+
try:
net_ifz = {"location": location}
net_ip_config = {
@@ -815,7 +826,7 @@
self._reload_connection()
vnet = self.conn_vnet.virtual_networks.get(
- self.resource_group, self.vnet_name
+ self.vnet_resource_group or self.resource_group, self.vnet_name
)
subnet_list = []
@@ -1359,7 +1370,9 @@
def delete_network(self, net_id, created_items=None):
self.logger.debug(
- "deleting network {} - {}".format(self.resource_group, net_id)
+ "deleting network {} - {}".format(
+ self.vnet_resource_group or self.resource_group, net_id
+ )
)
self._reload_connection()
@@ -1368,7 +1381,9 @@
try:
# Obtain subnets ant try to delete nic first
subnet = self.conn_vnet.subnets.get(
- self.resource_group, self.vnet_name, res_name
+ self.vnet_resource_group or self.resource_group,
+ self.vnet_name,
+ res_name,
)
if not subnet:
raise vimconn.VimConnNotFoundException(
@@ -1387,7 +1402,9 @@
# Subnet API fails (CloudError: Azure Error: ResourceNotFound)
# Put the initial virtual_network API
async_delete = self.conn_vnet.subnets.begin_delete(
- self.resource_group, self.vnet_name, res_name
+ self.vnet_resource_group or self.resource_group,
+ self.vnet_name,
+ res_name,
)
async_delete.wait()
@@ -1800,7 +1817,9 @@
netName = self._get_net_name_from_resource_id(net_id)
resName = self._get_resource_name_from_resource_id(net_id)
- net = self.conn_vnet.subnets.get(self.resource_group, netName, resName)
+ net = self.conn_vnet.subnets.get(
+ self.vnet_resource_group or self.resource_group, netName, resName
+ )
out_nets[net_id] = {
"status": self.provision_state2osm[net.provisioning_state],
@@ -2066,7 +2085,7 @@
logger.debug("List networks")
network_list = azure.get_network_list({"name": "internal"})
logger.debug("Network_list: {}".format(network_list))
-
+
logger.debug("Show machine isabelvm")
vmachine = azure.get_vminstance( ("/subscriptions/5c1a2458-dfde-4adf-a4e3-08fa0e21d171/resourceGroups/{}"
"/providers/Microsoft.Compute/virtualMachines/isabelVM"
@@ -2090,7 +2109,7 @@
"/Skus/18.04-LTS/Versions/18.04.201809110")
"""
"""
-
+
network_id = ("subscriptions/5c1a2458-dfde-4adf-a4e3-08fa0e21d171/resourceGroups/{}
"/providers/Microsoft.Network/virtualNetworks/osm_vnet/subnets/internal"
).format(test_params["resource_group"])
diff --git a/releasenotes/notes/fix_bug_1859-e4665e4a4818e5f7.yaml b/releasenotes/notes/fix_bug_1859-e4665e4a4818e5f7.yaml
new file mode 100644
index 0000000..7f21683
--- /dev/null
+++ b/releasenotes/notes/fix_bug_1859-e4665e4a4818e5f7.yaml
@@ -0,0 +1,21 @@
+#######################################################################################
+# Copyright ETSI Contributors and Others.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#######################################################################################
+---
+fixes:
+ - |
+ Fixing bug 1859 - Supporting of a VNET for a different resource group in
+ Azure Connector.