o nnh @szddlmZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z ddlmZe ZGd d d e Zd S) ) annotations)Mapping)AnsibleActionFail) string_types) ActionBase) parse_address)Display) combine_varscs.eZdZdZdZdZdZdfdd ZZS) ActionModulez: Create inventory hosts and groups in the memory inventoryTFNc stt|||}~|jj}|di}t|trt||}nt dt || d| d| dd}|dur=t dt d|z t|dd \}}Wn ty[|}d}Ynw|rb||d <| d | d | d d} g} | rt| tr|| } nt| tr| d} nt d|jd| D] } | | vr| | qt} td}|D] }||vr||| |<qd|d<t|| | d|d<|S)N _raw_paramszFInvalid raw parameters passed, requires a dictionary/mapping got a %snamehostnamehostz+name, host or hostname needs to be providedz)creating host via 'add_host': hostname=%sF) allow_rangesansible_ssh_port groupnamegroupsgroup,z#Groups must be specified as a list.)obj)r r rrchanged) host_namer host_varsadd_host)superr run_taskargspop isinstancerr rtypegetdisplayvvr Exceptionlistrsplitappendstripdict frozensetkeys)selftmp task_varsresultrrawnew_namer portr new_groups group_list group_namer special_argsk __class__J/usr/local/lib/python3.10/dist-packages/ansible/plugins/action/add_host.pyr)sP         zActionModule.run)NN) __name__ __module__ __qualname____doc__BYPASS_HOST_LOOP_requires_connection_supports_check_moder __classcell__r;r;r9r<r !s r N) __future__rcollections.abcransible.errorsransible.module_utils.sixransible.plugins.actionransible.parsing.utils.addressesransible.utils.displayransible.utils.varsr r#r r;r;r;r<s