Невозможно выполнить операцию жизненного цикла с помощью плагина скрипта - PullRequest
0 голосов
/ 13 апреля 2019

Я пытаюсь узнать, как использовать скрипт плагин.Я следую документации по плагину скрипта здесь , но не могу заставить его работать.

Я пытался использовать плагин двумя способами.Первый, когда операция cloudify.interface.lifecycle.start отображается непосредственно в сценарий:

tosca_definitions_version: cloudify_dsl_1_3
imports:
  - 'http://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml'
node_templates:
  Import_Project:
    type: cloudify.nodes.WebServer
    capabilities:
      scalable:
        properties:
          default_instances: 1
    interfaces:
      cloudify.interfaces.lifecycle:
        start:
          implementation: scripts/create_project.sh
          inputs: {}

Вторая с прямым отображением:

tosca_definitions_version: cloudify_dsl_1_3
imports:
  - 'http://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml'
node_templates:
  Import_Project:
    type: cloudify.nodes.WebServer
    capabilities:
      scalable:
        properties:
          default_instances: 1
    interfaces:
      cloudify.interfaces.lifecycle:
        start:
          implementation: script.script_runner.tasks.run
          inputs:
            script_path: scripts/create_project.sh

Я создал каталогименованные сценарии и поместили приведенный ниже сценарий create_project.sh в этот каталог:

#! /bin/bash -e

ctx logger info "Hello to this world"
hostname

Я получаю ошибки при проверке чертежа.Ошибка при сопоставлении операции непосредственно со сценарием:

[2019-04-13 13:29:40.594] [DEBUG] DslParserExecClient - got output from dsl parser Could not extract plugin from operation mapping 'scripts/create_project.sh', which is declared for operation 'start'. In interface 'cloudify.interfaces.lifecycle' in node 'Import_Project' of type 'cloudify.nodes.WebServer'
  in: /opt/cloudify-composer/backend/dev/workspace/2/tmp-27O0e1t813N6as
  in line: 3, column: 2
  path: node_templates.Import_Project
  value: {'interfaces': {'cloudify.interfaces.lifecycle': {'start': {'implementation': 'scripts/create_project.sh', 'inputs': {}}}}, 'type': 'cloudify.nodes.WebServer', 'capabilities': {'scalable': {'properties': {'default_instances': 1}}}}

Ошибка при использовании прямого сопоставления:

[2019-04-13 13:25:21.015] [DEBUG] DslParserExecClient - got output from dsl parser node 'Import_Project' has no relationship which makes it contained within a host and it has a plugin 'script' with 'host_agent' as an executor. These types of plugins must be installed on a host
  in: /opt/cloudify-composer/backend/dev/workspace/2/tmp-279QCz2CV3Y81L
  in line: 2, column: 0
  path: node_templates
  value: {'Import_Project': {'interfaces': {'cloudify.interfaces.lifecycle': {'start': {'implementation': 'script.script_runner.tasks.run', 'inputs': {'script_path': 'scripts/create_project.sh'}}}}, 'type': 'cloudify.nodes.WebServer', 'capabilities': {'scalable': {'properties': {'default_instances': 1}}}}}

Чего не хватает, чтобы эта работа работала?

...