%PDF- %PDF-
Direktori : /lib/python2.7/site-packages/salt/states/ |
Current File : //lib/python2.7/site-packages/salt/states/etcd_mod.pyc |
� ���^c @@ s� d Z d d l m Z m Z m Z d Z i d d 6Z y d d l Z e Z Wn e k rd e Z n Xd � Z d d � Z d d � Z d d � Z e d d � Z e d d � Z d � Z d S( u Manage etcd Keys ================ .. versionadded:: 2015.8.0 :depends: - python-etcd This state module supports setting and removing keys from etcd. Configuration ------------- To work with an etcd server you must configure an etcd profile. The etcd config can be set in either the Salt Minion configuration file or in pillar: .. code-block:: yaml my_etd_config: etcd.host: 127.0.0.1 etcd.port: 4001 It is technically possible to configure etcd without using a profile, but this is not considered to be a best practice, especially when multiple etcd servers or clusters are available. .. code-block:: yaml etcd.host: 127.0.0.1 etcd.port: 4001 .. note:: The etcd configuration can also be set in the Salt Master config file, but in order to use any etcd configurations defined in the Salt Master config, the :conf_master:`pillar_opts` must be set to ``True``. Be aware that setting ``pillar_opts`` to ``True`` has security implications as this makes all master configuration settings available in all minion's pillars. Etcd profile configuration can be overridden using following arguments: ``host``, ``port``, ``username``, ``password``, ``ca``, ``client_key`` and ``client_cert``. .. code-block:: yaml my-value: etcd.set: - name: /path/to/key - value: value - host: 127.0.0.1 - port: 2379 - username: user - password: pass Available Functions ------------------- - ``set`` This will set a value to a key in etcd. Changes will be returned if the key has been created or the value of the key has been updated. This means you can watch these states for changes. .. code-block:: yaml /foo/bar/baz: etcd.set: - value: foo - profile: my_etcd_config - ``wait_set`` Performs the same functionality as ``set`` but only if a watch requisite is ``True``. .. code-block:: yaml /some/file.txt: file.managed: - source: salt://file.txt /foo/bar/baz: etcd.wait_set: - value: foo - profile: my_etcd_config - watch: - file: /some/file.txt - ``rm`` This will delete a key from etcd. If the key exists then changes will be returned and thus you can watch for changes on the state, if the key does not exist then no changes will occur. .. code-block:: yaml /foo/bar/baz: etcd.rm: - profile: my_etcd_config - ``wait_rm`` Performs the same functionality as ``rm`` but only if a watch requisite is ``True``. .. code-block:: yaml /some/file.txt: file.managed: - source: salt://file.txt /foo/bar/baz: etcd.wait_rm: - profile: my_etcd_config - watch: - file: /some/file.txt i ( t absolute_importt print_functiont unicode_literalsu etcdu setu set_Nc C@ s t r t St S( u1 Only return if python-etcd is installed ( t HAS_ETCDt __virtualname__t False( ( ( s8 /usr/lib/python2.7/site-packages/salt/states/etcd_mod.pyt __virtual__� s c K@ s� t } i | d 6d d 6t d 6i d 6} t d | d | | �} | sP t } n t d | | d | | �} | r� | | k r� | r� d | d <n d | d <i | | 6| d <n | S( u� Set a key in etcd name The etcd key name, for example: ``/foo/bar/baz``. value The value the key should contain. profile Optional, defaults to ``None``. Sets the etcd profile to use which has been defined in the Salt Master config. .. code-block:: yaml my_etd_config: etcd.host: 127.0.0.1 etcd.port: 4001 u nameu Key contains correct valueu commentu resultu changesu etcd.gett profileu etcd.setu New key createdu Key value updated( R t Truet __salt__( t namet valueR t kwargst createdt rtnt currentt result( ( s8 /usr/lib/python2.7/site-packages/salt/states/etcd_mod.pyt set_� s"