278 lines
7.1 KiB
YAML
278 lines
7.1 KiB
YAML
#############################################################################
|
|
# 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/<session_id>. Download URL with filename
|
|
including 'workflow' or 'actions' are automatically extracted to
|
|
/tmp/<session_id>/<workflow|actions>. 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
|