611b8b1043
Added a sample Ansible Driver as an option for users who want to use ansible for configuration of VNFs. In this Sample Ansible Driver, the following key LCMs are supported: - instantiate_end - scale_start - scale_end - heal_end - terminate_start Implements: blueprint add-ansible-mgmt-driver-sample Spec: https://review.opendev.org/c/openstack/tacker-specs/+/814689 Change-Id: I539f1ab5442196865155f12fe0b2b4106feedeae
136 lines
4.4 KiB
Python
136 lines
4.4 KiB
Python
# 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.
|
|
|
|
SCHEMA = """
|
|
type: object
|
|
required:
|
|
- vdus
|
|
properties:
|
|
vdus:
|
|
type: object
|
|
additionalProperties: false
|
|
patternProperties:
|
|
^[!-~]+$:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- config
|
|
properties:
|
|
config:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- order
|
|
- vm_app_config
|
|
properties:
|
|
order:
|
|
type: integer
|
|
vm_app_config:
|
|
type: object
|
|
additionalProperties: false
|
|
anyOf:
|
|
- required:
|
|
- instantiation
|
|
- required:
|
|
- termination
|
|
- required:
|
|
- healing
|
|
- required:
|
|
- scale-in
|
|
- required:
|
|
- scale-out
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- ansible
|
|
- remote-command
|
|
node_pair:
|
|
type: string
|
|
username:
|
|
type: string
|
|
password:
|
|
type: string
|
|
priv_key_file:
|
|
type: string
|
|
retry_count:
|
|
type:
|
|
- integer
|
|
- string
|
|
retry_interval:
|
|
type:
|
|
- integer
|
|
- string
|
|
connection_wait_timeout:
|
|
type:
|
|
- integer
|
|
- string
|
|
command_execution_wait_timeout:
|
|
type:
|
|
- integer
|
|
- string
|
|
execute-host:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- host
|
|
properties:
|
|
host:
|
|
type: string
|
|
username:
|
|
type: string
|
|
password:
|
|
type: string
|
|
priv_key_file:
|
|
type: string
|
|
patternProperties:
|
|
^instantiation|termination|healing|scale-in|scale-out$:
|
|
type: array
|
|
items:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- order
|
|
oneOf:
|
|
- required:
|
|
- path
|
|
- required:
|
|
- command
|
|
properties:
|
|
path:
|
|
type: string
|
|
params:
|
|
type: object
|
|
command:
|
|
type: string
|
|
order:
|
|
type: integer
|
|
target_hosts:
|
|
type: array
|
|
items:
|
|
type: string
|
|
execute-host:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- host
|
|
properties:
|
|
host:
|
|
type: string
|
|
username:
|
|
type: string
|
|
password:
|
|
type: string
|
|
priv_key_file:
|
|
type: string
|
|
"""
|