X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=RO-VIM-openstack%2Fosm_rovim_openstack%2Fvimconn_openstack.py;h=d9edb3231176802e33473af1c0f4a8bf2ee19404;hb=refs%2Fchanges%2F84%2F12084%2F9;hp=0a39041205ce8b06e0836316138cb42ead17b97d;hpb=36cad669a99ed1655dc39b1c37aea6197ddbab55;p=osm%2FRO.git diff --git a/RO-VIM-openstack/osm_rovim_openstack/vimconn_openstack.py b/RO-VIM-openstack/osm_rovim_openstack/vimconn_openstack.py index 0a390412..d9edb323 100644 --- a/RO-VIM-openstack/osm_rovim_openstack/vimconn_openstack.py +++ b/RO-VIM-openstack/osm_rovim_openstack/vimconn_openstack.py @@ -1369,7 +1369,6 @@ class vimconnector(vimconn.VimConnector): "Invalid mempage-size %s. Will be ignored", extended.get("mempage-size"), ) - # create flavor new_flavor = self.nova.flavors.create( name=name, @@ -1898,32 +1897,55 @@ class vimconnector(vimconn.VimConnector): if disk_list: block_device_mapping = {} for disk in disk_list: - if disk.get("vim_id"): - block_device_mapping["_vd" + chr(base_disk_index)] = disk[ - "vim_id" - ] - existing_vim_volumes.append({"id": disk["vim_id"]}) - else: - if "image_id" in disk: - base_disk_index = ord("a") + if "image_id" in disk: + # persistent root volume + base_disk_index = ord("a") + image_id = "" + if disk.get("vim_volume_id"): + + # use existing persistent root volume + block_device_mapping["vd" + chr(base_disk_index)] = disk[ + "vim_volume_id" + ] + existing_vim_volumes.append({"id": disk["vim_volume_id"]}) + + else: + # create persistent root volume volume = self.cinder.volumes.create( size=disk["size"], - name=name + "_vd" + chr(base_disk_index), + name=name + "vd" + chr(base_disk_index), imageRef=disk["image_id"], # Make sure volume is in the same AZ as the VM to be attached to availability_zone=vm_av_zone, ) boot_volume_id = volume.id + created_items["volume:" + str(volume.id)] = True + block_device_mapping[ + "vd" + chr(base_disk_index) + ] = volume.id + else: + # non-root persistent volume + if disk.get("vim_volume_id"): + + # use existing persistent volume + block_device_mapping["vd" + chr(base_disk_index)] = disk[ + "vim_volume_id" + ] + existing_vim_volumes.append({"id": disk["vim_volume_id"]}) + else: + + # create persistent volume volume = self.cinder.volumes.create( size=disk["size"], - name=name + "_vd" + chr(base_disk_index), + name=name + "vd" + chr(base_disk_index), # Make sure volume is in the same AZ as the VM to be attached to availability_zone=vm_av_zone, ) - - created_items["volume:" + str(volume.id)] = True - block_device_mapping["_vd" + chr(base_disk_index)] = volume.id + created_items["volume:" + str(volume.id)] = True + block_device_mapping[ + "vd" + chr(base_disk_index) + ] = volume.id base_disk_index += 1 @@ -1988,9 +2010,9 @@ class vimconnector(vimconn.VimConnector): ) ) server = self.nova.servers.create( - name, - image_id, - flavor_id, + name=name, + image=image_id, + flavor=flavor_id, nics=net_list_vim, security_groups=self.config.get("security_groups"), # TODO remove security_groups in future versions. Already at neutron port