a )gS@sddlmZmZmZeZddlmZddlm Z ddl m Z ddl m Z ddlmZddlmZddlmZeZGd d d e Zd S) )absolute_importdivisionprint_function)Mapping)AnsibleActionFail) string_types) ActionBase) parse_address)Display) combine_varscs*eZdZdZdZdZdfdd ZZS) ActionModulez: Create inventory hosts and groups in the memory inventoryTFNc sd|_tt|||}~|jj}|di}t|trDt ||}nt dt || d| d| dd}|durt dt d|zt|d d \}}Wnty|}d}Yn0|r||d <| d | d | dd} g} | rLt| tr| } n&t| tr| d} nt d|jd| D]} | | vr,| | q,t} td}|D]}||vrb||| |<qbd |d<t|| | d|d<|S)NTZ _raw_paramszEInvalid raw parameters passed, requires a dictonary/mapping got a %snamehostnamehostz+name, host or hostname needs to be providedz)creating host via 'add_host': hostname=%sF)Z allow_rangesZansible_ssh_port groupnamegroupsgroup,z#Groups must be specified as a list.)obj)r rrrZchanged)Z host_namer host_varsZadd_host)Z_supports_check_modesuperr runZ_taskargspop isinstancerr rtypegetdisplayZvvr Exceptionlistrsplitappendstripdict frozensetkeys)selftmpZ task_varsresultrrawnew_namer portrZ new_groupsZ group_listZ group_namerZ special_argsk __class__C/usr/lib/python3.9/site-packages/ansible/plugins/action/add_host.pyr*sL           zActionModule.run)NN)__name__ __module__ __qualname____doc__ZBYPASS_HOST_LOOPZTRANSFERS_FILESr __classcell__r0r0r.r1r #sr N)Z __future__rrrrZ __metaclass__collections.abcrZansible.errorsrZansible.module_utils.sixrZansible.plugins.actionrZansible.parsing.utils.addressesr Zansible.utils.displayr Zansible.utils.varsr rr r0r0r0r1s