aboutsummaryrefslogtreecommitdiffstats
path: root/src/orchestrator/pkg/module/generic_placement_intent.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/orchestrator/pkg/module/generic_placement_intent.go')
-rw-r--r--src/orchestrator/pkg/module/generic_placement_intent.go43
1 files changed, 43 insertions, 0 deletions
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{