diff options
Diffstat (limited to 'src/orchestrator/pkg/module/generic_placement_intent.go')
-rw-r--r-- | src/orchestrator/pkg/module/generic_placement_intent.go | 44 |
1 files changed, 27 insertions, 17 deletions
diff --git a/src/orchestrator/pkg/module/generic_placement_intent.go b/src/orchestrator/pkg/module/generic_placement_intent.go index fb00a6ab..eb9ed796 100644 --- a/src/orchestrator/pkg/module/generic_placement_intent.go +++ b/src/orchestrator/pkg/module/generic_placement_intent.go @@ -26,7 +26,6 @@ import ( // GenericPlacementIntent shall have 2 fields - metadata and spec type GenericPlacementIntent struct { MetaData GenIntentMetaData `json:"metadata"` - Spec GenIntentSpecData `json:"spec"` } // GenIntentMetaData has name, description, userdata1, userdata2 @@ -37,21 +36,19 @@ type GenIntentMetaData struct { UserData2 string `json:"userData2"` } -// GenIntentSpecData has logical-cloud-name -type GenIntentSpecData struct { - LogicalCloud string `json:"logical-cloud"` -} + + // GenericPlacementIntentManager is an interface which exposes the GenericPlacementIntentManager functionality type GenericPlacementIntentManager interface { CreateGenericPlacementIntent(g GenericPlacementIntent, p string, ca string, - v string) (GenericPlacementIntent, error) + v string, digName string) (GenericPlacementIntent, error) GetGenericPlacementIntent(intentName string, projectName string, - compositeAppName string, version string) (GenericPlacementIntent, error) + compositeAppName string, version string, digName string) (GenericPlacementIntent, error) DeleteGenericPlacementIntent(intentName string, projectName string, - compositeAppName string, version string) error + compositeAppName string, version string, digName string) error - GetAllGenericPlacementIntents(p string, ca string, v string) ([]GenericPlacementIntent, error) + GetAllGenericPlacementIntents(p string, ca string, v string, digName string) ([]GenericPlacementIntent, error) } // GenericPlacementIntentKey is used as the primary key @@ -60,6 +57,7 @@ type GenericPlacementIntentKey struct { Project string `json:"project"` CompositeApp string `json:"compositeapp"` Version string `json:"compositeappversion"` + DigName string `json:"deploymentintentgroupname"` } // We will use json marshalling to convert to string to @@ -86,12 +84,12 @@ func NewGenericPlacementIntentClient() *GenericPlacementIntentClient { } } -// CreateGenericPlacementIntent creates an entry for GenericPlacementIntent in the database. Other Input parameters for it - projectName, compositeAppName, version +// CreateGenericPlacementIntent creates an entry for GenericPlacementIntent in the database. Other Input parameters for it - projectName, compositeAppName, version and deploymentIntentGroupName func (c *GenericPlacementIntentClient) CreateGenericPlacementIntent(g GenericPlacementIntent, p string, ca string, - v string) (GenericPlacementIntent, error) { + v string, digName string) (GenericPlacementIntent, error) { // check if the genericPlacement already exists. - res, err := c.GetGenericPlacementIntent(g.MetaData.Name, p, ca, v) + res, err := c.GetGenericPlacementIntent(g.MetaData.Name, p, ca, v, digName) if res != (GenericPlacementIntent{}) { return GenericPlacementIntent{}, pkgerrors.New("Intent already exists") } @@ -108,11 +106,19 @@ func (c *GenericPlacementIntentClient) CreateGenericPlacementIntent(g GenericPla return GenericPlacementIntent{}, pkgerrors.New("Unable to find the composite-app") } + // check if the deploymentIntentGrpName exists + _, err = NewDeploymentIntentGroupClient().GetDeploymentIntentGroup(digName, p, ca, v) + if err != nil { + return GenericPlacementIntent{}, pkgerrors.New("Unable to find the deployment-intent-group-name") + } + + gkey := GenericPlacementIntentKey{ Name: g.MetaData.Name, Project: p, CompositeApp: ca, Version: v, + DigName: digName, } err = db.DBconn.Insert(c.storeName, gkey, nil, c.tagMetaData, g) @@ -123,13 +129,14 @@ func (c *GenericPlacementIntentClient) CreateGenericPlacementIntent(g GenericPla return g, nil } -// GetGenericPlacementIntent shall take arguments - name of the intent, name of the project, name of the composite app and version of the composite app. It shall return the genericPlacementIntent if its present. -func (c *GenericPlacementIntentClient) GetGenericPlacementIntent(i string, p string, ca string, v string) (GenericPlacementIntent, error) { +// GetGenericPlacementIntent shall take arguments - name of the intent, name of the project, name of the composite app, version of the composite app and deploymentIntentGroupName. It shall return the genericPlacementIntent if its present. +func (c *GenericPlacementIntentClient) GetGenericPlacementIntent(i string, p string, ca string, v string, digName string) (GenericPlacementIntent, error) { key := GenericPlacementIntentKey{ Name: i, Project: p, CompositeApp: ca, Version: v, + DigName: digName, } result, err := db.DBconn.Find(c.storeName, key, c.tagMetaData) @@ -150,8 +157,8 @@ 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) { +// GetAllGenericPlacementIntents returns all the generic placement intents for a given compsoite app name, composite app version, project and deploymentIntentGroupName +func (c *GenericPlacementIntentClient) GetAllGenericPlacementIntents(p string, ca string, v string, digName string) ([]GenericPlacementIntent, error) { //Check if project exists _, err := NewProjectClient().GetProject(p) @@ -170,6 +177,8 @@ func (c *GenericPlacementIntentClient) GetAllGenericPlacementIntents(p string, c Project: p, CompositeApp: ca, Version: v, + DigName: digName, + } var gpList []GenericPlacementIntent @@ -192,12 +201,13 @@ func (c *GenericPlacementIntentClient) GetAllGenericPlacementIntents(p string, c } // DeleteGenericPlacementIntent the intent from the database -func (c *GenericPlacementIntentClient) DeleteGenericPlacementIntent(i string, p string, ca string, v string) error { +func (c *GenericPlacementIntentClient) DeleteGenericPlacementIntent(i string, p string, ca string, v string, digName string) error { key := GenericPlacementIntentKey{ Name: i, Project: p, CompositeApp: ca, Version: v, + DigName: digName, } err := db.DBconn.Remove(c.storeName, key) |