2017-05-29 11 views
0

yamlテンプレート(main.yamlと呼ぶことができます)は、以下のような別のyamlテンプレートを呼び出しています。 VM1.yamlテンプレートは、別のスタックを作成する通常のテンプレートです。Pythonでスタックを作成するネストされたyamlテンプレート

main.yaml以下

resources: 
    VM1: 
    type: OS::Heat::Stack 
    properties: 
     template: {get_file: vm/VM1.yaml} 
     parameters: 
     name: { list_join: ["_", [ { get_param: 'OS::stack_name' }, "VM1"]] } 

は、スタックがMAIN_VM1_MOUNTED.yaml を使用して作成するため

  1. StackCreation.py =>これは、呼び出しをフォルダ構造である(これは、ネストされたテンプレートのようになります)
  2. MAIN_VM1_MOUNTED.yaml
  3. vm/VM1.yaml
  4. vm/parameter.y aml =>これはパラメータを渡すパラメータファイルです。

    template_file = 'MAIN_VM1_MOUNTED.yaml' 
    template = open(template_file, 'r') 
    stack_name = 'HeenaStack' + sys.argv[5] 
    
    heat_parameters = open('vm/parameter.yaml') 
    temp_params = yaml.load(heat_parameters) 
    heat_parameters.close() 
    
    try: 
        #hc.stacks.create(stack_name=stack_name, template=template.read(), parameters=temp_params["parameters"]) 
        stackCreate = hc.stacks.create(stack_name=stack_name, template=template.read(), parameters=temp_params["parameters"]) 
        print("Stack Created successfully", "Stack ID:", str(hc.stacks.get(stack_name).id)) 
    

WHN私は、このネストされたYAMLテンプレートで作成し、スタックが正常に作成されるOpenStackのスタックを実行しています。同じことがPythonでは起こっていません。 以下のエラーが発生しています。

Bad request : {'explanation': 'The server could not comply with the request since it is either malformed or otherwise incorrect.', 'code': 400, 'error': {'message': 'Property error: : resources.VM1.properties.template: : No content found in the "files" section for get_file path: C:/Users/xxx/PycharmProjects/xxx/vm/VM1.yaml', 'traceback': None, 'type': 'StackValidationFailed'}, 'title': 'Bad Request' 

私は何をする必要があるのか​​理解していません。

答えて

0

テンプレート= template_utils.process_template_path(template_file)を使用して解決しました

関連する問題