plugins: cfy_util: &id001 executor: central_deployment_agent package_name: cloudify-utilities-plugin package_version: 2.0.7 cfy_files: *id001 cfy_ftp: *id001 cloudify_custom_workflow: *id001 cloudify_hooks_workflow: *id001 cloudinit: *id001 configuration: *id001 keys: *id001 suspend: *id001 terminal: *id001 rest: *id001 scalelist: *id001 secrets: *id001 lifecycle_operations: *id001 resources: *id001 iso: *id001 data_types: cloudify.datatypes.Deployment: properties: external_resource: default: false id: type: string required: false inputs: default: {} outputs: required: false all_outputs: type: boolean required: false default: true logs: required: false cloudify.datatypes.Node: properties: id: type: string cloudify.datatypes.NodeInstance: properties: node: type: cloudify.datatypes.Node required: false id: type: string required: false cloudify.datatypes.DeploymentProxy: properties: blueprint: type: cloudify.datatypes.Blueprint required: true deployment: type: cloudify.datatypes.Deployment required: true executions_start_args: default: {} reexecute: default: false cloudify.datatypes.NodeInstanceProxy: properties: blueprint: type: cloudify.datatypes.Blueprint required: true deployment: type: cloudify.datatypes.Deployment required: true executions_start_args: default: {} reexecute: default: false node_instance: type: cloudify.datatypes.NodeInstance cloudify.datatypes.key: properties: private_key_path: type: string required: false public_key_path: type: string default: ~/.ssh/id_rsa.pub key_name: type: string required: false algorithm: type: string default: RSA bits: type: integer default: 2048 comment: type: string required: false passphrase: type: string required: false openssh_format: type: boolean required: false unvalidated: required: false cloudify.datatypes.ftp_auth: properties: user: default: '' password: default: '' ip: default: '' port: default: 21 ignore_host: default: false tls: default: false cloudify.datatypes.terminal_auth: properties: user: default: '' password: default: '' ip: default: '' key_content: default: '' port: default: 22 store_logs: default: false promt_check: default: [] warnings: default: [] errors: default: [] criticals: default: [] exit_command: default: exit smart_device: default: false cloudify.datatypes.File: properties: resource_path: type: string required: true file_path: type: string required: true owner: type: string required: true mode: type: integer required: true template_variables: required: false use_sudo: type: boolean default: false allow_failure: type: boolean default: false node_types: cloudify.nodes.DeploymentProxy: derived_from: cloudify.nodes.Root properties: resource_config: type: cloudify.datatypes.DeploymentProxy default: {} client: default: {} plugins: default: [] secrets: default: {} interfaces: cloudify.interfaces.lifecycle: create: implementation: cfy_util.cloudify_deployment_proxy.tasks.upload_blueprint configure: implementation: cfy_util.cloudify_deployment_proxy.tasks.create_deployment start: implementation: cfy_util.cloudify_deployment_proxy.tasks.execute_start inputs: workflow_id: type: string default: install timeout: type: integer default: 1800 interval: type: integer default: 10 stop: implementation: cfy_util.cloudify_deployment_proxy.tasks.execute_start inputs: workflow_id: default: uninstall resource_config: default: blueprint: { get_property: [SELF, resource_config, blueprint] } deployment: { get_property: [SELF, resource_config, deployment] } reexecute: { get_property: [SELF, resource_config, reexecute] } executions_start_args: allow_custom_parameters: true parameters: ignore_failure: true delete: implementation: cfy_util.cloudify_deployment_proxy.tasks.delete_deployment cloudify.nodes.NodeInstanceProxy: derived_from: cloudify.nodes.DeploymentProxy properties: resource_config: type: cloudify.datatypes.NodeInstanceProxy default: {} cloudify.nodes.CloudInit.CloudConfig: derived_from: cloudify.nodes.Root properties: header: default: '#cloud-config' encode_base64: default: false resource_config: default: {} interfaces: cloudify.interfaces.lifecycle: create: implementation: cloudinit.cloudify_cloudinit.tasks.update configure: implementation: cloudinit.cloudify_cloudinit.tasks.update start: implementation: cloudinit.cloudify_cloudinit.tasks.update stop: implementation: cloudinit.cloudify_cloudinit.tasks.update delete: implementation: cloudinit.cloudify_cloudinit.tasks.delete cloudify.nodes.ConfigurationLoader: derived_from: cloudify.nodes.ApplicationServer properties: parameters_json: default: '' interfaces: cloudify.interfaces.lifecycle: configure: implementation: configuration.cloudify_configuration.tasks.load_configuration inputs: parameters: default: { get_property: [SELF, parameters_json] } merge_dicts: default: false configuration_loader: derived_from: cloudify.nodes.ConfigurationLoader cloudify.nodes.keys.RSAKey: derived_from: cloudify.nodes.Root properties: use_secret_store: type: boolean default: true use_secrets_if_exist: type: boolean default: false key_name: type: string required: false resource_config: type: cloudify.datatypes.key required: true interfaces: cloudify.interfaces.lifecycle: create: implementation: keys.cloudify_ssh_key.operations.create inputs: store_public_key_material: type: boolean default: true store_private_key_material: type: boolean default: false delete: implementation: keys.cloudify_ssh_key.operations.delete cloudify.keys.nodes.RSAKey: derived_from: cloudify.nodes.keys.RSAKey cloudify.nodes.terminal.Raw: derived_from: cloudify.nodes.Root properties: terminal_auth: type: cloudify.datatypes.terminal_auth interfaces: cloudify.interfaces.lifecycle: create: implementation: terminal.cloudify_terminal.tasks.run inputs: {} configure: implementation: terminal.cloudify_terminal.tasks.run inputs: {} start: implementation: terminal.cloudify_terminal.tasks.run inputs: {} stop: implementation: terminal.cloudify_terminal.tasks.run inputs: {} delete: implementation: terminal.cloudify_terminal.tasks.run inputs: {} cloudify.terminal.raw: derived_from: cloudify.nodes.terminal.Raw cloudify.nodes.File: derived_from: cloudify.nodes.Root properties: resource_config: type: cloudify.datatypes.File required: true interfaces: cloudify.interfaces.lifecycle: create: implementation: cfy_files.cloudify_files.tasks.create delete: implementation: cfy_files.cloudify_files.tasks.delete cloudify.nodes.ftp: derived_from: cloudify.nodes.Root properties: resource_config: type: cloudify.datatypes.ftp_auth required: true raw_files: default: {} files: default: {} interfaces: cloudify.interfaces.lifecycle: create: implementation: cfy_ftp.cloudify_ftp.tasks.create inputs: resource_config: default: { get_property: [SELF, resource_config] } raw_files: default: { get_property: [SELF, raw_files] } files: default: { get_property: [SELF, files] } delete: implementation: cfy_ftp.cloudify_ftp.tasks.delete inputs: resource_config: default: { get_property: [SELF, resource_config] } cloudify.nodes.rest.Requests: derived_from: cloudify.nodes.Root properties: hosts: default: [] host: default: [] port: type: integer default: -1 ssl: type: boolean default: false verify: default: true cert: default: ~ timeout: default: ~ proxies: default: {} params: default: {} interfaces: cloudify.interfaces.lifecycle: create: implementation: rest.cloudify_rest.tasks.execute inputs: params: &id002 default: {} template_file: &id003 default: '' save_path: &id004 default: false prerender: &id005 default: false remove_calls: &id006 default: false force_rerun: &id007 default: false retry_count: &id008 default: 1 retry_sleep: &id009 default: 15 configure: implementation: rest.cloudify_rest.tasks.execute inputs: params: *id002 template_file: *id003 save_path: *id004 prerender: *id005 remove_calls: *id006 force_rerun: *id007 retry_count: *id008 retry_sleep: *id009 start: implementation: rest.cloudify_rest.tasks.execute inputs: params: *id002 template_file: *id003 save_path: *id004 prerender: *id005 remove_calls: *id006 force_rerun: *id007 retry_count: *id008 retry_sleep: *id009 stop: implementation: rest.cloudify_rest.tasks.execute inputs: params: *id002 template_file: *id003 save_path: *id004 prerender: *id005 remove_calls: *id006 force_rerun: *id007 retry_count: *id008 retry_sleep: *id009 delete: implementation: rest.cloudify_rest.tasks.execute inputs: params: *id002 template_file: *id003 save_path: *id004 prerender: *id005 remove_calls: *id006 force_rerun: *id007 retry_count: *id008 retry_sleep: *id009 cloudify.rest.Requests: derived_from: cloudify.nodes.rest.Requests cloudify.nodes.rest.BunchRequests: derived_from: cloudify.nodes.Root properties: hosts: default: [] host: default: [] port: type: integer default: -1 ssl: type: boolean default: false verify: default: true cert: default: ~ timeout: default: ~ proxies: default: {} params: default: {} interfaces: cloudify.interfaces.lifecycle: create: implementation: rest.cloudify_rest.tasks.bunch_execute inputs: auth: default: {} templates: default: {} configure: implementation: rest.cloudify_rest.tasks.bunch_execute inputs: auth: default: {} templates: default: {} start: implementation: rest.cloudify_rest.tasks.bunch_execute inputs: auth: default: {} templates: default: {} stop: implementation: rest.cloudify_rest.tasks.bunch_execute inputs: auth: default: {} templates: default: {} delete: implementation: rest.cloudify_rest.tasks.bunch_execute inputs: auth: default: {} templates: default: {} cloudify.rest.BunchRequests: derived_from: cloudify.nodes.rest.BunchRequests cloudify.nodes.secrets.Writer: derived_from: cloudify.nodes.Root properties: entries: default: {} do_not_delete: type: boolean default: false variant: type: string required: false separator: type: string required: false logs_secrets: type: boolean default: false required: false update_if_exists: type: boolean default: false required: false interfaces: cloudify.interfaces.lifecycle: create: implementation: secrets.cloudify_secrets.tasks.create delete: implementation: secrets.cloudify_secrets.tasks.delete cloudify.interfaces.operations: update: implementation: secrets.cloudify_secrets.tasks.update cloudify.nodes.secrets.Reader: derived_from: cloudify.nodes.Root properties: keys: default: [] variant: type: string required: false separator: type: string required: false interfaces: cloudify.interfaces.lifecycle: create: implementation: secrets.cloudify_secrets.tasks.read cloudify.interfaces.operations: update: implementation: secrets.cloudify_secrets.tasks.read cloudify.nodes.resources.List: derived_from: cloudify.nodes.Root properties: resource_config: default: [] interfaces: cloudify.interfaces.lifecycle: create: resources.cloudify_resources.tasks.create_list delete: resources.cloudify_resources.tasks.delete_list cloudify.interfaces.operations: reserve: implementation: resources.cloudify_resources.tasks.reserve_list_item inputs: reservation_id: type: string default: '' return: implementation: resources.cloudify_resources.tasks.return_list_item inputs: reservation_id: type: string default: '' cloudify.nodes.resources.ListItem: derived_from: cloudify.nodes.Root interfaces: cloudify.interfaces.lifecycle: create: resources.cloudify_resources.tasks.create_list_item delete: resources.cloudify_resources.tasks.delete_list_item cloudify.nodes.resources.ModifiedIso: derived_from: cloudify.nodes.Root properties: iso_path: type: string required: true output_iso_path: type: string required: false new_directories: default: [] new_files: default: [] interfaces: cloudify.interfaces.lifecycle: create: implementation: iso.cloudify_iso.tasks.modify_iso inputs: {} delete: implementation: iso.cloudify_iso.tasks.delete_iso inputs: {} relationships: cloudify.relationships.load_from_config: derived_from: cloudify.relationships.depends_on target_interfaces: cloudify.interfaces.relationship_lifecycle: preconfigure: implementation: configuration.cloudify_configuration.tasks.load_configuration_to_runtime_properties inputs: source_config: default: { get_attribute: [TARGET, params] } load_from_config: derived_from: cloudify.relationships.load_from_config cloudify.relationships.resources.reserve_list_item: derived_from: cloudify.relationships.connected_to target_interfaces: cloudify.interfaces.relationship_lifecycle: preconfigure: implementation: resources.cloudify_resources.tasks.reserve_list_item inputs: resources_list_node_id: type: string default: '' unlink: resources.cloudify_resources.tasks.return_list_item workflows: configuration_update: mapping: configuration.cloudify_configuration.tasks.update availability_rules: node_instances_active: - all parameters: params: {} configuration_node_id: type: string default: configuration_loader merge_dict: default: false node_types_to_update: default: - juniper_node_config - fortinet_vnf_type suspend: mapping: suspend.cloudify_suspend.workflows.suspend availability_rules: node_instances_active: - all resume: mapping: suspend.cloudify_suspend.workflows.resume availability_rules: node_instances_active: - all - partial statistics: mapping: suspend.cloudify_suspend.workflows.statistics availability_rules: node_instances_active: - all backup: mapping: suspend.cloudify_suspend.workflows.backup availability_rules: node_instances_active: - all - partial parameters: snapshot_name: default: '' snapshot_incremental: default: true snapshot_type: default: irregular snapshot_rotation: default: 1 restore: mapping: suspend.cloudify_suspend.workflows.restore availability_rules: node_instances_active: - partial - none parameters: snapshot_name: default: '' snapshot_incremental: default: true remove_backup: mapping: suspend.cloudify_suspend.workflows.remove_backup parameters: snapshot_name: default: '' snapshot_incremental: default: true scaleuplist: mapping: scalelist.cloudify_scalelist.workflows.scaleuplist availability_rules: node_instances_active: - all - partial parameters: scalable_entity_properties: default: {} scale_compute: default: false ignore_failure: default: false type: boolean ignore_rollback_failure: default: true type: boolean scale_transaction_field: type: string default: _transaction_id scale_transaction_value: type: string default: '' node_sequence: default: false rollback_on_failure: default: true type: boolean scaledownlist: mapping: scalelist.cloudify_scalelist.workflows.scaledownlist availability_rules: node_instances_active: - all - partial parameters: scale_compute: default: false ignore_failure: default: false type: boolean scale_transaction_field: type: string default: _transaction_id scale_node_name: type: string default: '' scale_node_field: default: '' scale_node_field_value: default: '' force_db_cleanup: default: false all_results: default: false node_sequence: default: false force_remove: default: true type: boolean rollback_on_failure: default: true type: boolean update_operation_filtered: mapping: scalelist.cloudify_scalelist.workflows.execute_operation availability_rules: node_instances_active: - all - partial parameters: operation: type: string default: cloudify.interfaces.lifecycle.update operation_kwargs: default: {} allow_kwargs_override: default: ~ run_by_dependency_order: default: false type_names: default: [] node_ids: type: list default: [] node_instance_ids: type: list default: [] node_field: default: '' node_field_value: default: '' hook_workflow_run_filtered: mapping: cloudify_hooks_workflow.cloudify_hooks_workflow.tasks.run_workflow parameters: inputs: default: {} logger_file: default: '' client_config: default: {} filter_by: {} workflow_for_run: default: uninstall workflow_params: default: {} hook_workflow_rest: mapping: rest.cloudify_rest.tasks.execute_as_workflow parameters: inputs: default: {} logger_file: default: '' properties: default: {} params: default: {} template_file: default: '' save_path: default: false prerender: default: false remove_calls: default: false hook_workflow_terminal: mapping: terminal.cloudify_terminal.tasks.run_as_workflow parameters: inputs: default: {} logger_file: default: '' terminal_auth: type: cloudify.datatypes.terminal_auth calls: default: [] alt_start: mapping: lifecycle_operations.cloudify_rollback_workflow.workflows.start availability_rules: node_instances_active: - all - partial parameters: operation_parms: default: {} run_by_dependency_order: default: true type_names: default: [] node_ids: type: list default: [] node_instance_ids: type: list default: [] alt_stop: mapping: lifecycle_operations.cloudify_rollback_workflow.workflows.stop availability_rules: node_instances_active: - all - partial parameters: operation_parms: default: {} run_by_dependency_order: default: true type_names: default: [] node_ids: type: list default: [] node_instance_ids: type: list default: [] ignore_failure: default: false alt_precreate: mapping: lifecycle_operations.cloudify_rollback_workflow.workflows.precreate availability_rules: node_instances_active: - partial - none parameters: operation_parms: default: {} run_by_dependency_order: default: true type_names: default: [] node_ids: type: list default: [] node_instance_ids: type: list default: [] ignore_failure: default: false alt_create: mapping: lifecycle_operations.cloudify_rollback_workflow.workflows.create availability_rules: node_instances_active: - partial - none parameters: operation_parms: default: {} run_by_dependency_order: default: true type_names: default: [] node_ids: type: list default: [] node_instance_ids: type: list default: [] ignore_failure: default: false alt_configure: mapping: lifecycle_operations.cloudify_rollback_workflow.workflows.configure availability_rules: node_instances_active: - partial - none parameters: operation_parms: default: {} run_by_dependency_order: default: true type_names: default: [] node_ids: type: list default: [] node_instance_ids: type: list default: [] ignore_failure: default: false alt_poststart: mapping: lifecycle_operations.cloudify_rollback_workflow.workflows.poststart availability_rules: node_instances_active: - all - partial parameters: operation_parms: default: {} run_by_dependency_order: default: true type_names: default: [] node_ids: type: list default: [] node_instance_ids: type: list default: [] ignore_failure: default: false alt_prestop: mapping: lifecycle_operations.cloudify_rollback_workflow.workflows.prestop availability_rules: node_instances_active: - all - partial parameters: operation_parms: default: {} run_by_dependency_order: default: true type_names: default: [] node_ids: type: list default: [] node_instance_ids: type: list default: [] ignore_failure: default: false alt_delete: mapping: lifecycle_operations.cloudify_rollback_workflow.workflows.delete availability_rules: node_instances_active: - all - partial parameters: operation_parms: default: {} run_by_dependency_order: default: true type_names: default: [] node_ids: type: list default: [] node_instance_ids: type: list default: [] ignore_failure: default: false alt_postdelete: mapping: lifecycle_operations.cloudify_rollback_workflow.workflows.postdelete availability_rules: node_instances_active: - all - partial parameters: operation_parms: default: {} run_by_dependency_order: default: true type_names: default: [] node_ids: type: list default: [] node_instance_ids: type: list default: [] ignore_failure: default: false rollback_deprecated: mapping: lifecycle_operations.cloudify_rollback_workflow.workflows.rollback availability_rules: node_instances_active: - all - partial parameters: type_names: type: list default: [] node_ids: type: list default: [] node_instance_ids: type: list default: [] full_rollback: default: false batch_deploy_and_install: mapping: cloudify_custom_workflow.cloudify_custom_workflow.tasks.batch_deploy_and_install availability_rules: node_instances_active: - none parameters: blueprint_id: type: string parent_deployments: type: list group_id: type: string default: '' new_deployment_ids: type: list default: [] inputs: type: list default: [] add_parent_labels: type: boolean default: false labels: type: list default: [] batch_deploy: mapping: cloudify_custom_workflow.cloudify_custom_workflow.tasks.batch_deploy availability_rules: node_instances_active: - none parameters: blueprint_id: type: string parent_deployments: type: list group_id: type: string default: '' new_deployment_ids: type: list default: [] inputs: type: list default: [] labels: type: list default: [] batch_install: mapping: cloudify_custom_workflow.cloudify_custom_workflow.tasks.batch_install availability_rules: node_instances_active: - none parameters: group_id: type: string