z/OSMFのワークフローを実施後、completedしても、削除しない限り残ってしまいます。
確かに1system上限workflowのinstanceが200個しか存在できませんので、(z/OS v3.1マニュアルにより)
特に問題なく実行完了のworkflowは基本削除という運用になるのかと思います。
その削除の仕方として、筆者が調べた限り、2つのパターンがありそうです。
- 実行後の削除(原始的なやり方)
- ワークフロー生成時に実行完了したら削除するのをチェックした上で生成
その2パターンで、
またz/OSMFのdesktopで削除の仕方、Ansible for zのIBM z/OSMF collectionで使う仕方をそれぞれ調査してみました。(序でに、提供したREST APIの書き方も見てみました)
実行後の削除パターン
まずはz/OSMF desktopの場合
極普通に削除対象ワークフローをチェックして、アクションで削除するだけですが。。
REST API
こちらのrequestで削除できますね、
DELETE /zosmf/workflow/rest/<version>/workflows/<workflowKey>
z/OSMF collectionで削除する場合
zmf_workflowモジュールを使って、stateパラメータをdeleted
に指定すればok
- name: Delete a workflow if it exists
ibm.ibm_zosmf.zmf_workflow:
state: "deleted"
zmf_credential: "{{ result_auth }}"
workflow_name: "ansible_sample_workflow_SY1"
z/OSMF collectionはwokflowkeyではなく、workflownameで指定するだけでも削除してくれます。
↓ドキュメントもこう書いていましたが、コードを見ると、一回nameでlistして該当するworkflowkeyを抽出しているっぽいです。詳細はご自身でコードを確認してもらえばわかるかと思います
Delete the workflow instance specified by workflow_key.
If workflow_key is not supplied, delete the workflow instance specified by
workflow_name.
Return the message to indicate whether the workflow instance does not exist
or is deleted.
Return the workflow_key of the deleted workflow instance.
Return the workflow_name of the deleted workflow instance.
:param AnsibleModule module: the ansible module
まあ、z/OSMF collectionも結局REST APIを発行しているからですね。
ワークフロー生成時に実行完了したら削除するのをチェックした上で生成
z/OSMF desktopの場合
workflow instanceを生成するときに、下のDelete workflow on completionすれば、
実行完了のものは勝手に自動削除されます。
REST API
マニュアルでこのsampleで提供していまして、requestにこのautoDeleteOnCompletion
optionをtrue
にすればdesktopのチェックボックスと同じ効果
POST /zosmf/workflow/rest/1.0/workflows HTTP/1.1
Host: zosmf1.yourco.com
Connection: close
Content-Type: application/json
Content-Length: 203
Authorization: Basic em9zbWZhZDp6b3NtZmFk
{
"workflowName":"AutomationExample",
"workflowDefinitionFile":"/usr/lpp/zosmf/samples/workflow_sample_automation.xml",
"system":"SY1",
"owner":"zosmfad",
"assignToOwner" :true,
"accessType": "Restricted",
"deleteCompletedJobs" : true
"autoDeleteOnCompletion" : true
}
z/OSMF collectionで削除する場合
マニュアルで調べた限り、、特にこのやり方がなく、どしてだろう疑問?
ちょっく調べてみたが、v2.3のマニュアルではautoDeleteOnCompletion
optionがありませんでした。
changesも見てみましたが、どのサービスレベルで追加された機能が分からず、、この機能を使うときは要注意かもですね。。