??????????????
Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 173

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 174

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 175

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 176

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 177

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 178
 Udac@`s ddlmZmZmZeZddlZddlZddlZddl Z ddl Z ddl Z ddl m Z ddlmZddlmZddlmZmZmZddlmZddlmZdd lmZmZdd lmZdd l m!Z!dd l"m#Z#dd l$m%Z%ddl&m'Z'e'Z(ddddgZ)gej*D]Z+ee+^qaZ,gej-D]Z+dee j.e+^qZ/e j0dj1e)e,e/Z2e j0de j3Z4dZ5dZ6de7fdYZ8dS(i(tabsolute_importtdivisiontprint_functionN(t attrgetter(tshuffle(t constants(t AnsibleErrortAnsibleOptionsErrortAnsibleParserError(t InventoryData(t string_types(tto_bytestto_text(t parse_address(tinventory_loader(tdeduplicate_list(t unfrackpath(tDisplays^\.s ^host_vars$s ^group_vars$s^vars_plugins$s%s$t|s>^ (.+) # A pattern expression ending with... \[(?: # A [subscript] expression comprising: (-?[0-9]+)| # A single positive or negative number ([0-9]+)([:-]) # Or an x:y or x: range. ([0-9]*) )\] $ cC`sg}g}g}xg|D]_}|s+qn|ddkrK|j|q|ddkrk|j|q|j|qW|gkrdg}n|||S(sS takes a list of patterns and reorders them by modifier to apply them consistently it!t&tall(tappend(tpatternstpattern_regulartpattern_intersectiontpattern_excludetp((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pytorder_patterns@s   cC`st|tr+ttjtt|St|tsOt|dd}nd|krm|jd}nWy%t |dt \}}|g}Wn/t k rt j td|t j}nXg|D]}|jr|j^qS(s Takes a string containing host patterns separated by commas (or a list thereof) and returns a list of single patterns (which may not contain commas). Whitespace is ignored. Also accepts ':' as a separator for backwards compatibility, but it is not recommended due to the conflict with IPv6 addresses and host ranges. Example: 'a,b[1], c[2:3] , d' -> ['a', 'b[1]', 'c[2:3]', 'd'] terrorstsurrogate_or_strictu,t allow_rangessJ(?: # We want to match something comprising: [^\s:\[\]] # (anything other than whitespace or ':[]' | # ...or... \[[^\]]*\] # a single complete bracketed expression) )+ # occurring once or more (t isinstancetlistt itertoolstchaintmaptsplit_host_patternR R tsplitR tTruet ExceptiontretfindalltXtstrip(tpatternRtbasetportR((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyR%\s    tInventoryManagercB`s1eZdZddZedZedZedZdddZ dZ dZ dZ d Z d Zed Zed Zd ZdZdZdeeddZdZdZdZdZdZddZdZdZdZdZdZ RS(s Creates and manages inventory cC`s||_t|_d|_d|_i|_i|_|dkrQg|_n't |t ro|g|_n ||_|j dt dS(Ntcache( t_loaderR t _inventorytNonet _restrictiont_subsett_hosts_patterns_cachet_pattern_cachet_sourcesR R t parse_sourcesR'(tselftloadertsources((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyt__init__s         cC`s |jjS(N(R3t localhost(R;((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyR?scC`s |jjS(N(R3tgroups(R;((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyR@scC`s |jjS(N(R3thosts(R;((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyRAscC`s|jj|||S(N(R3tadd_host(R;thosttgroupR/((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyRBscC`s|jj|S(N(R3t add_group(R;RD((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyREscC`s |jjS(N(R3tget_groups_dict(R;((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyRFscC`s|j|jjS(N(t clear_cachesR3treconcile_inventory(R;((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyRHs cC`s|jj|S(N(R3tget_host(R;thostname((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyRIscC`svtjdg}xGtjD]<}tj|}|rH|j|qtjd|qW|srtdn|S(s, sets up loaded inventory plugins for usage ssetting up inventory pluginss,Failed to load inventory plugin, skipping %ssbNo inventory plugins available to generate inventory, make sure you have at least one whitelisted.( tdisplaytvvvvtCtINVENTORY_ENABLEDRtgetRtwarningR(R;tpluginstnametplugin((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyt_fetch_inventory_pluginss cC`st}xf|jD][}|rd|kr=t|dt}n|j|d|}|rk| rkt}qkqqW|r|jjn%tjrt dn t j ddS(sA iterate over inventory sources and parse each one to populate itt,tfollowR1sENo inventory was parsed, please check your configuration and options.s=No inventory was parsed, only implicit localhost is availableN( tFalseR9Rt parse_sourceR'R3RHRMtINVENTORY_UNPARSED_IS_FAILEDRRKRP(R;R1tparsedtsourcetparse((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyR:s   c C`st}tjd|t|}tjj|rtjd|xFttj|D]}tjd|t j |rq\nt tjj ||dd}|j |d|}tjd||f|s\|}q\q\Wn||j_g}x|jD]} t t| dt| d d } tjd | | jfyt| j|} Wntk rt} nX| ryc| j|j|j|d|y| jWntk rnXt}tjd || fPWqtk ra} tjd || fd j tjtj d} |j!i|d6| d6| d6| d6qtk r} tjd| |fd j tjtj d} |j!i|d6| d6t"| d6| d6qXq tjd| |fq W| r|rxf|D]^}tj#dt |d|dt |dfd|krtjt |dqqWt$j%rt"d|qn|s|dkstjj&|rtj#d|qnd|j_|S(s6 Generate or update inventory for the source provided u'Examining possible inventory source: %su.Searching for inventory files in directory: %suConsidering %sRRR1uparsed %s as %st _load_namet_original_pathtu Attempting to use plugin %s (%s)s)Parsed %s inventory source with %s plugins%s was not parsable by %sitsrcRStexcttbs&%s failed while attempting to parse %ssB%s declined parsing %s as it did not pass its verify_file() methodu( * Failed to parse %s with %s plugin: %su.Completely failed to parse inventory source %ss/etc/ansible/hostss)Unable to parse %s as an inventory sourceN((RWRKtdebugR tostpathtisdirtsortedtlistdirtIGNOREDtsearchR tjoinRXR3tcurrent_sourceRTtgetattrR^tboolt verify_fileR(R\R2tupdate_cache_if_changedtAttributeErrorR'tvvvRt tracebackt format_tbtsystexc_infoRRRPRMt INVENTORY_ANY_UNPARSED_IS_FAILEDtexistsR4(R;R[R1RZtb_sourcetitfullpathtparsed_this_onetfailuresRSt plugin_namet plugin_wantsteRbtfail((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyRXsl ! $   ","6  2   cC`si|_i|_dS(s clear all caches N(R7R8(R;((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyRG>s cC`s*|jt|_|jdtdS(s recalculate inventory R1N(RGR R3R:RW(R;((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pytrefresh_inventoryDs  cC`syB|ddks.tjtj|}ntj|d}Wn!tk retd|nXg}x-|D]%}|j|rs|j|qsqsW|S(Nit~isInvalid host list pattern: %s(R)tcompiletfnmatcht translateR(RtmatchR(R;titemst pattern_strR-tresultstitem((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyt _match_listKs  Rc C`sg}t|tr|}n |g}|r| rQ|jrQ|j|jn| rt|jrt|j|jnt|}||jkr^t|}|j||(| r |jr t d|j|jD} g|D]} | j | kr| ^q|(n| rH|jrHg|D]} | j |jkr | ^q |(nt ||j|~sRgtreverse_sortedtkeyRRtreversetreverse_inventoryNiRt inventorys1Invalid 'order' specified for inventory hosts: %s(ssortedR(NR(R R!R6textendR5ttupleR7R%t_evaluate_patternstsetRRRRRgRRR4R( R;R-t ignore_limitstignore_restrictionstorderRAt pattern_listt pattern_hashRt subset_uuidsth((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyt get_hosts\s:    ",/ 0    cC`s1t|}g}x|D]}||jjkrM|j|jj|q|j|}|ddkrt|}g|D]}||kr|^q}q|ddkrt|}g|D]}||kr|^q}qtd|D}|jg|D]}|j|kr|^qqW|S(s Takes a list of patterns and returns a list of matching host names, taking into account any negative and intersection patterns. iRRcs`s|]}|jVqdS(N(RR(Rty((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pys s( RR3RARRIt_match_one_patternRRRR(R;RRARtthatRtexisting_hosts((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyRs   ( (3cC`s|ddkr|d}n||jkr|j|\}}|j|}y|j||}Wn!tk rtd|nX||j|$st.t?t*t[Rs3Could not match supplied host pattern, ignoring: %sRPterror(RRRR(RR3R@RRtanyRARRMt LOCALHOSTRIRKRctHOST_PATTERN_MISMATCHRPR( R;R-Rtmatching_groupst groupnametmatching_hostsRJtimplicittmsg((R-s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyRs, $3 !  cC`sSg|j|D] }|^q}t|dkrO|tjkrO|g}n|S(s* return a list of hostnames for a pattern i(RRRMR(R;R-Rtresult((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyt list_hosts=s"! cC`st|jjjddS(NRcS`s|S(N((tx((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pytJs(RgR3R@tkeys(R;((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyt list_groupsHscC`sH|dkrdSt|ts+|g}ntd|D|_dS(s Restrict list operations to the hosts given in restriction. This is used to batch serial operations in main playbook code, don't use this for other reasons. Ncs`s|]}t|jVqdS(N(R RR(RR((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pys Vs(R4R R!RR5(R;t restriction((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pytrestrict_to_hostsLs   cC`s|dkrd|_nt|}g}x|D]}|ddkrt|d}|jg|jjdD]}t|j^qs|j q1|j t|q1W||_dS(s0 Limits inventory results to a subset of inventory that matches a given pattern, such as to select a given geographic of numeric slice amongst a previous 'hosts' selection that only select roles, or vice versa. Corresponds to --limit parameter to ansible-playbook it@is N( R4R6R%topenRtreadR&R R,tcloseR(R;tsubset_patterntsubset_patternsRRtfdtl((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pytsubsetXs    ; cC`s d|_dS(s! Do not restrict list operations N(R4R5(R;((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pytremove_restrictionnscC`s i|_dS(N(R8(R;((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pytclear_pattern_cachersN(!t__name__t __module__t__doc__R4R>tpropertyR?R@RARBRERFRHRIRTRWR:RXRGRRRRRRRRRRRRRR(((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyR0s8        U   9  4 !  '   (9t __future__RRRttypet __metaclass__RRdRuR)R"RstoperatorRtrandomRtansibleRRMtansible.errorsRRRtansible.inventory.dataR tansible.module_utils.sixR tansible.module_utils._textR R tansible.parsing.utils.addressesR tansible.plugins.loaderRtansible.utils.helpersRtansible.utils.pathRtansible.utils.displayRRKtIGNORED_ALWAYStINVENTORY_IGNORE_PATTERNSRtIGNORED_PATTERNStINVENTORY_IGNORE_EXTStescapet IGNORED_EXTSRRkRiR+RRR%tobjectR0(((s=/usr/lib/python2.7/site-packages/ansible/inventory/manager.pyts:       "/    ,