automation controller には強力な検索ツールがあり、複数の機能にまたがる検索およびフィルタリングの両方の機能を提供しています。検索条件は、検索フィールドの 名前 ドロップダウンメニューから 詳細 オプションを選択すると、拡張可能な「チートシート」として提供されます。そこから、タイプの設定、キー、**ルックアップタイプ**を組み合わせて、フィルタリングを行います。
これらの検索ヒントは、ホストの検索を対象としていません。このセクションの大半はホストにも適用されますが、相違点が少しあります。通常の検索構文には、フィールド (左側) と値 (右側) が含まれます。コロンは、検索するフィールドと値を区別するために使用します。検索にコロンが含まれない場合には (例 3 参照)、?search=foobar
を送信する単純な文字列検索として処理されます。検索に使用する構文例を以下に示します。
name:localhost
: この例では、コロンの前の文字列は、検索するフィールドを表します。その文字列が フィールド または 関連フィールド のアイテムと一致しない場合には、例 3 (文字列検索) と同じ方法で処理されます。コロンの後ろの文字列は、名前属性内で検索する文字列です。
organization.name:Default
: この例は、関連フィールドの検索です。今回の例では、左側のピリオドは、フィールドとモデルを分割します。検索の複雑性や検索層の深さにより、左側の部分にピリオドを複数使用される場合もあります。
foobar
: icontains
検索を使用して、名前や説明フィールドの中から対象の用語をすべて検索するための単純な文字列 (キーワード)。用語と用語の間にスペースが使用されている場合には (例: foo bar)、両方の用語が含まれる結果がすべて返されます。用語が引用句で括られている場合には (例: "foo bar")、Tower はキーワード両方が含まれる文字列全体を探し出します。固有名の検索は、API 名に対して検索します。たとえば、ユーザーインターフェースの Management job
は、API の system_job
です。
organization:Default
: この例は、組織で使用できるフィールドを指定しないで、関連フィールドを検索する例です。これは、API によりサポートされ、単純な文字列検索に似ていますが、組織に対して検索がかけられます (名前と説明両方に対して icontains
の検索がかけられます)。
特定のフィールドの値を検索するには、拡張オプションと有効な値の 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 応答から取得します。関連フィールドには、related_search_fields
からのすべての値を取得してデータが投入され、末尾の __search
を取り除きます。
フィールドからの値または関連フィールドからの値が文頭にこない検索は、一般的な文字列検索として処理されます。localhost
などの検索は、API エンドポイントに、クエリーパラメーターとして ?search=localhost
を送信する UI が結果として返されます。これは、名前および説明フィールドに対する icontains
検索のショートカットです。
以下は、Tower での検索に関して注意すべき事項です。
検索により (AND パラメーターを使用した検索の場合のように) タグの共通部分である結果のサブセットが返されます。現在のところ、 (OR パラメーターを使用した検索のような) 複数パラメーターの結果を返す検索はサポートされていません。
スペースを含む文字列検索に対応するには、検索パラメーターの左側の部分を引用句で括ることができます。
現在、フィールドの値は直接属性で、GET 要求で返されるはずです。値のいずれかに対して検索を行う場合は必ず、Tower は __icontains
検索を行います。たとえば name:localhost
は ?name__icontains=localhost
を返します。Tower は現在、すべてのフィールドの値に対する検索を行います。この検索には id
も含まれるので、理想的ではありません。