aboutsummaryrefslogtreecommitdiffstats
path: root/src/orchestrator/pkg
diff options
context:
space:
mode:
authorRajamohan Raj <rajamohan.raj@intel.com>2020-07-17 14:04:19 +0000
committerRajamohan Raj <rajamohan.raj@intel.com>2020-07-17 20:38:24 +0000
commit75178df33f0cc45f46051394ad9d14f6a84cd8e9 (patch)
tree3c89f320e6879c175a2760e41bec634fff5aa22c /src/orchestrator/pkg
parent09ade2b51d5e3d4da5921115a993bec97a905e1b (diff)
Add APIs for getAll DeploymentIntents and GetAll GenericPlacemnetIntents
In this patch, implemented two separate routes for getting all genericPlacemnetIntents and getting all deployment intents. Issue-ID: MULTICLOUD-1128 Signed-off-by: Rajamohan Raj <rajamohan.raj@intel.com> Change-Id: I81fadb126752788da7c459aa43896fafa583310e
Diffstat (limited to 'src/orchestrator/pkg')
-rw-r--r--src/orchestrator/pkg/module/deployment_intent_groups.go45
-rw-r--r--src/orchestrator/pkg/module/generic_placement_intent.go43
2 files changed, 86 insertions, 2 deletions
diff --git a/src/orchestrator/pkg/module/deployment_intent_groups.go b/src/orchestrator/pkg/module/deployment_intent_groups.go
index 0decb68f..c7237032 100644
--- a/src/orchestrator/pkg/module/deployment_intent_groups.go
+++ b/src/orchestrator/pkg/module/deployment_intent_groups.go
@@ -64,6 +64,7 @@ type DeploymentIntentGroupManager interface {
GetDeploymentIntentGroup(di string, p string, ca string, v string) (DeploymentIntentGroup, error)
GetDeploymentIntentGroupContext(di string, p string, ca string, v string) (appcontext.AppContext, string, error)
DeleteDeploymentIntentGroup(di string, p string, ca string, v string) error
+ GetAllDeploymentIntentGroups(p string, ca string, v string) ([]DeploymentIntentGroup, error)
}
// DeploymentIntentGroupKey consists of Name of the deployment group, project name, CompositeApp name, CompositeApp version
@@ -106,7 +107,7 @@ func (c *DeploymentIntentGroupClient) CreateDeploymentIntentGroup(d DeploymentIn
res, err := c.GetDeploymentIntentGroup(d.MetaData.Name, p, ca, v)
if !reflect.DeepEqual(res, DeploymentIntentGroup{}) {
- return DeploymentIntentGroup{}, pkgerrors.New("AppIntent already exists")
+ return DeploymentIntentGroup{}, pkgerrors.New("DeploymentIntent already exists")
}
//Check if project exists
@@ -164,7 +165,47 @@ func (c *DeploymentIntentGroupClient) GetDeploymentIntentGroup(di string, p stri
}
-// GetDeploymentIntentGroup returns the DeploymentIntentGroup with a given name, project, compositeApp and version of compositeApp
+// GetAllDeploymentIntentGroups returns all the deploymentIntentGroups under a specific project, compositeApp and version
+func (c *DeploymentIntentGroupClient) GetAllDeploymentIntentGroups(p string, ca string, v string) ([]DeploymentIntentGroup, error) {
+
+ key := DeploymentIntentGroupKey{
+ Name: "",
+ Project: p,
+ CompositeApp: ca,
+ Version: v,
+ }
+
+ //Check if project exists
+ _, err := NewProjectClient().GetProject(p)
+ if err != nil {
+ return []DeploymentIntentGroup{}, pkgerrors.Wrap(err, "Unable to find the project")
+ }
+
+ //check if compositeApp exists
+ _, err = NewCompositeAppClient().GetCompositeApp(ca, v, p)
+ if err != nil {
+ return []DeploymentIntentGroup{}, pkgerrors.Wrap(err, "Unable to find the composite-app, check CompositeAppName and Version")
+ }
+ var diList []DeploymentIntentGroup
+ result, err := db.DBconn.Find(c.storeName, key, c.tagMetaData)
+ if err != nil {
+ return []DeploymentIntentGroup{}, pkgerrors.Wrap(err, "Get DeploymentIntentGroup error")
+ }
+
+ for _, value := range result {
+ di := DeploymentIntentGroup{}
+ err = db.DBconn.Unmarshal(value, &di)
+ if err != nil {
+ return []DeploymentIntentGroup{}, pkgerrors.Wrap(err, "Unmarshaling DeploymentIntentGroup")
+ }
+ diList = append(diList, di)
+ }
+
+ return diList, nil
+
+}
+
+// GetDeploymentIntentGroupContext returns the AppContent with a given DeploymentIntentname, project, compositeAppName and version of compositeApp
func (c *DeploymentIntentGroupClient) GetDeploymentIntentGroupContext(di string, p string, ca string, v string) (appcontext.AppContext, string, error) {
key := DeploymentIntentGroupKey{
diff --git a/src/orchestrator/pkg/module/generic_placement_intent.go b/src/orchestrator/pkg/module/generic_placement_intent.go
index 73849474..fb00a6ab 100644
--- a/src/orchestrator/pkg/module/generic_placement_intent.go
+++ b/src/orchestrator/pkg/module/generic_placement_intent.go
@@ -50,6 +50,8 @@ type GenericPlacementIntentManager interface {
compositeAppName string, version string) (GenericPlacementIntent, error)
DeleteGenericPlacementIntent(intentName string, projectName string,
compositeAppName string, version string) error
+
+ GetAllGenericPlacementIntents(p string, ca string, v string) ([]GenericPlacementIntent, error)
}
// GenericPlacementIntentKey is used as the primary key
@@ -148,6 +150,47 @@ func (c *GenericPlacementIntentClient) GetGenericPlacementIntent(i string, p str
}
+// GetAllGenericPlacementIntents returns all the generic placement intents for a given compsoite app name, composite app version and project.
+func (c *GenericPlacementIntentClient) GetAllGenericPlacementIntents(p string, ca string, v string) ([]GenericPlacementIntent, error) {
+
+ //Check if project exists
+ _, err := NewProjectClient().GetProject(p)
+ if err != nil {
+ return []GenericPlacementIntent{}, pkgerrors.Wrap(err, "Unable to find the project")
+ }
+
+ // check if compositeApp exists
+ _, err = NewCompositeAppClient().GetCompositeApp(ca, v, p)
+ if err != nil {
+ return []GenericPlacementIntent{}, pkgerrors.Wrap(err, "Unable to find the composite-app, check compositeApp name and version")
+ }
+
+ key := GenericPlacementIntentKey{
+ Name: "",
+ Project: p,
+ CompositeApp: ca,
+ Version: v,
+ }
+
+ var gpList []GenericPlacementIntent
+ values, err := db.DBconn.Find(c.storeName, key, c.tagMetaData)
+ if err != nil {
+ return []GenericPlacementIntent{}, pkgerrors.Wrap(err, "Getting GenericPlacementIntent")
+ }
+
+ for _, value := range values {
+ gp := GenericPlacementIntent{}
+ err = db.DBconn.Unmarshal(value, &gp)
+ if err != nil {
+ return []GenericPlacementIntent{}, pkgerrors.Wrap(err, "Unmarshaling GenericPlacementIntent")
+ }
+ gpList = append(gpList, gp)
+ }
+
+ return gpList, nil
+
+}
+
// DeleteGenericPlacementIntent the intent from the database
func (c *GenericPlacementIntentClient) DeleteGenericPlacementIntent(i string, p string, ca string, v string) error {
key := GenericPlacementIntentKey{