Closed hiboma closed 2 years ago
Yao::Tenant で keystone API の version をとるメソッドを生やしています
[1] yao(main)> Yao::Tenant.api_version
=> #<Yao::APIVersion:0x00007fd6da225d40
@id="v3.7",
@links=[{"href"=>"https://***.com/mitaka/keystone/v3/", "rel"=>"self"}],
@media_types=[{"base"=>"application/json", "type"=>"application/vnd.openstack.identity-v3+json"}],
@min_version=nil,
@status="stable",
@updated="2016-10-06T00:00:00Z",
@version=nil>
v2, v3 を判定できるとよい??
[2] yao(main)> Yao::Tenant.api_version.v3?
=> true
supported
, deprecated
... なバージョン一覧をとるメソッドも生やしてます
[3] yao(main)> Yao::Tenant.api_versions
=> #<Yao::APIVersions:0x00007fd6d98af770
@deprecated=
#<Yao::APIVersion:0x00007fd6d98af7c0
@id="v2.0",
@links=
[{"href"=>"https://***.com/mitaka/admin/keystone/v2.0/", "rel"=>"self"},
{"href"=>"http://docs.openstack.org/", "type"=>"text/html", "rel"=>"describedby"}],
@media_types=[{"base"=>"application/json", "type"=>"application/vnd.openstack.identity-v2.0+json"}],
@min_version=nil,
@status="deprecated",
@updated="2016-08-04T00:00:00Z",
@version=nil>,
@stable=
#<Yao::APIVersion:0x00007fd6d98af7e8
@id="v3.7",
@links=[{"href"=>"https://***.com/mitaka/admin/keystone/v3/", "rel"=>"self"}],
@media_types=[{"base"=>"application/json", "type"=>"application/vnd.openstack.identity-v3+json"}],
@min_version=nil,
@status="stable",
@updated="2016-10-06T00:00:00Z",
@version=nil>>
Hi yao.
API を叩いて OpenStack コンポーネントの API バージョンをとれるようにする実装をあれこれ議論したいので PR を立てました. Yao::Resources::* で API バージョンに応じて振る舞いを変えられるようにするのが目的です
PR の中で詰めたい/議論したいこと
を中心にやりとりをして インタフェースやクラス名が固まったら 実装を詰めていく ( リファクタリング、テスト ) のがいいかと思います
( プロトタイプを考えるための PR なので「実装」部分 についてはあんまり細かいことをつっこまんでくださいな: 例 version を毎回りクエストするのは効率わるいので キャッシュを入れようとか ) )