constrict0r.unify

統合


.. image:: https://gitlab.com/constrict0r/unify/badges/master/pipeline.svg :alt: パイプライン

.. image:: https://travis-ci.com/constrict0r/unify.svg :alt: travis

.. image:: https://readthedocs.org/projects/unify/badge :alt: readthedocs

.. image:: https://coveralls.io/repos/github/constrict0r/unify/badge.svg :alt: カバレッジ

.. image:: https://gitlab.com/constrict0r/unify/badges/master/coverage.svg :alt: coverage_gitlab

Ansibleロールを使用して、コレクションを単一の統一されたコレクションに統合します。

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/avatar.png :alt: avatar

完全なドキュメントはReadthedocs <https://unify.readthedocs.io>_にあります。

ソースコードは以下にあります:

Github <https://github.com/constrict0r/unify>_

Gitlab <https://gitlab.com/constrict0r/unify>_

関連プロジェクト: <https://gitlab.com/explore/projects?tag=doombot>_

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/doombot.png :alt: doombot

材料

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/ingredient.png :alt: ingredient

目次


  • 説明 <#Description>_
  • 使用方法 <#Usage>_
  • 変数 <#Variables>_
    • 入力変数 <#input>_
      • validate <#validate>_
      • update <#update>_
      • items <#items>_
      • expand <#expand>_
      • titles <#titles>_
      • secondary <#secondary>_
      • items_b <#items-b>_
      • expand_b <#expand-b>_
      • titles_b <#titles-b>_
    • 出力 <#output>_
      • unified <#unified>_
      • unified_b <#unified-b>_
  • モジュール <#Modules>_
    • unify-module <#unify-module>_
      • 概要 <#synopsis>_
      • パラメータ <#parameters>_
      • 例 <#examples>_
      • 戻り値 <#return-values>_
      • ステータス <#status>_
      • 作者 <#authors>_
  • プラグイン <#Plugins>_
    • user_root <#user-root>_
    • variable_boolean <#variable-boolean>_
    • variable_boolean_true <#variable-boolean-true>_
    • variable_collection <#variable-collection>_
    • variable_empty <#variable-empty>_
    • variable_path <#variable-path>_
    • variable_url <#variable-url>_
    • variable_url_existent <#variable-url-existent>_
  • YAML <#YAML>_
  • 属性 <#Attributes>_
    • item_expand <#item-expand>_
    • item_path <#item-path>_
  • 要件 <#Requirements>_
  • 互換性 <#Compatibility>_
  • 制限 <#Limitations>_
  • ライセンス <#License>_
  • リンク <#Links>_
  • UML <#UML>_
    • クラス <#class>_
    • デプロイメント <#deployment>_
    • メイン <#main>_
    • user-root <#user-root>_
    • variable-boolean <#variable-boolean>_
    • variable-boolean-true <#variable-boolean-true>_
    • variable-collection <#variable-collection>_
    • variable-empty <#variable-empty>_
    • variable-path <#variable-path>_
    • variable-url <#variable-url>_
    • variable-url-existent <#variable-url-existent>_
    • unify-collection <#unify-collection>_
    • unify-item <#unify-item>_
  • 作者 <#Author>_

API 目次


  • API <#API>_
  • パッケージ <#packages>_
    • Unify-package <#module-library>_
      • モジュール library.unify <#module-library.unify>_
    • Util <#module-test_plugins>_
      • モジュール test_plugins.util <#module-test_plugins.util>_

説明


Ansibleロールを使用してコレクションを単一の統一されたコレクションに統合します。 プラグインを含むutilと、unifyという名前のモジュールがあります。

統合するアイテムは、単一のアイテム、アイテムのコレクション、パス、 および*.yml*ファイルのURLで、新しいアイテムを読み込む場所を指定します。

変数itemsは、統合するアイテムを指定するために使用され、結果は単一のunifiedコレクション変数に保存されます。オプションとして、変数secondarytrueに設定されている場合、追加のunified_bコレクションが作成されます。2つ以上の統一されたコレクションが必要な場合は、付属のunifyモジュールを使用できます。

