停止後の openstack 内の VM の使用に関する小さな請求レポートが必要です。これまでのところ、インスタンス名からフレーバー情報 (vCPU、ディスク、メモリ) を取得する方法を見つけています。
そして、今計算する VM の起動時間を知りたいです。
openstack python API から取得する良い方法はありますか?
コードも貼り付けていただけると助かります。
停止後の openstack 内の VM の使用に関する小さな請求レポートが必要です。これまでのところ、インスタンス名からフレーバー情報 (vCPU、ディスク、メモリ) を取得する方法を見つけています。
そして、今計算する VM の起動時間を知りたいです。
openstack python API から取得する良い方法はありますか?
コードも貼り付けていただけると助かります。
(私はchina-openstack communityから回答を得て、ここで共有しました)
novaclient 使用モジュールでは、すべてのインスタンス (アクティブまたは終了) をlist
API でフェッチできます。詳細情報はget
API を介してフェッチされますが、この python ドキュメントを介してどの情報が公開されるかは明確ではありません。
幸いなことに、openstack api : os-simple-tenant-usageはデータ構造を示しており、これuptime
が私が求めているものです。
"tenant_usage": {
"server_usages": [
{
... (skipped)
"uptime": 3600,
"vcpus": 1
}
],
openstack ダッシュボード (少なくとも Folsom バージョン) もこの API を使用します。
サーバーの稼働時間を取得したかっただけです。サーバーが作成されてからではなく、サーバーが稼働している間の実際の稼働時間を意味します。
os-simple-tenant-usage拡張機能へのリクエスト(認証トークンを取得した後):
GET http://rdo:8774/v2/4e1900cf21924a098709c23480e157c0/os-simple-tenant-usage/4e1900cf21924a098709c23480e157c0
(正しいテナント ID を使用)
応答 (マシンが停止しており、稼働時間がゼロ以外の値であることに注意してください):
{
"tenant_usage": {
"total_memory_mb_usage": 0.000007111111111111112,
"total_vcpus_usage": 1.388888888888889e-8,
"start": "2014-02-25T14:20:19.660179",
"tenant_id": "4e1900cf21924a098709c23480e157c0",
"stop": "2014-02-25T14:20:19.660184",
"server_usages": [
{
"instance_id": "ca4465a8-38ca-40de-b138-82efcc88c7cf",
"uptime": 1199,
"started_at": "2014-02-25T14:00:20.000000",
"ended_at": null,
"memory_mb": 512,
"tenant_id": "4e1900cf21924a098709c23480e157c0",
"state": "stopped",
"hours": 1.388888888888889e-8,
"vcpus": 1,
"flavor": "m1.tiny",
"local_gb": 1,
"name": "m1"
}
],
"total_hours": 1.388888888888889e-8,
"total_local_gb_usage": 1.388888888888889e-8
}
}
したがって、アップタイムという名前にもかかわらず、サーバーの作成からの時間です。