Code Monkey home page Code Monkey logo

gokcps's People

Contributors

andrestc avatar benjvi avatar example123 avatar glenjamin avatar jalemieux avatar pdube avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

takahiro-impara

gokcps's Issues

createLBStickinessPolicyのparamに対応する

createLBStickinessPolicyコマンドのparamに対応できていません

createLBStickinessPolicyは複数のparamをセットできます。またparamnamevalueの組み合わせです。(https://iaas.cloud-platform.kddi.ne.jp/developer/createLBStickinessPolicy/)

下記は複数のparamをセットした場合のcreateLBStickinessPolicyの例です

./kick_api.sh command=createLBStickinessPolicy lbruleid=10c00c09-8e47-499b-85c8-f6eb29f46c8e methodname=AppCookie name=test param[0].value=bbb param[1].name=mode param[1].value=cccc param[2].name=length param[2].value=50 param[3].name=holdtime param[3].value=1000 param[4].name=request-learn param[4].value=true param[5].name=prefix param[5].value=true

現状のgokcpsで以下の2つの問題が確認できました

  • 複数のparamをセットできない
    • SetParam関数は引数の型はmap[string]stringで、1つのmapしか渡せない
    • リスト化
  • URLにparamをセットする際、namekeyにしてしまっている
    • ここは単純にパラメータの名前を変更すれば良い

リファレンスに書かれていないコマンドのパラメータにも対応する

KCPSのAPIコマンドのリファレンスに書いていないパラメータもセットできるようにしてほしいです。

以下に現在確認しているリファレンスに書かれていないパラメータ一覧を示します(パラメータを全て網羅するには仕様書でも読まないと厳しい)

コマンド パラメータ デフォルト値 内容
createPortForwardingRule openfirewall bool true ポートフォワードのルール作成時、自動でFirewallのルールを追加するかどうか。作成されるFirewallのルールはcidrが0.0.0.0/0、portの範囲はポートフォワードのルールのパブリックポートと同じ範囲になる。
registerTemplate details[n].nicAdapter string nil NICアダプタの設定(例: details[0].nicAdapter=E1000)
registerTemplate details[n].keyboard string nil keyboardの設定(例: details[0].keyboard=us)
createTemplate ispublic bool false テンプレートの公開設定
createSnapshot quiescevm bool false VMの休止
createVMSnapshot snapshotmemory bool false メモリを含めるか否か
createLoadBalancerRule openfirewall bool true ポートフォワードのルール作成時、自動でFirewallのルールを追加するかどうか

CreateSnapshotPolicyで&{false 0 0 }が返却される

CreateSnapshotPolicy実行後、定期スナップショットの設定に成功しているにも関わらず、返り値(CreateSnapshotPolicyResponse型)が&{false 0 0 }となっています。errの方はnilです。

構造体の型を使い回すようにする

たとえばSnapshotService.goで定義されているCreateSnapshotResponseなんですが

type CreateSnapshotResponse struct {
	JobID        string `json:"jobid,omitempty"`
	Account      string `json:"account,omitempty"`
	Created      string `json:"created,omitempty"`
	Domain       string `json:"domain,omitempty"`
	Domainid     string `json:"domainid,omitempty"`
	Id           string `json:"id,omitempty"`
	Intervaltype string `json:"intervaltype,omitempty"`
	Name         string `json:"name,omitempty"`
	Physicalsize int64  `json:"physicalsize,omitempty"`
	Project      string `json:"project,omitempty"`
	Projectid    string `json:"projectid,omitempty"`
	Revertable   bool   `json:"revertable,omitempty"`
	Snapshottype string `json:"snapshottype,omitempty"`
	State        string `json:"state,omitempty"`
	Tags         []struct {
		Account      string `json:"account,omitempty"`
		Customer     string `json:"customer,omitempty"`
		Domain       string `json:"domain,omitempty"`
		Domainid     string `json:"domainid,omitempty"`
		Key          string `json:"key,omitempty"`
		Project      string `json:"project,omitempty"`
		Projectid    string `json:"projectid,omitempty"`
		Resourceid   string `json:"resourceid,omitempty"`
		Resourcetype string `json:"resourcetype,omitempty"`
		Value        string `json:"value,omitempty"`
	} `json:"tags,omitempty"`
	Volumeid   string `json:"volumeid,omitempty"`
	Volumename string `json:"volumename,omitempty"`
	Volumetype string `json:"volumetype,omitempty"`
	Zoneid     string `json:"zoneid,omitempty"`
}

これはTagsService.goで定義されたTag型を用いて

type CreateSnapshotResponse struct {
	JobID        string `json:"jobid,omitempty"`
	Account      string `json:"account,omitempty"`
	Created      string `json:"created,omitempty"`
	Domain       string `json:"domain,omitempty"`
	Domainid     string `json:"domainid,omitempty"`
	Id           string `json:"id,omitempty"`
	Intervaltype string `json:"intervaltype,omitempty"`
	Name         string `json:"name,omitempty"`
	Physicalsize int64  `json:"physicalsize,omitempty"`
	Project      string `json:"project,omitempty"`
	Projectid    string `json:"projectid,omitempty"`
	Revertable   bool   `json:"revertable,omitempty"`
	Snapshottype string `json:"snapshottype,omitempty"`
	State        string `json:"state,omitempty"`
	Tags         []Tag `json:"tags,omitempty"`
	Volumeid   string `json:"volumeid,omitempty"`
	Volumename string `json:"volumename,omitempty"`
	Volumetype string `json:"volumetype,omitempty"`
	Zoneid     string `json:"zoneid,omitempty"`
}

このように書き換えることが可能かと思います。

現在あらゆる構造体中のTagsフィールドはTag型ではない(型が定義されていない)ので、たとえばCreateSnapshotResponseやDeployValueVirtualMachineResponseのTagsを引数にとるような関数が作れません。

Tags以外にもEgressrule、Securitygroup、Nic(Networknameのフィールドを持つものとそうでないものがある)なども型で定義して、それを使い回すとよいと思います

NewRegisterIsoParamsでostypeidにzoneidがセットされている

修正よろしくお願いします

ISOService.go (Lines 565-574)

func (s *ISOService) NewRegisterIsoParams(displaytext string, name string, url string, zoneid string, ostypeid string) *RegisterIsoParams {
	p := &RegisterIsoParams{}
	p.p = make(map[string]interface{})
	p.p["displaytext"] = displaytext
	p.p["name"] = name
	p.p["url"] = url
	p.p["zoneid"] = zoneid
	p.p["ostypeid"] = zoneid  #ここ
	return p
}

ListSnapshotPoliciesParamsにでvolumeidをセットできるようにする

KCPSのAPIコマンドlistSnapshotPoliciesはvolumeidが必須パラメータですhttps://iaas.cloud-platform.kddi.ne.jp/developer/listSnapshotPolicies/

gokcpsでは、NewListSnapshotPoliciesParamsが引数をとらず、setterはSetIdしか実装されていないため、ListSnapshotPoliciesParamsにvolumeidをセットする術がありません

NewListSnapshotPoliciesParams(volumeid string)

と定義し直し、volumeidをセットできるようにすべきです

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.