仮想マシンV2(ARM)の状態は、管理ポータルを見るよりAPIを叩く or Resource Explorer から参照したほうが生の値が見られて分かりやいです。
正確に言うと仮想マシンの情報を取得しただけでは状態は取れなくて、InstanceView という別API(ネストしたAPI)を呼び出す必要があります。Resource Explorerから見ている限り簡単に取得できます。SDKなどでは、XXXwithInstanceView見たいなAPIがあったはずです。
以下、レスポンスJSONの一部です。
"statuses": [ { "code": "ProvisioningState/updating", "level": "Info", "displayStatus": "Updating" }, { "code": "PowerState/starting", "level": "Info", "displayStatus": "VM starting" } ]
statusesの2要素目の、"displayStatus"あたりに着目すればいいのではないかと思います。codeでもいいですけど。取り得る値を見た限りは以下のような値が入ります。
- VM deallocated
- VM deallocating
- VM running
- VM starting
- VM stopping
- VM stopped
stop系は、OSだけ停止させた場合の状態です。restartした場合、状態は変わらずrunningのようです。
これ以外にあるのか不明ですが、こういうのはドキュメント化しておいて欲しいものです。