tacker/samples/mgmt_driver/ansible/config_validator_schema.py

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
"""