Skip to content

Commit c103b42

Browse files
Merge pull request #35 from ctrlplanedev/update-metadata-match-relationship
chore: update metadata match relationship
2 parents ac10cff + a6e49f6 commit c103b42

File tree

16 files changed

+764
-876
lines changed

16 files changed

+764
-876
lines changed

cmd/ctrlc/root/api/create/create.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@ package create
22

33
import (
44
"github.com/ctrlplanedev/cli/cmd/ctrlc/root/api/create/deploymentversion"
5-
"github.com/ctrlplanedev/cli/cmd/ctrlc/root/api/create/deploymentversionchannel"
65
"github.com/ctrlplanedev/cli/cmd/ctrlc/root/api/create/environment"
76
"github.com/ctrlplanedev/cli/cmd/ctrlc/root/api/create/relationship"
87
"github.com/ctrlplanedev/cli/cmd/ctrlc/root/api/create/release"
9-
"github.com/ctrlplanedev/cli/cmd/ctrlc/root/api/create/releasechannel"
108
"github.com/ctrlplanedev/cli/cmd/ctrlc/root/api/create/system"
119
"github.com/spf13/cobra"
1210
)
@@ -21,8 +19,6 @@ func NewCreateCmd() *cobra.Command {
2119
},
2220
}
2321

24-
cmd.AddCommand(releasechannel.NewCreateReleaseChannelCmd())
25-
cmd.AddCommand(deploymentversionchannel.NewCreateDeploymentVersionChannelCmd())
2622
cmd.AddCommand(deploymentversion.NewCreateDeploymentVersionCmd())
2723
cmd.AddCommand(environment.NewCreateEnvironmentCmd())
2824
cmd.AddCommand(relationship.NewRelationshipCmd())

cmd/ctrlc/root/api/create/deploymentversionchannel/deployment-version-channel.go

Lines changed: 0 additions & 69 deletions
This file was deleted.

