??????????????
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· d d l m Z m Z m Z e Z d d l Z d d l Z d d l Z d d l m
Z
m Z d d l m
Z d d l m Z d d l m Z d d l m Z d d l m Z m Z d d l m Z d d
l m Z d d l m Z d d l m Z d d
l! m" Z" d d l# m$ Z$ e" ƒ Z% d „ Z
d d „ Z' d d „ Z( d „ Z) d e f d „ ƒ YZ* d e* f d „ ƒ YZ+ d e, f d „ ƒ YZ- d e, f d „ ƒ YZ. d e, f d „ ƒ YZ/ d S( i ( t absolute_importt divisiont print_functionN( t AnsibleErrort AnsibleParserError( t to_safe_group_name( t
parse_address( t
AnsiblePlugin( t CachePluginAdjudicator( t to_bytest to_native( t Mapping( t boolean( t string_types( t Templar( t Display( t combine_varsc C` s t | d t d t ƒS( Nt forcet silent( t
original_safet True( t name( ( sF /usr/lib/python2.7/site-packages/ansible/plugins/inventory/__init__.pyR + s c C` s
d | k S( sÉ
A helper function that checks a given host line to see if it contains
a range pattern described in the docstring above.
Returns True if the given line contains a pattern, else False.
t [( ( t line( ( sF /usr/lib/python2.7/site-packages/ansible/plugins/inventory/__init__.pyt detect_range0 s c ` sS g } | rO| j d d d ƒ j d d d ƒ j d ƒ \ } } } | j d ƒ } t | ƒ d k r„ t | ƒ d k r„ t d ƒ ‚ n | d } | d } t | ƒ d k r³ d } n
| d } | sÌ d
} n | sá t d ƒ ‚ n | d d
k rBt | ƒ d k rBt | ƒ ‰ ˆ t | ƒ k r0t d ƒ ‚ n ‡ f d
† } n t } yi t j j | ƒ }
t j j | ƒ } |
| k rŠt d ƒ ‚ n t t j |
| d t | ƒ … ƒ } Wn9 t
k
rìt t | ƒ t | ƒ d t | ƒ ƒ } n Xx[ | D]S }
d j | | |
ƒ | f ƒ } t
| ƒ r:| j t | ƒ ƒ qô| j | ƒ qôW| Sd S( s´
A helper function that expands a given line that contains a pattern
specified in top docstring, and returns a list that consists of the
expanded version.
The '[' and ']' characters are used to maintain the pseudo-code
appearance. They are replaced in this function with '|' to ease
string splitting.
References: https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#hosts-and-groups
R t |i t ]t :i i s. host range must be begin:end or begin:end:stepi t 0s! host range must specify end values: host range must specify equal-length begin and end formatsc ` s t | ƒ j ˆ ƒ S( N( t strt zfill( t x( t rlen( sF /usr/lib/python2.7/site-packages/ansible/plugins/inventory/__init__.pyt fillh s s! host range must have begin <= endt N( t replacet splitt lenR R t stringt
ascii_letterst indext listt intt
ValueErrort ranget joinR t extendt expand_hostname_ranget append( R t all_hostst headt nranget tailt boundst begt endt stepR! t i_begt i_endt seqt rseqt hname( ( R sF /usr/lib/python2.7/site-packages/ansible/plugins/inventory/__init__.pyR/ : sF 6$
"*
,
c K` s˜ y t | | } Wn> t k
rS } d t | ƒ k rJ t d | ƒ ‚ qT | ‚ n X| d k r” | r” t | j d d ƒ r” t d j | ƒ ƒ ‚ n | S( Nt fact_caching_connections error, '%s' inventory cache plugin requires the one of the following to be set to a writeable directory path:
ansible.cfg:
[default]: fact_caching_connection,
[inventory]: cache_connection;
Environment:
ANSIBLE_INVENTORY_CACHE_CONNECTION,
ANSIBLE_CACHE_PLUGIN_CONNECTION.t memoryt _optionssÜ Unable to use cache plugin {0} for inventory. Cache options were provided but may not reconcile correctly unless set via set_options. Refer to the porting guide if the plugin derives user settings from ansible.constants.( t CacheObjectR R
t getattrt _plugint Nonet format( t plugin_namet kwargst cachet e( ( sF /usr/lib/python2.7/site-packages/ansible/plugins/inventory/__init__.pyt get_cache_plugin‚ s
( t BaseInventoryPluginc B` sh e Z d Z d Z e e ƒ Z d „ Z e d „ Z d „ Z
d d d „ Z d „ Z
d „ Z d „ Z RS(
s Parses an Inventory Sourcet generatorc C` s2 t t | ƒ j ƒ i | _ d | _ t | _ d S( N( t superRK t __init__R@ RD t inventoryt display( t self( ( sF /usr/lib/python2.7/site-packages/ansible/plugins/inventory/__init__.pyRN › s c C` s( | | _ | | _ t d | ƒ | _ d S( sz Populates inventory from the given data. Raises an error on any parse failure
:arg inventory: a copy of the previously accumulated inventory data,
to be updated with any new data this plugin provides.
The inventory can be empty if no other source/plugin ran successfully.
:arg loader: a reference to the DataLoader, which can read in YAML and JSON files,
it also has Vault support to automatically decrypt files.
:arg path: the string that represents the 'inventory source',
normally a path to a configuration file for this inventory,
but it can also be a raw string for this plugin to consume
:arg cache: a boolean that indicates if the plugin should use the cache or not
you can ignore if this plugin does not implement caching.
t loaderN( RR RO R t templar( RQ RO RR t pathRH ( ( sF /usr/lib/python2.7/site-packages/ansible/plugins/inventory/__init__.pyt parse£ s c C` s\ t } t | d d ƒ} t j j | ƒ rH t j | t j ƒ rH t } n | j j d ƒ | S( s• Verify if file is usable by this plugin, base does minimal accessibility check
:arg path: a string that was passed as an inventory source,
it normally is a path to a config file, but this is not a requirement,
it can also be parsed itself as the inventory data to process.
So only call this base class if you expect it to be a file.
t errorst surrogate_or_strictsW Skipping due to inventory source not existing or not being readable by the current user(
t FalseR t osRT t existst accesst R_OKR RP t vvv( RQ RT t validt b_path( ( sF /usr/lib/python2.7/site-packages/ansible/plugins/inventory/__init__.pyt verify_fileµ s ' c C` s„ t | t ƒ s( t d t | ƒ ƒ ‚ n xU | D]M } | j j | d | d | ƒx( | D] } | j j | | | | ƒ qX Wq/ Wd S( Ns8 Invalid data from file, expected dictionary and got:
%st groupt port( t
isinstanceR R R
RO t add_hostt set_variable( RQ t hostst variablesRa Rb t hostt k( ( sF /usr/lib/python2.7/site-packages/ansible/plugins/inventory/__init__.pyt _populate_host_varsÅ s
c ` sC i } y ˆ j j | d t ƒ} Wn% t k
rI } t t | ƒ ƒ ‚ n X| si t d t | ƒ ƒ ‚ n_ | j d ƒ ˆ j k r t d | j d d ƒ ƒ ‚ n( t | t ƒ sÈ t d t
| ƒ ƒ ‚ n ˆ j d | ƒ d ˆ j k r?ˆ j
d ƒ r?d d d g } t ‡ f d † | Dƒ ƒ } t ˆ j
d ƒ | ˆ _ n | S( s† validate config and set options as appropriate
:arg path: path to common yaml format config file for this plugin
RH s %s is emptyt plugins! Incorrect plugin name in file: %ss
none foundsJ inventory source has invalid structure, it should be a dictionary, got: %st directt _urit cache_connectiont _timeoutt
cache_timeoutt _prefixt cache_prefixc 3` s? | ]5 } ˆ j | d ƒ r | d ˆ j | d ƒ f Vq d S( i i N( t
get_option( t .0t opt( RQ ( sF /usr/lib/python2.7/site-packages/ansible/plugins/inventory/__init__.pys è s t cache_plugin( Rm Rn ( Ro Rp ( Rq Rr ( RR t load_from_fileRX t ExceptionR R
t gett NAMERc R t typet set_optionsR@ Rs t dictRJ t _cache( RQ RT t configRI t cache_option_keyst
cache_options( ( RQ sF /usr/lib/python2.7/site-packages/ansible/plugins/inventory/__init__.pyt _read_config_dataÎ s" c C` s= x6 | j D]+ } | | k r
| j | ƒ | j |