Portál AbcLinuxu, 6. května 2025 14:07

Dotaz: Ansible úprava modulu - python SyntaxError: invalid syntax

29.5.2017 00:37 majales | skóre: 29 | blog: Majales
Ansible úprava modulu - python SyntaxError: invalid syntax
Přečteno: 275×
Odpovědět | Admin
Zdravím, Snažím se upravit modul ansible pro Vmware vmotion. Konkrétně tento: https://github.com/ansible/ansible/pull/21421. Podařilo se mi zmigrovat mezi datastore a udělat z THICK disku THIN, ale když jsem se snažil udělat to inteligentněji přes parametr tak mi to vždy skončí s chybou.

Inkriminovaný kus kódu z modulu:
    argument_spec = vmware_argument_spec()
    argument_spec.update(
        dict(
            vm_name=dict(required=True, aliases=['vm'], type='str'),
            destination_host=dict(required=False, aliases=['destination'], type='str'),
            destination_datastore=dict(required=False, aliases=['datastore'], type='str')
            destination_disc=dict(required=False, aliases=['disc'], type='str')
        )
    )
    module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=True, required_one_of=[['destination_host', 'destination_datastore']])
 
Přidal jsem tento řádek:
destination_disc=dict(required=False, aliases=['disc'], type='str')
Spuštění modulu pak skončí touto chybou:
ansible-playbook  vmware_vmotion_pok.yml -vvvv
Using /etc/ansible/ansible.cfg as config file

Loading callback plugin default of type stdout, v2.0 from /usr/lib/python2.7/site-packages/ansible/plugins/callback/__init__.pyc

PLAYBOOK: vmware_vmotion_pok.yml ******************************************************************************************************
1 plays in vmware_vmotion_pok.yml

PLAY [vcenter.finnology.sk] ***********************************************************************************************************
META: ran handlers

TASK [Perform storage vMotion of of VM] ***********************************************************************************************
task path: /etc/ansible/vmware_vmotion_pok.yml:29
The full traceback is:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", line 125, in run
    res = self._execute()
  File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", line 521, in _execute
    result = self._handler.run(task_vars=variables)
  File "/usr/lib/python2.7/site-packages/ansible/plugins/action/normal.py", line 45, in run
    results = merge_hash(results, self._execute_module(tmp=tmp, task_vars=task_vars, wrap_async=wrap_async))
  File "/usr/lib/python2.7/site-packages/ansible/plugins/action/__init__.py", line 635, in _execute_module
    (module_style, shebang, module_data, module_path) = self._configure_module(module_name=module_name, module_args=module_args, task_vars=task_vars)
  File "/usr/lib/python2.7/site-packages/ansible/plugins/action/__init__.py", line 160, in _configure_module
    task_vars=task_vars, module_compression=self._play_context.module_compression)
  File "/usr/lib/python2.7/site-packages/ansible/executor/module_common.py", line 796, in modify_module
    (b_module_data, module_style, shebang) = _find_module_utils(module_name, b_module_data, module_path, module_args, task_vars, module_compression)
  File "/usr/lib/python2.7/site-packages/ansible/executor/module_common.py", line 678, in _find_module_utils
    recursive_finder(module_name, b_module_data, py_module_names, py_module_cache, zf)
  File "/usr/lib/python2.7/site-packages/ansible/executor/module_common.py", line 462, in recursive_finder
    tree = ast.parse(data)
  File "/usr/lib64/python2.7/ast.py", line 37, in parse
    return compile(source, filename, mode, PyCF_ONLY_AST)
  File "<\unknown>", line 137
    destination_disc=dict(required=False, aliases=['disc'], type='str')
                   ^
SyntaxError: invalid syntax

fatal: [vcenter.aaaaa.cz]: FAILED! => {
    "failed": true,
    "msg": "Unexpected failure during module execution.",
    "stdout": ""
}

Musel jsem přidat lomítko před unknown.

Nevíte někdo proč to vyhazuje chybu?

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (majales (tazatel))
29.5.2017 06:56 alfonz
Rozbalit Rozbalit vše Re: Ansible úprava modulu - python SyntaxError: invalid syntax
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vypadá to že tam chybí čárka před tím destination_disc
29.5.2017 12:18 majales | skóre: 29 | blog: Majales
Rozbalit Rozbalit vše Re: Ansible úprava modulu - python SyntaxError: invalid syntax
Zdravím, dík za tip. Taky jsem se k tomu dopracoval. To je když něco člověk řeší v pozdních nočních hodinách a už na to nevidí.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.