diff options
Diffstat (limited to 'src/orchestrator/pkg/module/generic_placement_intent.go')
-rw-r--r-- | src/orchestrator/pkg/module/generic_placement_intent.go | 43 |
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{ |