############################################################################# # Variables in header # ############################################################################# ############################################################################# # Variables in path # ############################################################################# group-uuid-path: description: | Instance group uuid. Should match with OpenStack server group if one exists. in: path required: true type: string session_id: description: | Session ID in: path required: true type: string uuid-path: description: | uuid in: path required: true type: string ############################################################################# # Variables in query # ############################################################################# ############################################################################# # Variables in body # ############################################################################# action-metadata: description: | Metadata; hints to plug-ins in: body required: true type: dictionary action-plugin-name: description: | plug-in name. Default workflow executes same type of plug-ins in an alphabetical order in: body required: true type: string action-plugin-type: description: | Type of the action plug-in. Default workflow supports: * pre: executed before the host specific plug-ins * post: executed after the host specific plug-ins * host: executed for every host * compute: executed for every compute host * controller: executed for every controller host in: body required: true type: integer action-plugins: description: | List of action plug-ins. in: body required: false type: list of dictionaries boolean: description: | Boolean in: body required: true type: boolean group-uuid: description: | Instance group uuid. Should match with OpenStack server group if one exists. in: body required: true type: string hosts: description: | Hosts to be maintained. An empty list can indicate hosts are to be discovered. in: body required: false type: list of strings instance-action: description: | Action string in: body required: true type: string instance-actions: description: | instance ID : action string. This variable is not needed in reply to state MAINTENANCE, SCALE_IN or MAINTENANCE_COMPLETE in: body required: true type: dictionary instance-group: description: | Instance group name. Should match with OpenStack server group if one exists. in: body required: true type: string instance-ids: description: | List of instance IDs. in: body required: true type: list of strings instance-name: description: | Instance name. in: body required: true type: string lead-time: description: | How long lead time VNF needs for 'migration_type' operation. VNF needs to report back to Fenix as soon as it is ready, but at least within this time. Reporting as fast as can is crucial for optimizing infrastructure upgrade/maintenance. Zero value means interaction with VNFM is not used for this instance, but instance_group recovery_time needs to be obeyed towards max_impacted_members. in: body required: true type: integer maintenance-workflow-start-time: description: | Maintenance workflow start time. in: body required: true type: string max-impacted-members: description: | Maximum amount of instances that can be impacted. Note! This can be dynamic to VNF load. This is important to know how many instances can be scaled down and still have this value above zero to be able to move VMs between nodes. in: body required: true type: integer max-instances-per-host: description: | Describes how many instance can be on same host if anti_affinity_group: True Already exist in OpenStack as 'max_server_per_host', but might not exist in different clouds. in: body required: true type: integer max-interruption-time: description: | Seconds of how long live migration can take. in: body required: true type: integer metadata: description: | Metadata; like hints to projects in: body required: true type: dictionary migration-type: description: | LIVE_MIGRATION, MIGRATION or OWN_ACTION Own action is create new and delete old instance. Note! VNF need to obey resource_mitigation with own action This affects to order of delete old and create new to not over commit the resources. in: body required: true type: string recovery-time: description: | VNF recovery time after operation to instance. Workflow needs to take into account recovery_time for previous instance moved and only then start moving next obyeing max_impacted_members Note! regardless anti_affinity group or not in: body required: true type: integer resource-mitigation: description: | Instance needs double allocation when being migrated. This is true also if instance first scaled out and only then the old instance is removed. It must be True also if VNF needed to scale down, since we go over that scaled down capacity. in: body required: true type: boolean upgrade-list: description: | List of needed SW upgrade packages: Default download directory is /tmp/. Download URL with filename including 'workflow' or 'actions' are automatically extracted to /tmp//. Plugins will be used straight from those directories if Fenix did not have a plugin with the same name. Your plugin can have other files also that it is going to need, everything will be extracted under those defined directories with the directory hiararchy inside the package. Download directory and the content will be recursively removed when the session is deleted by the admin. in: body required: false type: list of dictionaries uuid: description: | uuid in: body required: true type: string uuid-list: description: | list of UUID strings in: body required: true type: string workflow-name: description: | Maintenance workflow to be used. in: body required: true type: string workflow-state: description: | Maintenance workflow state. in: body required: true type: string workflow-state-optional: description: | Maintenance workflow state or previous state if not given. The workflow will continue from this state. in: body required: false type: string workflow-state-reply: description: | There can have different values depending on what is the maintenance session state to reply to. In the below example, the maintenance state is 'PLANNED_MAINTENANCE' and the reply state is formed by adding 'ACK\_' or 'NACK\_' as the prefix to reply value. in: body required: true type: string