Closed yamamoto-febc closed 4 years ago
複数ゾーン対応の設計メモ
https://github.com/sacloud/usacloud/blob/v-next-dev/design/v1.md#複数ゾーンのリソースの一括管理
v1での複数ゾーン一括操作対応にあたり https://github.com/sacloud/libsacloud/issues/560 が問題となる。
これらの問題への対応としてUsacloud側での対応を行う。
core.Command
pkg/output
以下のインターフェースで呼ばれる。
type Output interface { Print(values interface{}) error }
Printの引数valuesには[]interface{}が期待されている。 valuesは各コマンドのcore.Command.Func()が返したものが格納されている。
Print
values
[]interface{}
core.Command.Func()
参考(core.Command.Func()が実際に呼ばれる部分の例): https://github.com/sacloud/usacloud/blob/e875940e9b0d1a36d7386130a9fa9333bc8cc911/pkg/cmd/core/command.go#L328-L350
この辺りで値を加工しゾーン情報を付与する?
複数ゾーン対応の設計メモ
機能概要
https://github.com/sacloud/usacloud/blob/v-next-dev/design/v1.md#複数ゾーンのリソースの一括管理
問題点
v1での複数ゾーン一括操作対応にあたり https://github.com/sacloud/libsacloud/issues/560 が問題となる。
これらの問題への対応としてUsacloud側での対応を行う。
対応案
core.Command
での引数〜ID変換時に全ゾーンを検索、ヒットしたIDと共にゾーン情報を引き回す 参考(現在の実装の該当箇所): https://github.com/sacloud/usacloud/blob/e875940e9b0d1a36d7386130a9fa9333bc8cc911/pkg/cmd/core/command.go#L225core.Command
がアウトプットする(pkg/output
)際に各コマンド実行時のゾーン情報を合わせて渡す? 要検討現在のアウトプットの仕様
以下のインターフェースで呼ばれる。
Print
の引数values
には[]interface{}
が期待されている。values
は各コマンドのcore.Command.Func()
が返したものが格納されている。参考(
core.Command.Func()
が実際に呼ばれる部分の例): https://github.com/sacloud/usacloud/blob/e875940e9b0d1a36d7386130a9fa9333bc8cc911/pkg/cmd/core/command.go#L328-L350この辺りで値を加工しゾーン情報を付与する?