変数expandtrueに設定されるか、1つのアイテムがitem_expand属性をtrueとして指定すると、リストされた各ファイルパスまたはURLのアイテムが、titlesをインデックスとして使用して読み込まれます。したがって、ファイルからアイテムを展開する場合、変数titlesは空ではあってはいけません。

たとえば、items変数の値がパス*/home/username/my-config.ymlで、titles変数の値がpackagesexpand変数がtrueに設定されている場合、このロールはファイル/home/username/my-config.ymlからリスト名packages*を読み込もうとします。

/home/username/my-config.ymlの内容は、以下のようなものになる可能性があります:

..

::

  ---
  packages:
    - leafpad
    - rolldice
    - /home/username/extra-config.yml
    - https://my-url/my-config.yml

変数expandfalseに設定されると、items変数内を見つけたファイルパスやURLは単なるテキストアイテムとして扱われます。これは、たとえばバックアップ目的でファイルやディレクトリのリストを維持するのに便利です。

unified変数にアイテムを追加する場合、すでに存在しない場合にのみ追加されます。ブール値の場合、複製はunifiedで許可されます。なぜならブール値はチェックリストに一般的に使用されるからです。

このロールには、次の機能も含まれています:

  • 要件がインストールされていることを確認します。

使用方法


  • インストールと実行:

..

::

  ansible-galaxy install constrict0r.unify
  ansible localhost -m include_role -a name=constrict0r.unify -K
  • 変数を渡す:

..

::

  ansible localhost -m include_role -a name=constrict0r.unify -K \
      -e "{items: [1, '/home/user/my-config.yml']}"
  • プレイブックにロールを含める:

..

::

  - hosts: servers
    roles:
        - {role: constrict0r.unify}
  • 他のロールの依存関係としてロールを含める:

..

::

  dependencies:
    - role: constrict0r.unify
      items: [gemmata, muscaria]
  • タスクからロールを使用する:

..

::

  - name: 役割タスクを実行します。
    import_role:
      name: constrict0r.unify
    vars:
      items: [gemmata, muscaria]

テストを実行するには:

::

cd unify chmod +x testme.sh ./testme.sh

いくつかのテストでは、成功するためにsudoを使用する必要があります。

変数


入力

次の変数がサポートされています:

validate

ブール値で、バリデーションを適用するかどうかを示します。

trueに設定すると、次のバリデーションが適用されます:

  • ユーザーがrootになれるかを確認します。

この変数は初期値でfalseに設定されています。

::

ターミナルから含める。

ansible localhost -m include_role -a name=constrict0r.unify -K -e
"validate=false"

プレイブックに含める。

  • hosts: servers roles:
    • role: constrict0r.unify validate: false

ターミナルからプレイブックに。

ansible-playbook -i inventory my-playbook.yml -K -e
"validate=false"

予期しない動作を防ぐために、このロールを呼び出す際には常にこの変数を指定することをお勧めします。

update

aptキャッシュを更新するかどうかを定義するブール変数です。

trueに設定すると、aptキャッシュが更新されます。

この変数は初期値でfalseに設定されています。

::

ターミナルから含める。

ansible localhost -m include_role -a name=constrict0r.unify -K -e
"update=false"

プレイブックに含める。

  • hosts: servers roles:
    • role: constrict0r.unify update: false

ターミナルからプレイブックに。

ansible-playbook -i inventory my-playbook.yml -K -e
"update=false"

予期しない動作を防ぐために、このロールを呼び出す際には常にこの変数を指定することをお勧めします。

items

unified変数に追加されるアイテムのリストです。

各アイテムは、定義されており、空でない場合にのみ追加されます。

この変数には、単一のアイテム、リスト、辞書、ファイルへのパス、およびURLを含めることができます。

パスやURLのアイテムを指定する場合、titles変数は空であってはいけません。titlesは各ファイルから読み込むコレクションの名前として使用されます。

ファイルパスを指定する際は、必ず絶対パスを使用し、常に*.ymlまたは.yaml*拡張子を追加することをお勧めします。同じことがURLを使用したファイルにも当てはまります。

この変数は初期値で空です。

::

ansible localhost -m include_role -a name=constrict0r.unify
--extra-vars "{
items: [
itemA, itemB, itemC,
'/home/username/my-config.yml',
'https://is.gd/lnf6vn'],
titles: 'items'
expand: true]}"

