sacloud / usacloud

usacloud:rabbit: : CLI client for the Sakura Cloud:cherry_blossom::cloud:
Apache License 2.0
54 stars 13 forks source link

design: v1での複数ゾーン対応 #573

Closed yamamoto-febc closed 4 years ago

yamamoto-febc commented 4 years ago

複数ゾーン対応の設計メモ

機能概要

https://github.com/sacloud/usacloud/blob/v-next-dev/design/v1.md#複数ゾーンのリソースの一括管理

問題点

v1での複数ゾーン一括操作対応にあたり https://github.com/sacloud/libsacloud/issues/560 が問題となる。

これらの問題への対応としてUsacloud側での対応を行う。

対応案

現在のアウトプットの仕様

以下のインターフェースで呼ばれる。

type Output interface {
    Print(values interface{}) error
}

Printの引数valuesには[]interface{}が期待されている。 valuesは各コマンドのcore.Command.Func()が返したものが格納されている。

参考(core.Command.Func()が実際に呼ばれる部分の例): https://github.com/sacloud/usacloud/blob/e875940e9b0d1a36d7386130a9fa9333bc8cc911/pkg/cmd/core/command.go#L328-L350

この辺りで値を加工しゾーン情報を付与する?

yamamoto-febc commented 4 years ago

576 で対応済み