Context propagation for all ConnectionManager and DefinitionManager methods 19/142719/2
authorFiete Ostkamp <fiete.ostkamp@telekom.de>
Tue, 9 Dec 2025 14:59:49 +0000 (15:59 +0100)
committerFiete Ostkamp <fiete.ostkamp@telekom.de>
Wed, 10 Dec 2025 07:01:41 +0000 (08:01 +0100)
- connect context for all ConnectionManager and DefinitionManager methods

Issue-ID: MULTICLOUD-1538
Change-Id: I5dac52f722de592188275c9dd443bfc8dfcb536e
Signed-off-by: Fiete Ostkamp <fiete.ostkamp@telekom.de>
src/k8splugin/api/connectionhandler.go
src/k8splugin/api/defhandler.go
src/k8splugin/api/defhandler_test.go
src/k8splugin/internal/app/client.go
src/k8splugin/internal/app/config_backend.go
src/k8splugin/internal/connection/connection.go
src/k8splugin/internal/rb/config_template.go
src/k8splugin/internal/rb/definition.go
src/k8splugin/internal/rb/definition_test.go
src/k8splugin/internal/rb/profile.go

index 21250b1..959a319 100644 (file)
@@ -39,9 +39,10 @@ type connectionHandler struct {
 
 // CreateHandler handles creation of the connectivity entry in the database
 // This is a multipart handler. See following example curl request
-// curl -i -F "metadata={\"cloud-region\":\"kud\",\"cloud-owner\":\"me\"};type=application/json" \
-//         -F file=@/home/user/.kube/config \
-//         -X POST http://localhost:8081/v1/connectivity-info
+//
+//     curl -i -F "metadata={\"cloud-region\":\"kud\",\"cloud-owner\":\"me\"};type=application/json" \
+//             -F file=@/home/user/.kube/config \
+//             -X POST http://localhost:8081/v1/connectivity-info
 func (h connectionHandler) createHandler(w http.ResponseWriter, r *http.Request) {
        var v connection.Connection
 
@@ -95,7 +96,7 @@ func (h connectionHandler) createHandler(w http.ResponseWriter, r *http.Request)
 
        v.Kubeconfig = base64.StdEncoding.EncodeToString(content)
 
-       ret, err := h.client.Create(v)
+       ret, err := h.client.Create(r.Context(), v)
        if err != nil {
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
@@ -116,7 +117,7 @@ func (h connectionHandler) getHandler(w http.ResponseWriter, r *http.Request) {
        vars := mux.Vars(r)
        name := vars["connname"]
 
-       ret, err := h.client.Get(name)
+       ret, err := h.client.Get(r.Context(), name)
        if err != nil {
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
@@ -136,7 +137,7 @@ func (h connectionHandler) deleteHandler(w http.ResponseWriter, r *http.Request)
        vars := mux.Vars(r)
        name := vars["connname"]
 
-       err := h.client.Delete(name)
+       err := h.client.Delete(r.Context(), name)
        if err != nil {
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
index 3dea8ad..c7c5abe 100644 (file)
@@ -17,6 +17,7 @@
 package api
 
 import (
+       "context"
        "encoding/json"
        "io"
        "io/ioutil"
@@ -48,7 +49,7 @@ func (h rbDefinitionHandler) createHandler(w http.ResponseWriter, r *http.Reques
                http.Error(w, err.Error(), http.StatusUnprocessableEntity)
                return
        }
-       h.createOrUpdateHandler(v, w, false)
+       h.createOrUpdateHandler(r.Context(), v, w, false)
 }
 
 // createOrUpdateHandler handles creation of the definition entry in the database
@@ -82,11 +83,11 @@ func (h rbDefinitionHandler) updateHandler(w http.ResponseWriter, r *http.Reques
        v.RBVersion = version
        v.RBName = name
 
-       h.createOrUpdateHandler(v, w, true)
+       h.createOrUpdateHandler(r.Context(), v, w, true)
 }
 
 // createOrUpdateHandler handles creation of the definition entry in the database
-func (h rbDefinitionHandler) createOrUpdateHandler(v rb.Definition, w http.ResponseWriter, update bool) {
+func (h rbDefinitionHandler) createOrUpdateHandler(ctx context.Context, v rb.Definition, w http.ResponseWriter, update bool) {
        // Name is required.
        if v.RBName == "" {
                http.Error(w, "Missing name in request", http.StatusBadRequest)
@@ -102,9 +103,9 @@ func (h rbDefinitionHandler) createOrUpdateHandler(v rb.Definition, w http.Respo
        var ret rb.Definition
        var err error
        if update {
-               ret, err = h.client.Update(v)
+               ret, err = h.client.Update(ctx, v)
        } else {
-               ret, err = h.client.Create(v)
+               ret, err = h.client.Create(ctx, v)
        }
        if err != nil {
                http.Error(w, err.Error(), http.StatusInternalServerError)
@@ -137,7 +138,7 @@ func (h rbDefinitionHandler) uploadHandler(w http.ResponseWriter, r *http.Reques
                return
        }
 
-       err = h.client.Upload(name, version, inpBytes)
+       err = h.client.Upload(r.Context(), name, version, inpBytes)
        if err != nil {
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
@@ -152,7 +153,7 @@ func (h rbDefinitionHandler) listVersionsHandler(w http.ResponseWriter, r *http.
        vars := mux.Vars(r)
        name := vars["rbname"]
 
-       ret, err := h.client.List(name)
+       ret, err := h.client.List(r.Context(), name)
        if err != nil {
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
@@ -171,7 +172,7 @@ func (h rbDefinitionHandler) listVersionsHandler(w http.ResponseWriter, r *http.
 // Returns a list of rb.Definitions
 func (h rbDefinitionHandler) listAllHandler(w http.ResponseWriter, r *http.Request) {
 
-       ret, err := h.client.List("")
+       ret, err := h.client.List(r.Context(), "")
        if err != nil {
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
@@ -193,7 +194,7 @@ func (h rbDefinitionHandler) getHandler(w http.ResponseWriter, r *http.Request)
        name := vars["rbname"]
        version := vars["rbversion"]
 
-       ret, err := h.client.Get(name, version)
+       ret, err := h.client.Get(r.Context(), name, version)
        if err != nil {
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
@@ -214,7 +215,7 @@ func (h rbDefinitionHandler) deleteHandler(w http.ResponseWriter, r *http.Reques
        name := vars["rbname"]
        version := vars["rbversion"]
 
-       err := h.client.Delete(name, version)
+       err := h.client.Delete(r.Context(), name, version)
        if err != nil {
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
index 22d4548..22461a3 100644 (file)
@@ -18,6 +18,7 @@ package api
 
 import (
        "bytes"
+       "context"
        "encoding/json"
        "io"
        "net/http"
@@ -31,9 +32,9 @@ import (
        pkgerrors "github.com/pkg/errors"
 )
 
-//Creating an embedded interface via anonymous variable
-//This allows us to make mockDB satisfy the DatabaseConnection
-//interface even if we are not implementing all the methods in it
+// Creating an embedded interface via anonymous variable
+// This allows us to make mockDB satisfy the DatabaseConnection
+// interface even if we are not implementing all the methods in it
 type mockRBDefinition struct {
        rb.DefinitionManager
        // Items and err will be used to customize each test
@@ -42,7 +43,7 @@ type mockRBDefinition struct {
        Err   error
 }
 
-func (m *mockRBDefinition) Create(inp rb.Definition) (rb.Definition, error) {
+func (m *mockRBDefinition) Create(ctx context.Context, inp rb.Definition) (rb.Definition, error) {
        if m.Err != nil {
                return rb.Definition{}, m.Err
        }
@@ -50,7 +51,7 @@ func (m *mockRBDefinition) Create(inp rb.Definition) (rb.Definition, error) {
        return m.Items[0], nil
 }
 
-func (m *mockRBDefinition) List(name string) ([]rb.Definition, error) {
+func (m *mockRBDefinition) List(ctx context.Context, name string) ([]rb.Definition, error) {
        if m.Err != nil {
                return []rb.Definition{}, m.Err
        }
@@ -58,7 +59,7 @@ func (m *mockRBDefinition) List(name string) ([]rb.Definition, error) {
        return m.Items, nil
 }
 
-func (m *mockRBDefinition) Get(name, version string) (rb.Definition, error) {
+func (m *mockRBDefinition) Get(ctx context.Context, name, version string) (rb.Definition, error) {
        if m.Err != nil {
                return rb.Definition{}, m.Err
        }
@@ -66,11 +67,11 @@ func (m *mockRBDefinition) Get(name, version string) (rb.Definition, error) {
        return m.Items[0], nil
 }
 
-func (m *mockRBDefinition) Delete(name, version string) error {
+func (m *mockRBDefinition) Delete(ctx context.Context, name, version string) error {
        return m.Err
 }
 
-func (m *mockRBDefinition) Upload(name, version string, inp []byte) error {
+func (m *mockRBDefinition) Upload(ctx context.Context, name, version string, inp []byte) error {
        return m.Err
 }
 
index cbd3dd5..b85fe56 100644 (file)
@@ -348,7 +348,7 @@ func (k *KubernetesClient) GetResourceStatus(res helm.KubernetesResource, namesp
 func (k *KubernetesClient) getKubeConfig(cloudregion string) (string, error) {
 
        conn := connection.NewConnectionClient()
-       kubeConfigPath, err := conn.Download(cloudregion)
+       kubeConfigPath, err := conn.Download(context.TODO(), cloudregion)
        if err != nil {
                return "", pkgerrors.Wrap(err, "Downloading kubeconfig")
        }
@@ -621,13 +621,13 @@ func (k *KubernetesClient) deleteResources(resources []helm.KubernetesResource,
        return nil
 }
 
-//GetMapper returns the RESTMapper that was created for this client
+// GetMapper returns the RESTMapper that was created for this client
 func (k *KubernetesClient) GetMapper() meta.RESTMapper {
        return k.restMapper
 }
 
-//GetDynamicClient returns the dynamic client that is needed for
-//unstructured REST calls to the apiserver
+// GetDynamicClient returns the dynamic client that is needed for
+// unstructured REST calls to the apiserver
 func (k *KubernetesClient) GetDynamicClient() dynamic.Interface {
        return k.dynamicClient
 }
@@ -638,8 +638,8 @@ func (k *KubernetesClient) GetStandardClient() kubernetes.Interface {
        return k.clientSet
 }
 
-//GetInstanceID returns the instanceID that is injected into all the
-//resources created by the plugin
+// GetInstanceID returns the instanceID that is injected into all the
+// resources created by the plugin
 func (k *KubernetesClient) GetInstanceID() string {
        return k.instanceID
 }
index a550b8d..046ef81 100644 (file)
@@ -648,11 +648,11 @@ var resolve = func(rbName, rbVersion, profileName, instanceId string, p Config,
        } else {
                log.Printf("Using Definition Template as a Configuration Template")
                defClient := rb.NewDefinitionClient()
-               definition, err := defClient.Get(rbName, rbVersion)
+               definition, err := defClient.Get(context.TODO(), rbName, rbVersion)
                if err != nil {
                        return configResourceList{}, pkgerrors.Wrap(err, "Get RB Definition")
                }
-               def, err = defClient.Download(rbName, rbVersion)
+               def, err = defClient.Download(context.TODO(), rbName, rbVersion)
                if err != nil {
                        return configResourceList{}, pkgerrors.Wrap(err, "Downloading RB Definition Template")
                }
index a3cee20..b561117 100644 (file)
@@ -59,10 +59,10 @@ func (dk ConnectionKey) String() string {
 
 // ConnectionManager is an interface exposes the Connection functionality
 type ConnectionManager interface {
-       Create(c Connection) (Connection, error)
-       Get(name string) (Connection, error)
-       Delete(name string) error
-       GetConnectivityRecordByName(connname string, name string) (map[string]string, error)
+       Create(ctx context.Context, c Connection) (Connection, error)
+       Get(ctx context.Context, name string) (Connection, error)
+       Delete(ctx context.Context, name string) error
+       GetConnectivityRecordByName(ctx context.Context, connname string, name string) (map[string]string, error)
 }
 
 // ConnectionClient implements the  ConnectionManager
@@ -82,18 +82,18 @@ func NewConnectionClient() *ConnectionClient {
 }
 
 // Create an entry for the Connection resource in the database`
-func (v *ConnectionClient) Create(c Connection) (Connection, error) {
+func (v *ConnectionClient) Create(ctx context.Context, c Connection) (Connection, error) {
 
        //Construct composite key consisting of name
        key := ConnectionKey{CloudRegion: c.CloudRegion}
 
        //Check if this Connection already exists
-       _, err := v.Get(c.CloudRegion)
+       _, err := v.Get(ctx, c.CloudRegion)
        if err == nil {
                return Connection{}, pkgerrors.New("Connection already exists")
        }
 
-       err = db.DBconn.Create(context.TODO(), v.storeName, key, v.tagMeta, c)
+       err = db.DBconn.Create(ctx, v.storeName, key, v.tagMeta, c)
        if err != nil {
                return Connection{}, pkgerrors.Wrap(err, "Creating DB Entry")
        }
@@ -102,11 +102,11 @@ func (v *ConnectionClient) Create(c Connection) (Connection, error) {
 }
 
 // Get returns Connection for corresponding to name
-func (v *ConnectionClient) Get(name string) (Connection, error) {
+func (v *ConnectionClient) Get(ctx context.Context, name string) (Connection, error) {
 
        //Construct the composite key to select the entry
        key := ConnectionKey{CloudRegion: name}
-       value, err := db.DBconn.Read(context.TODO(), v.storeName, key, v.tagMeta)
+       value, err := db.DBconn.Read(ctx, v.storeName, key, v.tagMeta)
        if err != nil {
                return Connection{}, pkgerrors.Wrap(err, "Get Connection")
        }
@@ -140,10 +140,10 @@ func (v *ConnectionClient) Get(name string) (Connection, error) {
 //                     “cert-to-present” :  “<contents of certificate to present to server>” , //valid if ssl-initiator is true
 //             },
 //     ]
-func (v *ConnectionClient) GetConnectivityRecordByName(connectionName string,
+func (v *ConnectionClient) GetConnectivityRecordByName(ctx context.Context, connectionName string,
        connectivityRecordName string) (map[string]string, error) {
 
-       conn, err := v.Get(connectionName)
+       conn, err := v.Get(ctx, connectionName)
        if err != nil {
                return nil, pkgerrors.Wrap(err, "Error getting connection")
        }
@@ -158,11 +158,11 @@ func (v *ConnectionClient) GetConnectivityRecordByName(connectionName string,
 }
 
 // Delete the Connection from database
-func (v *ConnectionClient) Delete(name string) error {
+func (v *ConnectionClient) Delete(ctx context.Context, name string) error {
 
        //Construct the composite key to select the entry
        key := ConnectionKey{CloudRegion: name}
-       err := db.DBconn.Delete(context.TODO(), v.storeName, key, v.tagMeta)
+       err := db.DBconn.Delete(ctx, v.storeName, key, v.tagMeta)
        if err != nil {
                return pkgerrors.Wrap(err, "Delete Connection")
        }
@@ -172,9 +172,9 @@ func (v *ConnectionClient) Delete(name string) error {
 // Download the connection information onto a kubeconfig file
 // The file is named after the name of the connection and will
 // be placed in the provided parent directory
-func (v *ConnectionClient) Download(name string) (string, error) {
+func (v *ConnectionClient) Download(ctx context.Context, name string) (string, error) {
 
-       conn, err := v.Get(name)
+       conn, err := v.Get(ctx, name)
        if err != nil {
                return "", pkgerrors.Wrap(err, "Getting Connection info")
        }
index 225f256..96451c6 100644 (file)
@@ -108,7 +108,7 @@ func (v *ConfigTemplateClient) CreateOrUpdate(rbName, rbVersion string, p Config
        }
 
        //Check if provided resource bundle information is valid
-       rbDef, err := NewDefinitionClient().Get(rbName, rbVersion)
+       rbDef, err := NewDefinitionClient().Get(context.TODO(), rbName, rbVersion)
        if err != nil {
                return pkgerrors.Errorf("Invalid Resource Bundle ID provided: %s", err.Error())
        }
index 7e8d8db..0f8e505 100644 (file)
@@ -61,12 +61,12 @@ func (dk DefinitionKey) String() string {
 
 // DefinitionManager is an interface exposes the resource bundle definition functionality
 type DefinitionManager interface {
-       Create(def Definition) (Definition, error)
-       Update(def Definition) (Definition, error)
-       List(name string) ([]Definition, error)
-       Get(name string, version string) (Definition, error)
-       Delete(name string, version string) error
-       Upload(name string, version string, inp []byte) error
+       Create(ctx context.Context, def Definition) (Definition, error)
+       Update(ctx context.Context, def Definition) (Definition, error)
+       List(ctx context.Context, name string) ([]Definition, error)
+       Get(ctx context.Context, name string, version string) (Definition, error)
+       Delete(ctx context.Context, name string, version string) error
+       Upload(ctx context.Context, name string, version string, inp []byte) error
 }
 
 // DefinitionClient implements the DefinitionManager
@@ -88,18 +88,18 @@ func NewDefinitionClient() *DefinitionClient {
 }
 
 // Create an entry for the resource in the database`
-func (v *DefinitionClient) Create(def Definition) (Definition, error) {
+func (v *DefinitionClient) Create(ctx context.Context, def Definition) (Definition, error) {
 
        //Construct composite key consisting of name and version
        key := DefinitionKey{RBName: def.RBName, RBVersion: def.RBVersion}
 
        //Check if this definition already exists
-       _, err := v.Get(def.RBName, def.RBVersion)
+       _, err := v.Get(ctx, def.RBName, def.RBVersion)
        if err == nil {
                return Definition{}, pkgerrors.New("Definition already exists")
        }
 
-       err = db.DBconn.Create(context.TODO(), v.storeName, key, v.tagMeta, def)
+       err = db.DBconn.Create(ctx, v.storeName, key, v.tagMeta, def)
        if err != nil {
                return Definition{}, pkgerrors.Wrap(err, "Creating DB Entry")
        }
@@ -142,18 +142,18 @@ func (v *DefinitionClient) Create(def Definition) (Definition, error) {
 }
 
 // Update an entry for the resource in the database`
-func (v *DefinitionClient) Update(def Definition) (Definition, error) {
+func (v *DefinitionClient) Update(ctx context.Context, def Definition) (Definition, error) {
 
        //Construct composite key consisting of name and version
        key := DefinitionKey{RBName: def.RBName, RBVersion: def.RBVersion}
 
        //Check if this definition already exists
-       _, err := v.Get(def.RBName, def.RBVersion)
+       _, err := v.Get(ctx, def.RBName, def.RBVersion)
        if err != nil {
                return Definition{}, pkgerrors.New("Definition does not exists")
        }
 
-       err = db.DBconn.Update(context.TODO(), v.storeName, key, v.tagMeta, def)
+       err = db.DBconn.Update(ctx, v.storeName, key, v.tagMeta, def)
        if err != nil {
                return Definition{}, pkgerrors.Wrap(err, "Updating DB Entry")
        }
@@ -162,8 +162,8 @@ func (v *DefinitionClient) Update(def Definition) (Definition, error) {
 }
 
 // List all resource entry's versions in the database
-func (v *DefinitionClient) List(name string) ([]Definition, error) {
-       res, err := db.DBconn.ReadAll(context.TODO(), v.storeName, v.tagMeta)
+func (v *DefinitionClient) List(ctx context.Context, name string) ([]Definition, error) {
+       res, err := db.DBconn.ReadAll(ctx, v.storeName, v.tagMeta)
        if err != nil || len(res) == 0 {
                return []Definition{}, pkgerrors.Wrap(err, "Listing Resource Bundle Definitions")
        }
@@ -192,11 +192,11 @@ func (v *DefinitionClient) List(name string) ([]Definition, error) {
 }
 
 // Get returns the Resource Bundle Definition for corresponding ID
-func (v *DefinitionClient) Get(name string, version string) (Definition, error) {
+func (v *DefinitionClient) Get(ctx context.Context, name string, version string) (Definition, error) {
 
        //Construct the composite key to select the entry
        key := DefinitionKey{RBName: name, RBVersion: version}
-       value, err := db.DBconn.Read(context.TODO(), v.storeName, key, v.tagMeta)
+       value, err := db.DBconn.Read(ctx, v.storeName, key, v.tagMeta)
        if err != nil {
                return Definition{}, pkgerrors.Wrap(err, "Get Resource Bundle definition")
        }
@@ -215,17 +215,17 @@ func (v *DefinitionClient) Get(name string, version string) (Definition, error)
 }
 
 // Delete the Resource Bundle definition from database
-func (v *DefinitionClient) Delete(name string, version string) error {
+func (v *DefinitionClient) Delete(ctx context.Context, name string, version string) error {
 
        //Construct the composite key to select the entry
        key := DefinitionKey{RBName: name, RBVersion: version}
-       err := db.DBconn.Delete(context.TODO(), v.storeName, key, v.tagMeta)
+       err := db.DBconn.Delete(ctx, v.storeName, key, v.tagMeta)
        if err != nil {
                return pkgerrors.Wrap(err, "Delete Resource Bundle Definition")
        }
 
        //Delete the content when the delete operation happens
-       err = db.DBconn.Delete(context.TODO(), v.storeName, key, v.tagContent)
+       err = db.DBconn.Delete(ctx, v.storeName, key, v.tagContent)
        if err != nil {
                return pkgerrors.Wrap(err, "Delete Resource Bundle Definition Content")
        }
@@ -247,10 +247,10 @@ func (v *DefinitionClient) Delete(name string, version string) error {
 }
 
 // Upload the contents of resource bundle into database
-func (v *DefinitionClient) Upload(name string, version string, inp []byte) error {
+func (v *DefinitionClient) Upload(ctx context.Context, name string, version string, inp []byte) error {
 
        //Check if definition metadata exists
-       def, err := v.Get(name, version)
+       def, err := v.Get(ctx, name, version)
        if err != nil {
                return pkgerrors.Errorf("Invalid Definition ID provided: %s", err.Error())
        }
@@ -291,7 +291,7 @@ func (v *DefinitionClient) Upload(name string, version string, inp []byte) error
                }
 
                //TODO: Use db update api once db supports it.
-               err = db.DBconn.Create(context.TODO(), v.storeName, key, v.tagMeta, def)
+               err = db.DBconn.Create(ctx, v.storeName, key, v.tagMeta, def)
                if err != nil {
                        return pkgerrors.Wrap(err, "Storing updated chart metadata")
                }
@@ -299,7 +299,7 @@ func (v *DefinitionClient) Upload(name string, version string, inp []byte) error
 
        //Encode given byte stream to text for storage
        encodedStr := base64.StdEncoding.EncodeToString(inp)
-       err = db.DBconn.Create(context.TODO(), v.storeName, key, v.tagContent, encodedStr)
+       err = db.DBconn.Create(ctx, v.storeName, key, v.tagContent, encodedStr)
        if err != nil {
                return pkgerrors.Errorf("Error uploading data to db: %s", err.Error())
        }
@@ -310,18 +310,18 @@ func (v *DefinitionClient) Upload(name string, version string, inp []byte) error
 // Download the contents of the resource bundle definition from DB
 // Returns a byte array of the contents which is used by the
 // ExtractTarBall code to create the folder structure on disk
-func (v *DefinitionClient) Download(name string, version string) ([]byte, error) {
+func (v *DefinitionClient) Download(ctx context.Context, name string, version string) ([]byte, error) {
 
        //ignore the returned data here
        //Check if id is valid
-       _, err := v.Get(name, version)
+       _, err := v.Get(ctx, name, version)
        if err != nil {
                return nil, pkgerrors.Errorf("Invalid Definition ID provided: %s", err.Error())
        }
 
        //Construct the composite key to select the entry
        key := DefinitionKey{RBName: name, RBVersion: version}
-       value, err := db.DBconn.Read(context.TODO(), v.storeName, key, v.tagContent)
+       value, err := db.DBconn.Read(ctx, v.storeName, key, v.tagContent)
        if err != nil {
                return nil, pkgerrors.Wrap(err, "Get Resource Bundle definition content")
        }
index 42fb537..02a5e2b 100644 (file)
@@ -18,6 +18,7 @@ package rb
 
 import (
        "bytes"
+       "context"
        "reflect"
        "sort"
        "strings"
@@ -66,7 +67,7 @@ func TestCreateDefinition(t *testing.T) {
                t.Run(testCase.label, func(t *testing.T) {
                        db.DBconn = testCase.mockdb
                        impl := NewDefinitionClient()
-                       got, err := impl.Create(testCase.inp)
+                       got, err := impl.Create(context.TODO(), testCase.inp)
                        if err != nil {
                                if testCase.expectedError == "" {
                                        t.Fatalf("Create returned an unexpected error %s", err)
@@ -143,7 +144,7 @@ func TestListDefinition(t *testing.T) {
                t.Run(testCase.label, func(t *testing.T) {
                        db.DBconn = testCase.mockdb
                        impl := NewDefinitionClient()
-                       got, err := impl.List(testCase.name)
+                       got, err := impl.List(context.TODO(), testCase.name)
                        if err != nil {
                                if testCase.expectedError == "" {
                                        t.Fatalf("List returned an unexpected error %s", err)
@@ -219,7 +220,7 @@ func TestGetDefinition(t *testing.T) {
                t.Run(testCase.label, func(t *testing.T) {
                        db.DBconn = testCase.mockdb
                        impl := NewDefinitionClient()
-                       got, err := impl.Get(testCase.name, testCase.version)
+                       got, err := impl.Get(context.TODO(), testCase.name, testCase.version)
                        if err != nil {
                                if testCase.expectedError == "" {
                                        t.Fatalf("Get returned an unexpected error %s", err)
@@ -265,7 +266,7 @@ func TestDeleteDefinition(t *testing.T) {
                t.Run(testCase.label, func(t *testing.T) {
                        db.DBconn = testCase.mockdb
                        impl := NewDefinitionClient()
-                       err := impl.Delete(testCase.name, testCase.version)
+                       err := impl.Delete(context.TODO(), testCase.name, testCase.version)
                        if err != nil {
                                if testCase.expectedError == "" {
                                        t.Fatalf("Delete returned an unexpected error %s", err)
@@ -503,7 +504,7 @@ func TestUploadDefinition(t *testing.T) {
                t.Run(testCase.label, func(t *testing.T) {
                        db.DBconn = testCase.mockdb
                        impl := NewDefinitionClient()
-                       err := impl.Upload(testCase.name, testCase.version, testCase.content)
+                       err := impl.Upload(context.TODO(), testCase.name, testCase.version, testCase.content)
                        if err != nil {
                                if testCase.expectedError == "" {
                                        t.Errorf("Upload returned an unexpected error %s", err)
@@ -595,7 +596,7 @@ func TestDownloadDefinition(t *testing.T) {
                t.Run(testCase.label, func(t *testing.T) {
                        db.DBconn = testCase.mockdb
                        impl := NewDefinitionClient()
-                       data, err := impl.Download(testCase.name, testCase.version)
+                       data, err := impl.Download(context.TODO(), testCase.name, testCase.version)
                        if err != nil {
                                if testCase.expectedError == "" {
                                        t.Errorf("Download returned an unexpected error %s", err)
index 2723ba4..089211b 100644 (file)
@@ -107,7 +107,7 @@ func (v *ProfileClient) CreateOrUpdate(p Profile, update bool) (Profile, error)
                return Profile{}, pkgerrors.New("Profile does not exists for this Definition")
        }
        //Check if provided resource bundle information is valid
-       _, err = NewDefinitionClient().Get(p.RBName, p.RBVersion)
+       _, err = NewDefinitionClient().Get(context.TODO(), p.RBName, p.RBVersion)
        if err != nil {
                return Profile{}, pkgerrors.Errorf("Invalid Resource Bundle ID provided: %s", err.Error())
        }
@@ -318,12 +318,12 @@ func (v *ProfileClient) Resolve(rbName string, rbVersion string,
 
        definitionClient := NewDefinitionClient()
 
-       definition, err := definitionClient.Get(rbName, rbVersion)
+       definition, err := definitionClient.Get(context.TODO(), rbName, rbVersion)
        if err != nil {
                return sortedTemplates, crdList, hookList, finalReleaseName, pkgerrors.Wrap(err, "Getting Definition Metadata")
        }
 
-       defData, err := definitionClient.Download(rbName, rbVersion)
+       defData, err := definitionClient.Download(context.TODO(), rbName, rbVersion)
        if err != nil {
                return sortedTemplates, crdList, hookList, finalReleaseName, pkgerrors.Wrap(err, "Downloading Definition")
        }