Skip to content

Commit

Permalink
update ssm param logic
Browse files Browse the repository at this point in the history
  • Loading branch information
Barber authored and Barber committed Jun 23, 2023
1 parent 133c604 commit b51cef9
Show file tree
Hide file tree
Showing 7 changed files with 272 additions and 40 deletions.
29 changes: 26 additions & 3 deletions backend/internal/aws/ssm.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@ import (
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/ssm"
log "github.com/sirupsen/logrus"
"github.com/unity-sds/unity-control-plane/backend/internal/database/models"
"github.com/unity-sds/unity-control-plane/backend/internal/marketplace"
)

func ReadSSMParameters() (*marketplace.Parameters, error) {
func ReadSSMParameters(ssmParams []models.SSMParameters) (*marketplace.Parameters, error) {
cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("us-west-2"))
if err != nil {
panic("configuration error, " + err.Error())
Expand All @@ -26,7 +27,7 @@ func ReadSSMParameters() (*marketplace.Parameters, error) {
}

paginator := ssm.NewGetParametersByPathPaginator(client, paramsInput)
ssmparams := map[string]string{}
ssmparams := map[string]*marketplace.Parameters_Parameter{}
ssmparamholder := marketplace.Parameters{}

// Iterate through the SSM parameter pages.
Expand All @@ -40,10 +41,32 @@ func ReadSSMParameters() (*marketplace.Parameters, error) {
// Print out the parameters.
for _, param := range output.Parameters {
log.Infof("Name: %s, Value: %s\n", aws.ToString(param.Name), aws.ToString(param.Value))
ssmparams[aws.ToString(param.Name)] = aws.ToString(param.Value)
exists, valuetracks := checkExistsInDatabase(aws.ToString(param.Name), aws.ToString(param.Value), ssmParams)
par := marketplace.Parameters_Parameter{
Value: aws.ToString(param.Value),
Type: "fixme",
Tracked: exists,
Insync: valuetracks,
}
ssmparams[aws.ToString(param.Name)] = &par
}
}

ssmparamholder.Parameterlist = ssmparams
return &ssmparamholder, nil
}

func checkExistsInDatabase(name, value string, params []models.SSMParameters) (bool, bool) {

for _, param := range params {
if param.Key == name {
if param.Value == value {
return true, true
} else {
return true, false
}
}
}

return false, false
}
127 changes: 110 additions & 17 deletions backend/internal/marketplace/config.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions backend/internal/processes/unitycore_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,11 +135,10 @@ func fetchConfig() {
}
func TestRunSPSDemo(t *testing.T) {
r := ActRunnerImpl{}
mockStore := &MockStore{}

fetchConfig()
meta := "{\n\t\"metadata\": {\n\t\t\"metadataversion\": \"unity-cs-0.1\",\n\t\t\"exectarget\": \"act\",\n\t\t\"deploymentname\": \"managementdashboard\",\n\t\t\"services\": [\n\t\t\t{\"name\":\"ryantestdeploy\",\"source\":\"unity-sds/unity-sps-prototype\",\"version\":\"xxx\",\"branch\":\"main\"}\n\t\t],\n\t\t\"extensions\":{\n\t\t\t\"kubernetes\":{\n\t\t\t\t\"clustername\":\"unity-sps-managementdashboard\",\n\t\t\t\t\"owner\":\"ryan\",\n\t\t\t\t\"projectname\":\"testproject\",\n\t\t\t\t\"nodegroups\":{\n\t\t\t\t\t\"group1\": {\n\t\t\t\t\t\t\"instancetype\": \"m5.xlarge\",\n\t\t\t\t\t\t\"nodecount\":\"1\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}"
err := InstallMarketplaceApplication(nil, mockStore, meta, conf, "", r)
err := InstallMarketplaceApplication(nil, meta, conf, "", r)
log.Errorf("Error: %v", err)
}

Expand Down
4 changes: 3 additions & 1 deletion backend/internal/web/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,9 @@ func handleWebsocket(c *gin.Context) {
break
}
} else if received.Action == "request parameters" {
params, err := aws.ReadSSMParameters()
existingparams, err := store.FetchSSMParams()

params, err := aws.ReadSSMParameters(existingparams)

if err != nil {
log.Errorf("Problem requesting config: %v", err)
Expand Down
8 changes: 7 additions & 1 deletion protobuf/config.proto
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,11 @@ message Config {

message Parameters {

map<string, string> parameterlist = 1;
message Parameter {
string value = 2;
string type = 3;
bool tracked = 4;
bool insync = 5;
}
map<string, Parameter> parameterlist = 1;
}
Loading

0 comments on commit b51cef9

Please sign in to comment.