第6章 検索
複数の機能にわたる検索およびフィルター機能については、Automation controller の検索ツールを使用します。検索フィールドの Name メニューの Advanced オプションから、リストを展開して検索条件を使用できます。
そこから、Set Type、Key、および Lookup type の組み合わせを使用してフィルタリングします。
6.1. 検索のルール
これらの検索のヒントは、ホストの検索を前提にはしていません。このセクションの大部分は、ホストにも適用できますが、いくつか違いがあります。
- 検索の一般的な構文は、フィールド (左側) と値 (右側) で構成されます。
- コロンは、検索するフィールドと値を区切るために使用されます。
-
検索にコロンがない場合 (例 3 を参照)
?search=foobar
が送信される単純な文字列検索として扱われます。
以下は、検索に使用される構文の例です。
-
name:localhost
この例では、name 属性で文字列 'localhost' を検索します。この文字列が Fields または Related Fields の内容と一致しない場合は、検索全体が文字列として扱われます。 -
Organization.name:Default
この例は、関連フィールドの検索を示しています。Organization.name
のピリオドは、モデルとフィールドを区切ります。検索の深さまたは複雑さに応じて、クエリーの対象部分に複数のピリオドを含めることができます。 -
foobar
これは、単純な文字列 (キーワード) 検索で、名前および説明フィールドに対してicontains
検索を使用して検索用語のすべてのケースを検出します。foo bar
のように用語の間にスペースを使用すると、両方の用語を含む結果が返されます。"foo bar"
のように用語が引用符で囲まれている場合、Automation controller は、これらの用語が一緒に出現する文字列を検索します。
固有名の検索は、API 名に対して検索を行います。例: ユーザーインターフェイスの Management job
は API の system_job
と同じです。Organization:Default
この例は、関連フィールドの検索を示していますが、組織に関連するフィールドは指定されていません。これは API でサポートされており、単純な文字列検索に似ていますが、組織に対して実行されます (icontains
は名前と説明の両方に対する検索が含まれます)。
6.1.1. 検索フィールドの値
特定のフィールドの値を見つけるには、API エンドポイントで広範なオプションとその有効な値を参照してください。たとえば、/api/v2/jobs
> type
フィールドに対して検索する場合は、/api/v2/jobs
に対して OPTIONS リクエストを実行し、API で "type"
のエントリーを検索して値を見つけることができます。さらに、各画面の一番下までスクロールすると、関連する検索を表示できます。/api/v2/jobs
の例では、関連する検索に次の結果が表示されます。
"related_search_fields": [ "modified_by__search", "project__search", "project_update__search", "credentials__search", "unified_job_template__search", "created_by__search", "inventory__search", "labels__search", "schedule__search", "webhook_credential__search", "job_template__search", "job_events__search", "dependent_jobs__search", "launch_config__search", "unifiedjob_ptr__search", "notifications__search", "unified_job_node__search", "instance_group__search", "hosts__search", "job_host_summaries__search"
フィールドの値は、GET リクエストのキーから取得されます。url
、related
、および summary_fields
は使用されません。関連フィールドの値も OPTIONS の応答から取得されますが、別の属性から取得されます。関連フィールドは、relation_search_fields
からすべての値を取得し、末尾から __search
を削除することによって設定されます。
フィールドの値または関連フィールドの値で始まらない検索は、一般的な文字列検索として扱われます。たとえば、localhost
を検索すると、UI は ?search=localhost
をクエリーパラメーターとして API エンドポイントに送信します。これは、名前フィールドと説明フィールドで icontains
を検索するショートカットです。
6.1.3. その他の検索に関する留意事項
Automation controller で検索する場合は、次の問題に注意してください。
- 現在、OR クエリーでサポートされている構文はありません。すべての検索語はクエリーパラメーター内で AND 演算が実行されます。
- スペースを含む文字列検索に対応するには、検索パラメーターの左側の部分を引用句で括ることができます。詳細は、検索のヒント を参照してください。
-
現在、Field 内の値は、GET リクエストで返されることが想定されている直接属性です。いずれかの値に対して検索するたびに、Automation controller は
__icontains
検索を実行します。したがって、たとえば、name:localhost
は?name__icontains=localhost
を返します。Automation controller は現在、すべての Field 値 (id
も含む) に対してこの検索を実行します。