/
common_types_conversion.go
132 lines (112 loc) · 3.35 KB
/
common_types_conversion.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/*
Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl.
*/
package conversions
import (
"errors"
sdk "github.com/oracle/oci-go-sdk/v65/servicemesh"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
api "github.com/oracle/oci-service-operator/api/v1beta1"
"github.com/oracle/oci-service-operator/apis/servicemesh.oci/v1beta1"
)
func String(s string) *string {
return &s
}
func Integer(i int) *int {
return &i
}
func Int64(i int64) *int64 {
return &i
}
func Bool(b bool) *bool {
return &b
}
func OCID(ocid string) *api.OCID {
return (*api.OCID)(&ocid)
}
func ApiName(name string) *v1beta1.Name {
return (*v1beta1.Name)(&name)
}
func DeRefString(s *string) string {
if s != nil {
return *s
}
return ""
}
func Port(port int) *v1beta1.Port {
p := v1beta1.Port(port)
return &p
}
func PortToInt(port *v1beta1.Port) *int {
if port == nil {
return nil
}
i := int(*port)
return &i
}
func ConvertCrdDefinedTagsToSdkDefinedTags(crdObj *map[string]api.MapValue, sdkObj *map[string]map[string]interface{}) {
if *sdkObj == nil {
*sdkObj = map[string]map[string]interface{}{}
}
for k1, v1 := range *crdObj {
values := map[string]interface{}{}
for k2, v2 := range v1 {
values[k2] = v2
}
(*sdkObj)[k1] = values
}
}
func ConvertCrdFreeformTagsToSdkFreeformTags(crdObj *map[string]string, sdkObj *map[string]string) {
if *sdkObj == nil {
*sdkObj = map[string]string{}
}
for k1, v1 := range *crdObj {
(*sdkObj)[k1] = v1
}
}
func convertCrdAccessLoggingToSdkAccessLogging(crdAccessLogging *v1beta1.AccessLogging) *sdk.AccessLoggingConfiguration {
if crdAccessLogging == nil {
return nil
}
return &sdk.AccessLoggingConfiguration{
IsEnabled: &crdAccessLogging.IsEnabled,
}
}
// GetSpecName returns the spec name of the resource
// Returns spec.Name if present in the crd, else returns the metadata name of the resource
// appended to the namespace of the resource
func GetSpecName(specName *v1beta1.Name, metadata *metav1.ObjectMeta) *string {
if specName != nil {
strSpecName := string(*specName)
if len(strSpecName) > 0 {
return &strSpecName
}
}
name := metadata.GetNamespace() + "/" + metadata.GetName()
return &name
}
func ConvertCrdMtlsModeEnum(crdEnum v1beta1.MutualTransportLayerSecurityModeEnum) (sdk.MutualTransportLayerSecurityModeEnum, error) {
switch crdEnum {
case v1beta1.MutualTransportLayerSecurityModeDisabled:
return sdk.MutualTransportLayerSecurityModeDisabled, nil
case v1beta1.MutualTransportLayerSecurityModePermissive:
return sdk.MutualTransportLayerSecurityModePermissive, nil
case v1beta1.MutualTransportLayerSecurityModeStrict:
return sdk.MutualTransportLayerSecurityModeStrict, nil
default:
return "", errors.New("unknown MTLS mode type")
}
}
func ConvertSdkMtlsModeEnum(sdkEnum sdk.MutualTransportLayerSecurityModeEnum) (v1beta1.MutualTransportLayerSecurityModeEnum, error) {
switch sdkEnum {
case sdk.MutualTransportLayerSecurityModeDisabled:
return v1beta1.MutualTransportLayerSecurityModeDisabled, nil
case sdk.MutualTransportLayerSecurityModePermissive:
return v1beta1.MutualTransportLayerSecurityModePermissive, nil
case sdk.MutualTransportLayerSecurityModeStrict:
return v1beta1.MutualTransportLayerSecurityModeStrict, nil
default:
return "", errors.New("unknown MTLS mode type")
}
}