vim_info: Dict[str, Any],
target_record_id: str,
target_id: str,
- flavor_task_id: str,
**kwargs: Dict[str, Any],
) -> Dict[str, Any]:
"""Function to process VDU parameters to recreate.
"description": existing_vdu["vdu-name"],
"start": True,
"image_id": vim_details["image"]["id"],
- "flavor_id": "TASK-" + flavor_task_id,
+ "flavor_id": vim_details["flavor"]["id"],
"affinity_group_list": affinity_group_list,
"net_list": net_list,
"cloud_config": cloud_config or None,
return volumes_list
- def _process_recreate_flavor_params(
- self,
- existing_vdu: Dict[str, Any],
- db_nsr: Dict[str, Any],
- vim_info: Dict[str, Any],
- target_record_id: str,
- **kwargs: Dict[str, Any],
- ) -> Dict[str, Any]:
- """Method to process Flavor parameters to recreate.
-
- Args:
- existing_vdu (Dict[str, Any]): [description]
- db_nsr (Dict[str, Any]): [description]
- vim_info (Dict[str, Any]): [description]
- target_record_id (str): [description]
- target_id (str): [description]
- kwargs (dict)
-
- Returns:
- vdu_flavor_dict: (Dict[str, Any])
-
- """
- try:
- vdu_flavor_id = existing_vdu.get("ns-flavor-id")
- target_flavor = next(
- filter(
- lambda vdu_flavor_dict: vdu_flavor_dict["id"] == vdu_flavor_id,
- db_nsr.get("flavor"),
- ),
- None,
- )
- vdu_flavor_dict = Ns._process_flavor_params(
- target_flavor=target_flavor,
- indata={},
- vim_info=vim_info,
- target_record_id=target_record_id,
- **kwargs,
- )
- vdu_flavor_dict["name"] = target_flavor["name"]
- return vdu_flavor_dict
-
- except (DbException, KeyError, ValueError, TypeError) as error:
- raise NsException(error)
-
- def _prepare_flavor_create_item(
- self,
- existing_instance: dict,
- db_nsr: dict,
- target_viminfo: dict,
- target_record_id: str,
- target_vim: str,
- action_id: str,
- task_index: int,
- item_index: int,
- db_record_flavor: str,
- changes_list: list,
- **kwargs,
- ) -> str:
- flavor_data = self._process_recreate_flavor_params(
- existing_instance,
- db_nsr,
- target_viminfo,
- target_record_id,
- **kwargs,
- )
- flavor_task_id = f"{action_id}:{task_index}"
-
- flavor_item = {
- "deployment_info": {
- "action_id": action_id,
- "nsr_id": kwargs["nsr_id"],
- "task_index": task_index,
- },
- "target_id": target_vim,
- "item": "flavor",
- "action": "CREATE",
- "target_record": f"{db_record_flavor}.{item_index}.vim_info.{target_vim}",
- # "target_record_id": "{}.{}".format(
- # db_record_flavor, existing_instance["id"]
- # ),
- "target_record_id": target_record_id,
- "extra_dict": flavor_data,
- "task_id": flavor_task_id,
- }
- changes_list.append(flavor_item)
-
- return flavor_task_id
-
def prepare_changes_to_recreate(
self,
indata,
# set list with diffs:
changes_list = []
db_path = self.db_path_map["vdu"]
- db_path_flavor = self.db_path_map["flavor"]
target_list = indata.get("healVnfData", {})
vdu2cloud_init = indata.get("cloud_init_content") or {}
ro_nsr_public_key = db_ro_nsr["public_key"]
vnfr_id = target_vnf["vnfInstanceId"]
existing_vnf = db_vnfrs.get(vnfr_id, {})
db_record = "vnfrs:{}:{}".format(vnfr_id, db_path)
- db_record_flavor = "nsrs:{}:{}".format(nsr_id, db_path_flavor)
# vim_account_id = existing_vnf.get("vim-account-id", "")
target_vdus = target_vnf.get("additionalParams", {}).get("vdu", [])
and instance["count-index"] == count_index
):
existing_instance = instance
- item_index_flv = instance.get("ns-flavor-id")
- target_record_id_flv = "{}.{}".format(
- db_record_flavor, instance.get("ns-flavor-id")
- )
break
else:
item_index += 1
delete_task_id = f"{action_id}:{task_index}"
task_index += 1
- kwargs = {
- "vnfr_id": vnfr_id,
- "nsr_id": nsr_id,
- "vnfr": existing_vnf,
- "vdu2cloud_init": vdu2cloud_init,
- "tasks_by_target_record_id": tasks_by_target_record_id,
- "logger": self.logger,
- "db": self.db,
- "fs": self.fs,
- "ro_nsr_public_key": ro_nsr_public_key,
- }
-
- # step 2 check if old flavor exists or prepare to create it
- flavor_task_id = self._prepare_flavor_create_item(
- existing_instance=existing_instance,
- db_nsr=db_nsr,
- target_viminfo=target_viminfo,
- target_record_id=target_record_id_flv,
- target_vim=target_vim,
- action_id=action_id,
- task_index=task_index + 1,
- item_index=item_index_flv,
- db_record_flavor=db_record_flavor,
- changes_list=changes_list,
- **kwargs,
- )
-
- # step 3 vdu to be created
+ # step 2 vdu to be created
kwargs = {}
kwargs.update(
{
target_viminfo,
target_record_id,
target_vim,
- flavor_task_id,
**kwargs,
)
# The CREATE task depens on the DELETE task
extra_dict["depends_on"] = [delete_task_id]
- extra_dict["depends_on"].append(flavor_task_id)
# Add volumes created from created_items if any
# Ports should be deleted with delete task and automatically created with create task
+++ /dev/null
-#######################################################################################
-# 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.
-#######################################################################################
----
-prelude: >
- Replace this text with content to appear at the top of the section for this
- release. All of the prelude content is merged together and then rendered
- separately from the items listed in other parts of the file, so the text
- needs to be worded so that both the prelude and the other items make sense
- when read independently. This may mean repeating some details. Not every
- release note requires a prelude. Usually only notes describing major
- features or adding release theme details should have a prelude.
-features:
- - |
- List new features here, or remove this section. All of the list items in
- this section are combined when the release notes are rendered, so the text
- needs to be worded so that it does not depend on any information only
- available in another section, such as the prelude. This may mean repeating
- some details.
-issues:
- - |
- List known issues here, or remove this section. All of the list items in
- this section are combined when the release notes are rendered, so the text
- needs to be worded so that it does not depend on any information only
- available in another section, such as the prelude. This may mean repeating
- some details.
-upgrade:
- - |
- List upgrade notes here, or remove this section. All of the list items in
- this section are combined when the release notes are rendered, so the text
- needs to be worded so that it does not depend on any information only
- available in another section, such as the prelude. This may mean repeating
- some details.
-deprecations:
- - |
- List deprecations notes here, or remove this section. All of the list
- items in this section are combined when the release notes are rendered, so
- the text needs to be worded so that it does not depend on any information
- only available in another section, such as the prelude. This may mean
- repeating some details.
-critical:
- - |
- Add critical notes here, or remove this section. All of the list items in
- this section are combined when the release notes are rendered, so the text
- needs to be worded so that it does not depend on any information only
- available in another section, such as the prelude. This may mean repeating
- some details.
-security:
- - |
- Add security notes here, or remove this section. All of the list items in
- this section are combined when the release notes are rendered, so the text
- needs to be worded so that it does not depend on any information only
- available in another section, such as the prelude. This may mean repeating
- some details.
-fixes:
- - |
- Add normal bug fixes here, or remove this section. All of the list items
- in this section are combined when the release notes are rendered, so the
- text needs to be worded so that it does not depend on any information only
- available in another section, such as the prelude. This may mean repeating
- some details.
-other:
- - |
- Add other notes here, or remove this section. All of the list items in
- this section are combined when the release notes are rendered, so the text
- needs to be worded so that it does not depend on any information only
- available in another section, such as the prelude. This may mean repeating
- some details.