Compartment(コンパートメント)削除について

id:s-oomoriです。
久々の大阪出張で、移動中にOCIのCompartment(コンパートメント)を整理するために、 削除もしたかったのですが、毎回削除が失敗するため対応方法をお知らせします。

本記事の目次

コンパートメントについて

下記参考文献を参照ください。

  • 公式ドキュメント docs.oracle.com

  • コーソル DatabaseエンジニアのBlogで渡部さんが書かれたブログ記事が分かりやすいです! cosol.jp

コンパートメント削除について

OCIの「メニュー」-「アイデンティティ」-「コンパートメント」から手動で追加したコンパートメントを削除したり、リネームや「Child Compartments(コンパートメントの中に更にコンパートメントを作成)」を作成することが可能です。 f:id:s-oomori:20190514103939p:plain

削除するときの注意点(現時点の仕様)としては、削除対象コンパートメントの中に1つでもリソースが残っていると削除失敗となります。
また、「Child Compartments」(なぜここは日本語訳されていない)も残っているとその上位のコンパートメントも削除することができません。
「Delete」ボタンから削除すると、「削除中」とはなるのですが、リソースが残っていると数分後位に失敗します。これがとても紛らわしくて削除できたと思ってしまいます。

失敗すると下図のようにログで確認可能です。
※「01.s.oomori」という「Child Compartments」を削除しようとして失敗 f:id:s-oomori:20190514104940p:plain

コンパートメント内のリソース検索について

削除忘れのリソースを一つ一つ調べるのはかなり大変で時間もかかってしまいますので、OCIでは該当コンパートメント内のリソースを検索する機能が提供されてます。

1.削除対象コンパートメントのOCIDを控えます。 f:id:s-oomori:20190514105728p:plain

2.リージョンのURL末尾に「/a/query」を追加して拡張検索ページを開きます。
例:https://console.ap-tokyo-1.oraclecloud.com/a/query f:id:s-oomori:20190514111348p:plain

3.「コンパートメント内のすべてのリソースの問合せ」を選択し、「'compartmentOcid'」の文字の部分を先程控えたOCIDに書き換えて「検索」を選択します。
注意:リージョン毎にこれを実行して検索してくださいとのことでした。(不便。。。) f:id:s-oomori:20190514112643p:plain

4.結果が表示され、どのリソースが未削除か確認可能です。
※今回はカスタムイメージを作っていたようです。 f:id:s-oomori:20190514112811p:plain

5.今回はカスタムイメージが残っていたようでしたので、削除するかエクスポートで対応します。

6.削除対象コンパートメント画面を開き「Delete」を選択します。 f:id:s-oomori:20190514113927p:plain

7.「Are you sure?」という確認画面で「OK」を選択します。 f:id:s-oomori:20190514114030p:plain

8.「削除中」というステータスになるので、削除を待ちます。(それなりに時間がかかります)
※失敗となるときもここまではできてしまいます。手前でエラーとか出してくれると優しいのですが。。。 f:id:s-oomori:20190514114054p:plain

まとめ

今回ご紹介した拡張検索画面は他にも利用可能ですので活用してみてください。
コンパートメントを削除するにあたって、中のリソースを出力して削除するかどうかまで聞いてくれるようになるといった機能拡張を期待します!!