Add support for a default profile 38/99838/4
authorKiran Kamineni <kiran.k.kamineni@intel.com>
Fri, 20 Dec 2019 00:48:54 +0000 (16:48 -0800)
committerKiran Kamineni <kiran.k.kamineni@intel.com>
Mon, 30 Dec 2019 23:17:29 +0000 (15:17 -0800)
Added support for a default profile
A profile with the name "default" gets created
automatically when a rb definition is uploaded.

Issue-ID: MULTICLOUD-885
Change-Id: I2baab179ff119f3e6335643ff619f071f11b017a
Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
src/k8splugin/internal/rb/definition.go
src/k8splugin/internal/rb/profile.go

index 65ae8e0..73ea44d 100644 (file)
@@ -26,6 +26,7 @@ import (
        "path/filepath"
 
        "github.com/onap/multicloud-k8s/src/k8splugin/internal/db"
+       "github.com/onap/multicloud-k8s/src/k8splugin/internal/logutils"
 
        pkgerrors "github.com/pkg/errors"
 )
@@ -101,6 +102,40 @@ func (v *DefinitionClient) Create(def Definition) (Definition, error) {
                return Definition{}, pkgerrors.Wrap(err, "Creating DB Entry")
        }
 
+       // Create a default profile automatically
+       prc := NewProfileClient()
+       pr, err := prc.Create(Profile{
+               RBName:      def.RBName,
+               RBVersion:   def.RBVersion,
+               ProfileName: "default",
+               Namespace:   "default",
+               ReleaseName: "default",
+       })
+
+       if err != nil {
+               logutils.Error("Create Default Profile", logutils.Fields{
+                       "error":        err,
+                       "rb-name":      def.RBName,
+                       "rb-version":   def.RBVersion,
+                       "profile-name": "default",
+                       "namespace":    "default",
+                       "release-name": "default",
+               })
+               return Definition{}, pkgerrors.Wrap(err, "Creating Default Profile")
+       }
+
+       err = prc.Upload(pr.RBName, pr.RBVersion, pr.ProfileName, prc.getEmptyProfile())
+       if err != nil {
+               logutils.Error("Upload Empty Profile", logutils.Fields{
+                       "error":           err,
+                       "rb-name":         pr.RBName,
+                       "rb-version":      pr.RBVersion,
+                       "profile-name":    pr.ProfileName,
+                       "profile-content": prc.getEmptyProfile(),
+               })
+               return Definition{}, pkgerrors.Wrap(err, "Upload Empty Profile")
+       }
+
        return def, nil
 }
 
@@ -173,6 +208,19 @@ func (v *DefinitionClient) Delete(name string, version string) error {
                return pkgerrors.Wrap(err, "Delete Resource Bundle Definition Content")
        }
 
+       //Delete the default profile as well
+       prc := NewProfileClient()
+       err = prc.Delete(name, version, "default")
+       if err != nil {
+               logutils.Error("Delete Default Profile", logutils.Fields{
+                       "error":        err,
+                       "rb-name":      name,
+                       "rb-version":   version,
+                       "profile-name": "default",
+               })
+               return pkgerrors.Wrap(err, "Deleting default profile")
+       }
+
        return nil
 }
 
index 49768d4..6efa23b 100644 (file)
@@ -338,3 +338,31 @@ func (v *ProfileClient) Resolve(rbName string, rbVersion string,
 
        return sortedTemplates, nil
 }
+
+// Returns an empty profile with the following contents
+// Contains a manifest.yaml pointing to an override_values.yaml
+// The override_values.yaml file is empty.
+func (v *ProfileClient) getEmptyProfile() []byte {
+       return []byte{
+               0x1F, 0x8B, 0x08, 0x08, 0x25, 0x5D, 0xDC, 0x5C, 0x00, 0x03, 0x70,
+               0x72, 0x6F, 0x66, 0x69, 0x6C, 0x65, 0x31, 0x2E, 0x74, 0x61, 0x72,
+               0x00, 0xED, 0xD4, 0xD1, 0x0A, 0x82, 0x30, 0x14, 0xC6, 0xF1, 0x5D,
+               0xEF, 0x29, 0x46, 0xF7, 0xC6, 0x96, 0x3A, 0xC1, 0x97, 0x89, 0x81,
+               0x0B, 0xC4, 0xB4, 0x70, 0x26, 0xF8, 0xF6, 0xAD, 0xBC, 0xA8, 0x20,
+               0xF0, 0xC6, 0x8A, 0xE0, 0xFF, 0xBB, 0x39, 0xB0, 0x33, 0xD8, 0x81,
+               0xED, 0x5B, 0xEB, 0xBA, 0xFA, 0xE0, 0xC3, 0xB0, 0x9D, 0x5C, 0x7B,
+               0x14, 0x9F, 0xA1, 0x23, 0x9B, 0x65, 0xB7, 0x6A, 0x8A, 0x5C, 0x3F,
+               0xD7, 0x99, 0x2D, 0x84, 0x49, 0x33, 0x5B, 0xE8, 0x3C, 0xDF, 0x99,
+               0x9D, 0xD0, 0x26, 0xD7, 0xA9, 0x15, 0x4A, 0x7F, 0x68, 0x9E, 0x17,
+               0x97, 0x30, 0xB8, 0x5E, 0x29, 0xE1, 0xAA, 0x7D, 0xD3, 0x34, 0xAE,
+               0xAD, 0x3B, 0xFF, 0x76, 0xDF, 0x52, 0xFF, 0x4F, 0x25, 0x49, 0x22,
+               0x47, 0xDF, 0x87, 0xFA, 0xD4, 0x95, 0x6A, 0x34, 0x72, 0x98, 0xCE,
+               0xBE, 0x94, 0x4A, 0x8D, 0xEE, 0x78, 0xF1, 0xA1, 0x54, 0x9B, 0x53,
+               0xEC, 0xF6, 0x75, 0xE5, 0xF7, 0xF3, 0xCA, 0xFD, 0x9D, 0x6C, 0xE4,
+               0xAF, 0xC7, 0xC6, 0x4A, 0xDE, 0x5D, 0xEF, 0xDA, 0x67, 0x2C, 0xE6,
+               0x5F, 0x9B, 0x47, 0xFE, 0x75, 0x1A, 0xF3, 0x6F, 0xB3, 0xF8, 0x0D,
+               0x90, 0xFF, 0x2F, 0x20, 0xC9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+               0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xED, 0x0A, 0xB2, 0xAD,
+               0x4D, 0xE5, 0x00, 0x28, 0x00, 0x00,
+       }
+}