cmd/ctrlc/root/api/create/environment/environment.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ import (
1313

1414
func NewCreateEnvironmentCmd() *cobra.Command {
1515
var nameFlag string
16-
var releaseChannels []string
17-
var deploymentVersionChannels []string
1816
var system string
1917
var resourceSelector string
2018
var metadata map[string]string
@@ -42,8 +40,6 @@ func NewCreateEnvironmentCmd() *cobra.Command {
4240

4341
body := api.CreateEnvironmentJSONRequestBody{}
4442
body.Name = nameFlag
45-
body.ReleaseChannels = &releaseChannels
46-
body.DeploymentVersionChannels = &deploymentVersionChannels
4743
body.SystemId = system
4844
body.Metadata = cliutil.StringMapPtr(metadata)
4945

@@ -66,8 +62,6 @@ func NewCreateEnvironmentCmd() *cobra.Command {
6662

6763
cmd.Flags().StringVarP(&nameFlag, "name", "n", "", "Name of the environment (required)")
6864
cmd.Flags().StringVarP(&system, "system", "s", "", "ID of the system (required)")
69-
cmd.Flags().StringSliceVarP(&releaseChannels, "release-channel", "r", []string{}, "Release channel in format <channelid>")
70-
cmd.Flags().StringSliceVarP(&deploymentVersionChannels, "deployment-version-channel", "d", []string{}, "Deployment version channel in format <channelid>")
7165
cmd.Flags().StringVarP(&resourceSelector, "resource-selector", "f", "", "Resource selector as JSON string")
7266
cmd.Flags().StringToStringVarP(&metadata, "metadata", "m", make(map[string]string), "Metadata key-value pairs (e.g. --metadata key=value)")
7367

cmd/ctrlc/root/api/create/releasechannel/release-channel.go

Lines changed: 0 additions & 69 deletions
This file was deleted.

cmd/ctrlc/root/api/delete/delete.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
package delete
22

33
import (
4-
"github.com/ctrlplanedev/cli/cmd/ctrlc/root/api/delete/deploymentversionchannel"
54
"github.com/ctrlplanedev/cli/cmd/ctrlc/root/api/delete/environment"
65
"github.com/ctrlplanedev/cli/cmd/ctrlc/root/api/delete/policy"
7-
"github.com/ctrlplanedev/cli/cmd/ctrlc/root/api/delete/releasechannel"
86
"github.com/ctrlplanedev/cli/cmd/ctrlc/root/api/delete/resource"
97
"github.com/spf13/cobra"
108
)
@@ -21,8 +19,6 @@ func NewDeleteCmd() *cobra.Command {
2119

2220
cmd.AddCommand(resource.NewDeleteResourceCmd())
2321
cmd.AddCommand(environment.NewDeleteEnvironmentCmd())
24-
cmd.AddCommand(releasechannel.NewDeleteReleaseChannelCmd())
25-
cmd.AddCommand(deploymentversionchannel.NewDeleteDeploymentVersionChannelCmd())
2622
cmd.AddCommand(policy.NewDeletePolicyCmd())
2723
return cmd
2824
}

cmd/ctrlc/root/api/delete/deploymentversionchannel/deployment-version-channel.go

Lines changed: 0 additions & 48 deletions
This file was deleted.

cmd/ctrlc/root/api/delete/releasechannel/release-channel.go

Lines changed: 0 additions & 48 deletions
This file was deleted.

cmd/ctrlc/root/apply/relationships.go

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,42 @@ func processResourceRelationships(
4040
}
4141
}
4242

43+
func createMetadataKeysMatch(match MetadataKeysMatch) (*struct {
44+
SourceKey string `json:"sourceKey"`
45+
TargetKey string `json:"targetKey"`
46+
}, error) {
47+
if match.Key != nil {
48+
return &struct {
49+
SourceKey string `json:"sourceKey"`
50+
TargetKey string `json:"targetKey"`
51+
}{
52+
SourceKey: *match.Key,
53+
TargetKey: *match.Key,
54+
}, nil
55+
}
56+
57+
if match.SourceKey == nil || match.TargetKey == nil {
58+
return nil, fmt.Errorf("sourceKey and targetKey must be provided")
59+
}
60+
61+
return &struct {
62+
SourceKey string `json:"sourceKey"`
63+
TargetKey string `json:"targetKey"`
64+
}{
65+
SourceKey: *match.SourceKey,
66+
TargetKey: *match.TargetKey,
67+
}, nil
68+
}
69+
4370
func createRelationshipRequestBody(workspaceId string, relationship ResourceRelationship) api.CreateResourceRelationshipRule {
4471
config := api.CreateResourceRelationshipRule{
45-
WorkspaceId: workspaceId,
46-
Reference: relationship.Reference,
47-
DependencyType: api.ResourceRelationshipRuleDependencyType(relationship.DependencyType),
48-
MetadataKeysMatches: &[]string{},
72+
WorkspaceId: workspaceId,
73+
Reference: relationship.Reference,
74+
DependencyType: api.ResourceRelationshipRuleDependencyType(relationship.DependencyType),
75+
MetadataKeysMatches: &[]struct {
76+
SourceKey string `json:"sourceKey"`
77+
TargetKey string `json:"targetKey"`
78+
}{},
4979
TargetMetadataEquals: &[]struct {
5080
Key string `json:"key"`
5181
Value string `json:"value"`
@@ -82,7 +112,22 @@ func createRelationshipRequestBody(workspaceId string, relationship ResourceRela
82112
}
83113

84114
if relationship.MetadataKeysMatch != nil {
85-
config.MetadataKeysMatches = &relationship.MetadataKeysMatch
115+
metadataKeysMatches := []struct {
116+
SourceKey string `json:"sourceKey"`
117+
TargetKey string `json:"targetKey"`
118+
}{}
119+
120+
for _, match := range relationship.MetadataKeysMatch {
121+
metadataKeysMatch, err := createMetadataKeysMatch(match)
122+
if err != nil {
123+
log.Error("Failed to create metadata keys match", "error", err, "match", match)
124+
continue
125+
}
126+
127+
metadataKeysMatches = append(metadataKeysMatches, *metadataKeysMatch)
128+
}
129+
130+
config.MetadataKeysMatches = &metadataKeysMatches
86131
}
87132

88133
// Log the MetadataTargetKeysEquals for debugging

0 commit comments

Comments
 (0)