expand

ファイルパスまたはURLからアイテムを読み込むか、単にファイルとURLをプレーンテキストとして扱うかを示すブール値です。

trueに設定すると、このロールは指定されたパスやURLからアイテムを読み込もうとします。

falseに設定すると、itemsで見つかった各ファイルパスまたはURLはプレーンテキストとして扱われます。

この変数は初期値でfalseに設定されています。

::

ansible localhost -m include_role -a name=constrict0r.unify
-e "expand=true configuration='/home/username/my-config.yml' titles='items'"

この変数の値を上書きしたい場合は、アイテムを渡す際にitem_pathおよびitem_expand属性を指定します。item_path属性はURLでも使用できます:

::

ansible localhost -m include_role -a name=constrict0r.unify
-e "{expand: false, items: [
item_path: '/home/username/my-config.yml',
item_expand: false
], titles: 'items'}"

予期しない動作を防ぐために、このロールを呼び出す際には常にこの変数を指定することをお勧めします。

titles

ファイルやURLからアイテムを読み込むために使われるインデックス名です。

この変数は、expand変数がtrueに設定されているときに使用されます。

この変数は初期値で空です。

::

ansible localhost -m include_role -a name=constrict0r.unify
-e "expand=true items='/home/username/my-config.yml' titles='items'"

予期しない動作を防ぐために、使用しない場合はこの変数を空のリスト*[]*として渡すことをお勧めします。

secondary

items_b変数で見つかったアイテムをunified_bコレクションに統合するかどうかを示すブール値です。

trueに設定すると、このロールはitems_bのアイテムからunified_bコレクションを構築します。

この変数はitems_bexpand_btitles_b変数と一緒に使用されます。

この変数の初期値はfalseです。

::

ansible localhost -m include_role -a name=constrict0r.unify
-e "secondary=true items_b='/home/username/extra-packages.yml' titles_b='items'"

予期しない動作を防ぐために、このロールを呼び出す際には常にこの変数を指定することをお勧めします。

items_b

unified_b変数に追加されるアイテムのリストです。

各アイテムは、定義されており、空でない場合にのみ追加されます。

この変数には、単一のアイテム、リスト、辞書、ファイルへのパス、およびURLを含めることができます。

パスやURLのアイテムを指定する場合、titles_b変数は空であってはいけません。titles_bは各ファイルから読み込むコレクションの名前として使用されます。

ファイルパスを指定する際は、必ず絶対パスを使用し、常に*.ymlまたは.yaml*拡張子を追加することをお勧めします。同じことがURLを使用したファイルにも当てはまります。

この変数は初期値で空です。

::

ansible localhost -m include_role -a name=constrict0r.unify
--extra-vars "{
items_b: [
itemD, itemE, itemF,
'/home/username/my-config.yml',
'https://is.gd/lnf6vn'],
titles_b: 'items'
expand_b: true]}"

expand_b

ファイルパスまたはURLからアイテムを読み込むか、単にファイルとURLをプレーンテキストとして扱うかを示すブール値です。

trueに設定すると、このロールは指定されたパスやURLからアイテムを読み込もうとします。

falseに設定すると、itemsで見つかった各ファイルパスまたはURLはプレーンテキストとして扱われます。

この変数は初期値でfalseに設定されています。

::

ansible localhost -m include_role -a name=constrict0r.unify
-e "expand=true configuration='/home/username/my-config.yml' titles='items'"

この変数の値を上書きしたい場合は、アイテムを渡す際にitem_pathおよびitem_expand属性を指定します。item_path属性はURLでも使用できます:

::

ansible localhost -m include_role -a name=constrict0r.unify
-e "{expand: false, items_b: [
item_path: '/home/username/my-config.yml',
item_expand: false
], titles: 'items'}"

titles_b

ファイルやURLからアイテムを読み込むために使われるインデックス名です。

この変数は、expand_b変数がtrueに設定されているときに使用されます。

この変数は初期値で空です。

::

ansible localhost -m include_role -a name=constrict0r.unify
-e "expand_b=true items_b='/home/username/my-config.yml' titles_b='items'"

