Cloud SQLの状態をAPI経由で確認したい
Discussion
Google CloudのCloud SQLでインスタンスの状態(起動しているとか停止している)を確認したいんだけど、
REST(v1beta4)で情報を取得して中身を確認してたらふと疑問が・・・・
疑問点
RESTの取得結果は以下のフォーマットで出力されます。公式ドキュメントはここ。
{
"kind": string,
"state": enum (SqlInstanceState),
"databaseVersion": enum (SqlDatabaseVersion),
"settings": {
object (Settings)
============ (無関係部分の省略)===============
"outOfDiskReport": {
object (SqlOutOfDiskReport)
}
}
インスタンスの状態なんで、stateの値を見ればOKかな?っと思ったのですが、起動していても停止していてもインスタンスとして正常(サスペンドしたり、メンテなどしてない)であれば一律「RUNNABLE」という状態になってしまうようです。じゃあどこで起動、停止をジャッジするかというと、おそらくsetting内のactivationPolicyがNever(停止)、ALWAYS(起動)になっていることを確認すればよさそう。
なぜstateとactivationPolicyとで2つに分けて状態を分けて管理するのか良く分かんないんですが、理由があるんでしょうか?ちなみにCompute Engineのインスタンス情報には、status(PROVISIONING,STAGING,RUNNING, TOPPING,SUSPENDING, SUSPENDED,REPAIRING,TERMINATED)があり、こっちは直感的に理解しやすいなと思いました。