Skip to content

Commit d215765

Browse files
authored
Align Workflows with latest API spec
* workflow support for provider * Add workflow changes for sdk * adding changes * remove omitempty from ministeps nested schema to send null and empty lists in payload * working workflows with upgrades for provider
1 parent 6246497 commit d215765

9 files changed

Lines changed: 954 additions & 208 deletions

File tree

client/client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import (
1818
secrets "github.com/StackGuardian/sg-sdk-go/secrets"
1919
stackruns "github.com/StackGuardian/sg-sdk-go/stackruns"
2020
stacks "github.com/StackGuardian/sg-sdk-go/stacks"
21+
stacktemplaterevisions "github.com/StackGuardian/sg-sdk-go/stacktemplaterevisions"
22+
stacktemplates "github.com/StackGuardian/sg-sdk-go/stacktemplates"
2123
stackworkflowrunfacts "github.com/StackGuardian/sg-sdk-go/stackworkflowrunfacts"
2224
stackworkflowruns "github.com/StackGuardian/sg-sdk-go/stackworkflowruns"
2325
stackworkflows "github.com/StackGuardian/sg-sdk-go/stackworkflows"
@@ -28,8 +30,6 @@ import (
2830
workflows "github.com/StackGuardian/sg-sdk-go/workflows"
2931
workflowsteptemplate "github.com/StackGuardian/sg-sdk-go/workflowsteptemplate"
3032
workflowsteptemplaterevision "github.com/StackGuardian/sg-sdk-go/workflowsteptemplaterevision"
31-
stacktemplaterevisions "github.com/StackGuardian/sg-sdk-go/stacktemplaterevisions"
32-
stacktemplates "github.com/StackGuardian/sg-sdk-go/stacktemplates"
3333
workflowtemplaterevisions "github.com/StackGuardian/sg-sdk-go/workflowtemplaterevisions"
3434
workflowtemplates "github.com/StackGuardian/sg-sdk-go/workflowtemplates"
3535
)

tests/sdk_test.go

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,16 @@ func TestSDK(t *testing.T) {
3434
)
3535
dummyResourceName := "sdk-test-workflow-create-delete"
3636
createWorkflowRequest := sggosdk.Workflow{
37-
ResourceName: sggosdk.Optional(dummyResourceName),
38-
DeploymentPlatformConfig: sggosdk.Optional([]*sggosdk.DeploymentPlatformConfig{{
37+
ResourceName: &dummyResourceName,
38+
DeploymentPlatformConfig: []*sggosdk.DeploymentPlatformConfig{{
3939
Kind: sggosdk.DeploymentPlatformConfigKindEnumAwsRbac,
4040
Config: map[string]interface{}{
4141
"profileName": "DummyConnectorForGoSDK",
42-
"integrationId": "/integrations/DummyConnectorForGoSDK"}}}),
43-
WfType: sggosdk.Optional(*sggosdk.WfTypeEnumCustom.Ptr()),
44-
EnvironmentVariables: sggosdk.Optional([]*sggosdk.EnvVars{{Kind: sggosdk.EnvVarsKindEnumPlainText,
45-
Config: &sggosdk.EnvVarConfig{VarName: "test", TextValue: sggosdk.String("testValue")}}}),
46-
VcsConfig: sggosdk.Optional(sggosdk.VcsConfig{
42+
"integrationId": "/integrations/DummyConnectorForGoSDK"}}},
43+
WfType: sggosdk.WfTypeEnumCustom.Ptr(),
44+
EnvironmentVariables: []*sggosdk.EnvVars{{Kind: sggosdk.EnvVarsKindEnumPlainText,
45+
Config: &sggosdk.EnvVarConfig{VarName: "test", TextValue: sggosdk.String("testValue")}}},
46+
VcsConfig: &sggosdk.VcsConfig{
4747
IacVcsConfig: &sggosdk.IacvcsConfig{
4848
IacTemplateId: sggosdk.String("/demo-org/ansible-dummy:3"),
4949
UseMarketplaceTemplate: true,
@@ -54,13 +54,13 @@ func TestSDK(t *testing.T) {
5454
"bucket_region": "eu-central-1",
5555
},
5656
},
57-
}),
58-
UserJobCpu: sggosdk.Optional(512),
59-
UserJobMemory: sggosdk.Optional(1024),
60-
RunnerConstraints: sggosdk.Optional(sggosdk.RunnerConstraints{
57+
},
58+
UserJobCpu: sggosdk.Int(512),
59+
UserJobMemory: sggosdk.Int(1024),
60+
RunnerConstraints: &sggosdk.RunnerConstraints{
6161
Type: "shared",
62-
}),
63-
Description: sggosdk.Optional("Dummy Workflow for GoSDK"),
62+
},
63+
Description: sggosdk.String("Dummy Workflow for GoSDK"),
6464
}
6565
createResponse, err := c.Workflows.CreateWorkflow(context.Background(), SG_ORG, SG_WF_GROUP, &createWorkflowRequest)
6666
assert.Empty(t, err)
@@ -78,15 +78,15 @@ func TestSDK(t *testing.T) {
7878
option.WithBaseURL(SG_BASE_URL),
7979
)
8080
UpdateWorkflowRequest := sggosdk.PatchedWorkflow{
81-
DeploymentPlatformConfig: []*sggosdk.DeploymentPlatformConfig{{
81+
DeploymentPlatformConfig: sggosdk.Optional([]*sggosdk.DeploymentPlatformConfig{{
8282
Kind: sggosdk.DeploymentPlatformConfigKindEnumAwsRbac,
8383
Config: map[string]interface{}{
8484
"profileName": "DummyConnectorForGoSDK",
85-
"integrationId": "/integrations/DummyConnectorForGoSDK"}}},
86-
WfType: sggosdk.WfTypeEnumCustom.Ptr(),
87-
EnvironmentVariables: []*sggosdk.EnvVars{{Kind: sggosdk.EnvVarsKindEnumPlainText,
88-
Config: &sggosdk.EnvVarConfig{VarName: "test", TextValue: sggosdk.String("testValue")}}},
89-
VcsConfig: &sggosdk.VcsConfig{
85+
"integrationId": "/integrations/DummyConnectorForGoSDK"}}}),
86+
WfType: sggosdk.Optional(*sggosdk.WfTypeEnumCustom.Ptr()),
87+
EnvironmentVariables: sggosdk.Optional([]*sggosdk.EnvVars{{Kind: sggosdk.EnvVarsKindEnumPlainText,
88+
Config: &sggosdk.EnvVarConfig{VarName: "test", TextValue: sggosdk.String("testValue")}}}),
89+
VcsConfig: sggosdk.Optional(sggosdk.VcsConfig{
9090
IacVcsConfig: &sggosdk.IacvcsConfig{
9191
IacTemplateId: sggosdk.String("/demo-org/ansible-dummy:3"),
9292
UseMarketplaceTemplate: true,
@@ -97,13 +97,13 @@ func TestSDK(t *testing.T) {
9797
"bucket_region": "eu-central-1",
9898
},
9999
},
100-
},
101-
UserJobCpu: sggosdk.Int(512),
102-
UserJobMemory: sggosdk.Int(1024),
103-
RunnerConstraints: &sggosdk.RunnerConstraints{
100+
}),
101+
UserJobCpu: sggosdk.Optional(512),
102+
UserJobMemory: sggosdk.Optional(1024),
103+
RunnerConstraints: sggosdk.Optional(sggosdk.RunnerConstraints{
104104
Type: "shared",
105-
},
106-
Description: sggosdk.String("Dummy Workflow for GoSDK"),
105+
}),
106+
Description: sggosdk.Optional("Dummy Workflow for GoSDK"),
107107
}
108108
updateWorkflowResponse, err := c.Workflows.UpdateWorkflow(context.Background(), SG_ORG, SG_WF, SG_WF_GROUP, &UpdateWorkflowRequest)
109109
assert.Empty(t, err)
@@ -158,15 +158,15 @@ func TestSDK(t *testing.T) {
158158
option.WithBaseURL(SG_BASE_URL),
159159
)
160160
UpdateWorkflowRequest := sggosdk.PatchedWorkflow{
161-
DeploymentPlatformConfig: []*sggosdk.DeploymentPlatformConfig{{
161+
DeploymentPlatformConfig: sggosdk.Optional([]*sggosdk.DeploymentPlatformConfig{{
162162
Kind: sggosdk.DeploymentPlatformConfigKindEnumAwsRbac,
163163
Config: map[string]interface{}{
164164
"profileName": "DummyConnectorForGoSDK",
165-
"integrationId": "/integrations/DummyConnectorForGoSDK"}}},
166-
WfType: sggosdk.WfTypeEnumCustom.Ptr(),
167-
EnvironmentVariables: []*sggosdk.EnvVars{{Kind: sggosdk.EnvVarsKindEnumPlainText,
168-
Config: &sggosdk.EnvVarConfig{VarName: "test", TextValue: sggosdk.String("testValue")}}},
169-
VcsConfig: &sggosdk.VcsConfig{
165+
"integrationId": "/integrations/DummyConnectorForGoSDK"}}}),
166+
WfType: sggosdk.Optional(*sggosdk.WfTypeEnumCustom.Ptr()),
167+
EnvironmentVariables: sggosdk.Optional([]*sggosdk.EnvVars{{Kind: sggosdk.EnvVarsKindEnumPlainText,
168+
Config: &sggosdk.EnvVarConfig{VarName: "test", TextValue: sggosdk.String("testValue")}}}),
169+
VcsConfig: sggosdk.Optional(sggosdk.VcsConfig{
170170
IacVcsConfig: &sggosdk.IacvcsConfig{
171171
IacTemplateId: sggosdk.String("/demo-org/ansible-dummy:3"),
172172
UseMarketplaceTemplate: true,
@@ -177,13 +177,13 @@ func TestSDK(t *testing.T) {
177177
"bucket_region": "eu-central-1",
178178
},
179179
},
180-
},
181-
UserJobCpu: sggosdk.Int(512),
182-
UserJobMemory: sggosdk.Int(1024),
183-
RunnerConstraints: &sggosdk.RunnerConstraints{
180+
}),
181+
UserJobCpu: sggosdk.Optional(512),
182+
UserJobMemory: sggosdk.Optional(1024),
183+
RunnerConstraints: sggosdk.Optional(sggosdk.RunnerConstraints{
184184
Type: "shared",
185-
},
186-
Description: sggosdk.String("Dummy Workflow for GoSDK"),
185+
}),
186+
Description: sggosdk.Optional("Dummy Workflow for GoSDK"),
187187
}
188188
updateWorkflowResponse, err := c.StackWorkflows.UpdateStackWorkflow(context.Background(), SG_ORG, SG_STACK, SG_STACK_WF, SG_WF_GROUP, &UpdateWorkflowRequest)
189189
assert.Empty(t, err)

0 commit comments

Comments
 (0)