From c35e78fe3f3e3b320e1e8cac4fce3676405a202f Mon Sep 17 00:00:00 2001 From: decentral1se Date: Fri, 22 Oct 2021 09:48:48 +0200 Subject: [PATCH] fix: support multiple SSH keys --- gomarkdoc.md | 6 ++++-- libcapsul.go | 16 +++++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/gomarkdoc.md b/gomarkdoc.md index 8fc6336..3dc52b4 100644 --- a/gomarkdoc.md +++ b/gomarkdoc.md @@ -6,11 +6,13 @@ import "coopcloud.tech/libcapsul" ``` +Package libcapsul provides Capsul operations functionality\. + ## Index - [type CapsulClient](<#type-capsulclient>) - [func New(instanceURL, APIToken string) CapsulClient](<#func-new>) - - [func (c CapsulClient) Create(capsulName, capsulType, capsulImage, capsulSSHKey string) (CapsulCreateResponse, error)](<#func-capsulclient-create>) + - [func (c CapsulClient) Create(capsulName, capsulType, capsulImage string, capsulSSHKeys []string) (CapsulCreateResponse, error)](<#func-capsulclient-create>) - [type CapsulCreateResponse](<#type-capsulcreateresponse>) @@ -36,7 +38,7 @@ New creates a new Capsul client\. ### func \(CapsulClient\) Create ```go -func (c CapsulClient) Create(capsulName, capsulType, capsulImage, capsulSSHKey string) (CapsulCreateResponse, error) +func (c CapsulClient) Create(capsulName, capsulType, capsulImage string, capsulSSHKeys []string) (CapsulCreateResponse, error) ``` Create creates a new capsul\. diff --git a/libcapsul.go b/libcapsul.go index e795be6..e29f91b 100644 --- a/libcapsul.go +++ b/libcapsul.go @@ -32,7 +32,7 @@ func New(instanceURL, APIToken string) CapsulClient { } // Create creates a new capsul. -func (c CapsulClient) Create(capsulName, capsulType, capsulImage, capsulSSHKey string) (CapsulCreateResponse, error) { +func (c CapsulClient) Create(capsulName, capsulType, capsulImage string, capsulSSHKeys []string) (CapsulCreateResponse, error) { // yep, the response time is quite slow, something to fix on the Capsul side client := &http.Client{Timeout: 20 * time.Second} @@ -40,10 +40,16 @@ func (c CapsulClient) Create(capsulName, capsulType, capsulImage, capsulSSHKey s logrus.Debugf("using '%s' as capsul create url", capsulCreateURL) values := map[string]string{ - "name": capsulName, - "size": capsulType, - "os": capsulImage, - "ssh_key_0": capsulSSHKey, + "name": capsulName, + "size": capsulType, + "os": capsulImage, + } + + idx := 0 + for _, sshKey := range capsulSSHKeys { + key := fmt.Sprintf("ssh_key_%v", idx) + values[key] = sshKey + idx++ } payload, err := json.Marshal(values)