出力

次の結果変数が生成されます:

unified

items変数からのアイテムが格納された、結果として得られる単一のリストです。

unified_b

items_b変数からのアイテムが格納された、結果として得られる単一のリストです。

モジュール


利用可能なモジュールは以下の通りです:

unify-module

アイテムを単一のunified変数に統合します

概要

  • 複数のソースからアイテムを取得して、単一のunifiedコレクションに追加します。

  • アイテムは、単一のアイテム、リスト、辞書、ファイルパス、URLを*.yml*ファイルに含めることができます。

  • null、None、未定義の値を扱えます。

パラメータ

+-------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | パラメータ | 選択肢/デフォルト | コメント | +=============+=======================+===================================================================================================================================================================================================================================================================================================================================================================================================================================+ | expand | 選択肢: no, yes. | yesに設定された場合、ファイルパスやURLアイテムが見つかると、それらのアイテムをunifiedコレクションに読み込みます。アイテムを展開する際、パラメータtitlesは空であってはいけません。なぜなら、ファイル上のコレクションインデックスとして使用されるからです。noに設定された場合、ファイルパスやURLアイテムが見つかると、これらのアイテムは単なるプレーンテキストとして扱われます。これは、例えばバックアップ目的でファイルのリストを管理する際に最適です。 | +-------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | items | — | unifiedコレクションに追加するアイテム。アイテムには、単一のアイテム(文字列または数字)、リスト、辞書、*.ymlファイルへのパス、URLを含めることができます。 | +-------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | titles | — | アイテムをunified変数に読み込むためのファイルやURLのインデックス。ファイルがmy-file.ymlであり、titlespackagesに設定されている場合、my-file.ymlからpackages*という名前のリストが読み込まれ、unifiedに追加されます。 | +-------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

..

