From d6c9b69b9cb5a64f9bedf717a12b8de80d358d28 Mon Sep 17 00:00:00 2001 From: ston1th Date: Mon, 1 Jun 2020 13:59:16 +0200 Subject: [PATCH] some improvements --- ipconfig.go | 9 +++++++++ network.go | 9 +++++++++ server.go | 9 ++++++--- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/ipconfig.go b/ipconfig.go index 0b66bf3..da6a2a8 100644 --- a/ipconfig.go +++ b/ipconfig.go @@ -6,6 +6,15 @@ import ( "strings" ) +type IPConfigs []*IPConfig + +func (c IPConfigs) Get(index int) *IPConfig { + if len(c)-1 >= index { + return c[index] + } + return nil +} + type IPConfig struct { IPv4CIDR string IPv4Gateway string diff --git a/network.go b/network.go index 8e03409..f20350c 100644 --- a/network.go +++ b/network.go @@ -7,6 +7,15 @@ import ( "strings" ) +type NetworkDevices []*NetworkDevice + +func (c NetworkDevice) Get(index int) *NetworkDevice { + if len(c)-1 >= index { + return c[index] + } + return nil +} + type NetworkDevice struct { Type string MACAddress string diff --git a/server.go b/server.go index a21eb16..daa55b2 100644 --- a/server.go +++ b/server.go @@ -16,8 +16,8 @@ type Server struct { Node string Status ServerStatus `json:"status"` Resources Resources - NetDevices []*NetworkDevice - IPConfig []*IPConfig + NetDevices NetworkDevices + IPConfig IPConfigs Nameserver Nameserver SearchDomain string UserData *UserData @@ -217,7 +217,7 @@ func (o ServerTemplateOpts) body() httpbody { return body } -func (c *ServerClient) CreateFromTemplate(ctx context.Context, opts ServerTemplateOpts) (t *Task, err error) { +func (c *ServerClient) CreateFromTemplate(ctx context.Context, opts ServerTemplateOpts) (t *Task, url string, err error) { err = opts.Validate() if err != nil { return @@ -234,6 +234,9 @@ func (c *ServerClient) CreateFromTemplate(ctx context.Context, opts ServerTempla body["newid"] = nextid if tempnode != opts.TargetNode { body["target"] = opts.TargetNode + url = NewURL(opts.TargetNode, nextid) + } else { + url = NewURL(tempnode, nextid) } req, err := c.client.NewRequest(ctx, "GET", fmt.Sprintf("/nodes/%s/qemu/%s/clone", tempnode, id), body.Reader()) if err != nil {