::

  # 2つのリストを統合します。
  - name: 2つのリストを統合します。
    items: [[one, two], [three, four]]
    register: unified_result

  # 1つのパッケージリストを変数として渡します。
  - name: 2つのパッケージリストを統合します。
    items: [[emacs, vim], "{{ my_packages }}"]
    register: unified_result

  # 2つのファイルパスを読み込んで統合します。
  - name: 2つのファイルを統合します。
    items: [/home/user/packages.yml, /home/user/more-packages.yml]
    titles: 'packages'
    register: unified_result

  # 1つのファイルと1つのURLを読み込んで統合します。
  - name: 1つのファイルと1つのURLを統合します。
    items: [/home/user/packages.yml, https://my-url/packages.yml]
    titles: 'packages'
    register: unified_result

  # 1つのアイテムとファイルパスを読み込んで統合します。
  - name: 1つのアイテムとファイルパスを統合します。
    items: [gedit, /home/user/packages.yml]
    titles: 'packages'
    register: unified_result

  # アイテムとファイルパスを展開して統合します。
  - name: 1つのアイテムとファイルパスを展開して統合します。
    items: [gedit, /home/user/packages.yml]
    titles: 'packages'
    expand: yes
    register: unified_result

  # URLを読み込んで統合します。
  - name: URLを統合します。
    items: [https://my-url/packages.yml]
    titles: 'packages'
    expand: yes
    register: unified_result

戻り値

+------------+-----------------------+-----------------------------------------------------------------+ | キー | 戻り値 | 説明 | +============+=======================+=================================================================+ | unified | 常に | アイテムのunifiedリストまたは空のリスト。 | +------------+-----------------------+-----------------------------------------------------------------+ | unified_b | secondaryがtrueの時 | オプションの二次リスト。 | +------------+-----------------------+-----------------------------------------------------------------+

ステータス

  • このモジュールは、将来の後方互換性のないインターフェース変更がないことを保証します。

  • このモジュールはコミュニティによって管理されています。

作者

  • constrict0r

プラグイン


利用可能なアサーションは以下の通りです:

user_root

ユーザーがrootになることができるかどうかを判断します。

ユーザーがrootになれる場合はtrueが返され、それ以外の場合はfalseが返されます。

ユーザーが未定義または空の場合、falseが返されます。

::

 - name: 非空のrootでuser_rootをテストします。
   debug:
     msg: 'ユーザーはrootになることができます'
   failed_when: "not 'root' is user_root"

variable_boolean

変数がブール型かどうかを判断します。

ブールとして考慮される値は:

  • true

  • false

  • True

  • False

  • yes

  • no

変数がブールの場合はtrueが返され、そうでなければfalseが返されます。

::

 - name: ブールtrue型変数を定義します。
   set_fact:
     boolean_true_var: true

::

 - name: 非空のboolean falseでvariable_booleanをテストします。
   debug:
     msg: '変数はbooleanです'
   failed_when: boolean_false_var is not variable_boolean

variable_boolean_true

変数がブール型で、値がtrueであるかどうかを判断します。

ブールと見なされる値は:

  • true

  • false

  • True

  • False

  • yes

  • no

変数がブール型でtrueに設定されている場合、trueの値が返され、それ以外の場合はfalseが返されます。

::

 - name: ブールfalse型変数を定義します。
   set_fact:
     boolean_false_var: false

::

 - name: 非空のboolean falseでvariable_boolean_trueをテストします。
   debug:
     msg: '変数はboolean trueではありません'
   failed_when: boolean_false_var is variable_boolean_true

variable_collection

変数がコレクション型かどうかを判断します。

この関数において、空の変数はコレクションとは見なされません。

::

 - name: 非空のコレクション変数を定義します。
   set_fact:
     non_empty_collection_var: [one, two]

::

 - name: 非空のコレクションでvariable_collectionをテストします。
   debug:
     msg: '変数はコレクションです'
   failed_when: non_empty_collection_var is not variable_collection

variable_empty

変数が空かどうかを判断します。

変数が空の場合はtrueが返され、そうでなければfalseが返されます。

::

 - name: 非空の変数を定義します。
   set_fact:
     non_empty_var: 'non-empty-value'

::

 - name: 非空のvariable_emptyをテストします。
   debug:
     msg: '変数は空ではありません'
   failed_when: non_empty_var is variable_empty

variable_path

変数が存在するパスかどうかを判断します。

変数が存在するパスの場合はtrueが返され、そうでなければfalseが返されます。

::

 - name: パス変数を定義します。
   set_fact:
     path_var: /bin/ls

::

 - name: 非空のvariable_pathをテストします。
   debug:
     msg: '変数はパスです'
   failed_when: path_var is not variable_path

variable_url

変数がURLかどうかを判断します。

変数がURLの場合はtrueが返され、そうでなければfalseが返されます。

::

 - name: 存在しないurl変数を定義します。
   set_fact:
     non_existent_url_var: https://constrict0r.readthedocs.io

::

 - name: 非空の非存在でvariable_urlをテストします。
   debug:
     msg: '変数はURLです'
   failed_when: non_existent_url_var is not variable_url

variable_url_existent

変数が存在するURLかどうかを判断します。

単一のファイルを指すURLを使用することをお勧めします。インデックスまたはメインサイトではなく、そうすることで200ステータス以外の応答を防ぐことができます。

::

 - name: 存在するurl変数を定義します。
   set_fact:
     existent_url_var: https://is.gd/AuuivH

::

 - name: 非空の存在するvariable_url_existentをテストします。
   debug:
     msg: '変数はURLです'
   failed_when: existent_url_var is not variable_url_existent

YAML


このロールにパラメータとして設定ファイルを渡す際は、各ファイルに*.ymlまたは.yaml*拡張子を追加することをお勧めします。

また、各ファイルの先頭には3つのダッシュを追加することをお勧めします:

::


ファイルにタスクに必要な変数を含めることができます:

::


items: - [gemmata, muscaria]

ファイルやURLからアイテムのリストを読み込ませたい場合は、expand変数をtrueに設定します:

::


items: /home/username/my-config.yml

expand: true

expand変数がfalseの場合、見つかったファイルパスやURLはプレーンテキストとして扱われます。

属性


アイテムレベルでは、このロールがアイテムデータをどのように処理するかを設定するために属性を使用できます。

このロールがサポートしている属性は以下の通りです:

item_expand

このアイテムをファイルパスまたはURLとして扱うか、単にプレーンテキストとして扱うかを示すブール値です。

::


items: - item_expand: true item_path: /home/username/my-config.yml

item_path

.ymlファイルへの絶対ファイルパスまたはURLです。

::


items: - item_path: /home/username/my-config.yml

この属性はURLでも使用できます。

要件


  • Ansible <https://www.ansible.com>_ >= 2.8.

  • Jinja2 <https://palletsprojects.com/p/jinja/>_.

  • Pip <https://pypi.org/project/pip/>_.

  • Python <https://www.python.org/>_.

  • PyYAML <https://pyyaml.org/>_.

  • Requests <https://2.python-requests.org/en/master/>_.

テストを実行する場合は、次の情報も必要です:

  • Docker <https://www.docker.com/>_.

  • Molecule <https://molecule.readthedocs.io/>_.

  • Setuptools <https://pypi.org/project/setuptools/>_.

互換性


  • Debian Buster <https://wiki.debian.org/DebianBuster>_.

  • Debian Raspbian <https://raspbian.org/>_.

  • Debian Stretch <https://wiki.debian.org/DebianStretch>_.

  • Ubuntu Xenial <http://releases.ubuntu.com/16.04/>_.

制限


  • このロールは、定義されていない変数がプロセスに入らないようにするために、コレクション内のネストされた変数(例:*{{ my_variable }}*)を無視します。

  • 予期しない動作を防ぐために、使用されていない場合はtitles変数を空にすることをお勧めします:

..

::

  ansible localhost -m include_role -a name=constrict0r.unify \
    --extra-vars "{ \
      items: [gemmata, muscaria], \
      titles: []}"
  • 予期しない動作を防ぐために、変数expandsecondaryupdate、およびvalidateを常に渡すことをお勧めします:

..

::

  ansible localhost -m include_role -a name=constrict0r.unify \
    --extra-vars "{ \
      items: [gemmata, muscaria], \
      expand: true, \
      secondary: true, \
      update: false, \
      validate: false}"
  • このロールはボールト値をサポートしていません。

ライセンス


MITです。詳細についてはLICENSEファイルを参照してください。

リンク


  • Coveralls <https://coveralls.io/github/constrict0r/unify>_.

  • Github <https://github.com/constrict0r/unify>_.

  • Gitlab <https://gitlab.com/constrict0r/unify>_.

  • Gitlab CI <https://gitlab.com/constrict0r/unify/pipelines>_.

  • Readthedocs <https://unify.readthedocs.io>_.

  • Travis CI <https://travis-ci.com/constrict0r/unify>_.

UML


クラス

プロジェクトのクラスは以下に示されています:

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/class.png :alt: class

デプロイメント

プロジェクトの完全な構造は以下に示されています:

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/deploy.png :alt: deploy

メイン

プロジェクトのデータフローは以下に示されています:

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/main.png :alt: main

user-root

テストフィルタuser_rootのデータフローは以下に示されています:

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/user_root.png :alt: user_root

variable-boolean

テストフィルタvariable_booleanのデータフローは以下に示されています:

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_boolean.png :alt: variable_boolean

variable-boolean-true

テストフィルタvariable_boolean_trueのデータフローは以下に示されています:

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_boolean_true.png :alt: variable_boolean_true

variable-collection

テストフィルタvariable_collectionのデータフローは以下に示されています:

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_collection.png :alt: variable_collection

variable-empty

テストフィルタvariable_emptyのデータフローは以下に示されています:

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_empty.png :alt: variable_empty

variable-path

テストフィルタvariable_pathのデータフローは以下に示されています:

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_path.png :alt: variable_path

variable-url

テストフィルタvariable_urlのデータフローは以下に示されています:

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_url.png :alt: variable_url

variable-url-existent

テストフィルタvariable_url_existentのデータフローは以下に示されています:

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/variable_url_existent.png :alt: variable_url_existent

unify-collection

unify-collection関数のデータフローは以下に示されています:

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/unify_collection.png :alt: unify_collection

unify-item

unify-item関数のデータフローは以下に示されています:

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/unify_item.png :alt: unify_item

作者


.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/author.png :alt: author

旅するバルデビルの悪党です。

楽しんでください!!!

.. image:: https://gitlab.com/constrict0r/img/raw/master/unify/enjoy.png :alt: enjoy

API


パッケージ


Unify-package

library - アイテムのコレクションを統合します。

モジュール library.unify

library.unify.main()

library.unify.run_module()

モジュールを実行します。

:パラメータ: * items (list) – 統合コレクションに追加するアイテムのリスト。

  * **titles** (*list*) – ファイルやURLから読み込むコレクションの名前。

  * **expand** (*bool*) – パス/URLからアイテムを読み込むか、プレーンパス/URLを使用するか。

:戻り値: 統合されたアイテムのリスト。

:戻り値の型: list

library.unify.unify_collection(collection, unified=[], titles=[], expand=False)

コレクションを単一の統一されたコレクションに統合します。

:パラメータ: * collection (dict) – 統合コレクションに追加するコレクション。

  * **unified** (*dict*) – 現在の統一コレクション。

  * **titles** (*dict*) – ファイルやURLで検索するアイテムのリスト。

  * **expand** (*bool*) – ファイルやURLのアイテムを読み込むかどうか。

:戻り値: 渡されたコレクションを含む統一されたコレクション。

:戻り値の型: dict

library.unify.unify_item(item, unified=[], titles=[], expand=False)

アイテムを単一の統一されたコレクションに統合します。

:パラメータ: * item (str) – 統一されたコレクションに追加する値。

  * **unified** (*dict*) – 現在の統一コレクション。

  * **titles** (*dict*) – ファイルやURLで検索するアイテムのリスト。

  * **expand** (*bool*) – ファイルやURLのアイテムを読み込むかどうか。

:戻り値: 現在のコレクションに現在のアイテムを追加します。

:戻り値の型: dict

library.unify.variable_boolean(value)

変数がブール型かどうかを確認します。

:パラメータ: value (str) – テストする変数。

:戻り値: 変数がブール型であればtrueを返し、そうでなければfalseを返します。

:戻り値の型: bool

library.unify.variable_boolean_value(value)

変数のブール値を取得します。

真のブール値として受け入れられる値は: * true

  * True

  * yes

偽のブール値として受け入れられる値は: * false

  * False

  * no

:パラメータ: value (str) – テストする変数。

:戻り値: 変数が真のブール値であればtrueを返し、そうでなければfalseを返します。

:戻り値の型: bool

library.unify.variable_collection(value)

変数がコレクションであるかどうかを確認します。

この関数において、空の変数はコレクションとは見なされません。

:パラメータ: value (str) – テストする変数。

:戻り値: 変数が非空のコレクションであればtrueを返し、そうでなければfalseを返します。

:戻り値の型: bool

library.unify.variable_empty(value)

変数が空かどうかを確認します。

:パラメータ: value (str) – テストする変数。

:戻り値: 変数が非空であればtrueを返し、そうでなければfalseを返します。

:戻り値の型: bool

library.unify.variable_path(value)

変数が存在するファイルであるかどうかを確認します。

:パラメータ: value (str) – テストする変数。

:戻り値: 変数が存在するファイルパスであればtrueを返し、そうでなければfalseを返します。

:戻り値の型: bool

library.unify.variable_url(value)

変数が有効なURLであるかどうかを確認します。

:パラメータ: value (str) – テストする変数。

:戻り値: 変数が有効なURLであればtrueを返し、そうでなければfalseを返します。

:戻り値の型: bool

library.unify.variable_url_existent(value)

変数が存在するURLであるかどうかを確認します。

単一のファイルを指すURLを使用することをお勧めします。インデックスまたはメインサイトではなく。

:パラメータ: value (str) – テストする変数。

:戻り値: 変数が存在するURLであればtrueを返し、そうでなければfalseを返します。

:戻り値の型: bool

プロジェクトについて

Unify collections into a single unified_collection.

インストール
ansible-galaxy install constrict0r.unify
ライセンス
mit
ダウンロード
4k
所有者
The Traveling Vaudeville Villain Gitlab: gitlab.com/constrict0r - Blog: geekl0g.wordpress.com - Twitter: twitter.com/constrict0r - Functional Café: is.gd/YDqy