|
1 | 1 | package v1 |
2 | 2 |
|
3 | 3 | import ( |
4 | | - "go.mongodb.org/atlas/mongodbatlas" |
| 4 | + "go.mongodb.org/atlas-sdk/v20231115004/admin" |
5 | 5 |
|
6 | 6 | "github.com/mongodb/mongodb-atlas-kubernetes/v2/internal/compat" |
| 7 | + "github.com/mongodb/mongodb-atlas-kubernetes/v2/internal/pointer" |
7 | 8 | "github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/api/v1/provider" |
8 | 9 | ) |
9 | 10 |
|
@@ -52,38 +53,57 @@ type NetworkPeer struct { |
52 | 53 | NetworkName string `json:"networkName,omitempty"` |
53 | 54 | } |
54 | 55 |
|
55 | | -func (in *NetworkPeer) ToAtlas() (*mongodbatlas.Peer, error) { |
56 | | - result := &mongodbatlas.Peer{} |
| 56 | +// NewNetworkPeerFromAtlas creates a network peer based off a network peering connection from Atlas. |
| 57 | +// Note: ContainerRegion and AtlasCIDRBlock are unset |
| 58 | +// as this information is not provided by Atlas for a peering connection. |
| 59 | +func NewNetworkPeerFromAtlas(atlasPeer admin.BaseNetworkPeeringConnectionSettings) *NetworkPeer { |
| 60 | + return &NetworkPeer{ |
| 61 | + AccepterRegionName: atlasPeer.GetAccepterRegionName(), |
| 62 | + AWSAccountID: atlasPeer.GetAwsAccountId(), |
| 63 | + ContainerID: atlasPeer.GetContainerId(), |
| 64 | + ProviderName: provider.ProviderName(atlasPeer.GetProviderName()), |
| 65 | + RouteTableCIDRBlock: atlasPeer.GetRouteTableCidrBlock(), |
| 66 | + VpcID: atlasPeer.GetVpcId(), |
| 67 | + AzureDirectoryID: atlasPeer.GetAzureDirectoryId(), |
| 68 | + AzureSubscriptionID: atlasPeer.GetAzureSubscriptionId(), |
| 69 | + ResourceGroupName: atlasPeer.GetResourceGroupName(), |
| 70 | + VNetName: atlasPeer.GetVnetName(), |
| 71 | + GCPProjectID: atlasPeer.GetGcpProjectId(), |
| 72 | + NetworkName: atlasPeer.GetNetworkName(), |
| 73 | + } |
| 74 | +} |
| 75 | +func (in *NetworkPeer) ToAtlas() (*admin.BaseNetworkPeeringConnectionSettings, error) { |
| 76 | + result := &admin.BaseNetworkPeeringConnectionSettings{} |
57 | 77 | err := compat.JSONCopy(result, in) |
58 | 78 | return result, err |
59 | 79 | } |
60 | 80 |
|
61 | | -func (in *NetworkPeer) ToAtlasPeer() *mongodbatlas.Peer { |
| 81 | +func (in *NetworkPeer) ToAtlasPeer() *admin.BaseNetworkPeeringConnectionSettings { |
62 | 82 | switch in.ProviderName { |
63 | 83 | case provider.ProviderAWS: |
64 | | - return &mongodbatlas.Peer{ |
65 | | - AccepterRegionName: in.AccepterRegionName, |
66 | | - AWSAccountID: in.AWSAccountID, |
67 | | - ContainerID: in.ContainerID, |
68 | | - ProviderName: string(in.ProviderName), |
69 | | - RouteTableCIDRBlock: in.RouteTableCIDRBlock, |
70 | | - VpcID: in.VpcID, |
| 84 | + return &admin.BaseNetworkPeeringConnectionSettings{ |
| 85 | + AccepterRegionName: pointer.SetOrNil(in.AccepterRegionName, ""), |
| 86 | + AwsAccountId: pointer.SetOrNil(in.AWSAccountID, ""), |
| 87 | + ContainerId: in.ContainerID, |
| 88 | + ProviderName: pointer.SetOrNil(string(in.ProviderName), ""), |
| 89 | + RouteTableCidrBlock: pointer.SetOrNil(in.RouteTableCIDRBlock, ""), |
| 90 | + VpcId: pointer.SetOrNil(in.VpcID, ""), |
71 | 91 | } |
72 | 92 | case provider.ProviderGCP: |
73 | | - return &mongodbatlas.Peer{ |
74 | | - ContainerID: in.ContainerID, |
75 | | - ProviderName: string(in.ProviderName), |
76 | | - GCPProjectID: in.GCPProjectID, |
77 | | - NetworkName: in.NetworkName, |
| 93 | + return &admin.BaseNetworkPeeringConnectionSettings{ |
| 94 | + ContainerId: in.ContainerID, |
| 95 | + ProviderName: pointer.SetOrNil(string(in.ProviderName), ""), |
| 96 | + GcpProjectId: pointer.SetOrNil(in.GCPProjectID, ""), |
| 97 | + NetworkName: pointer.SetOrNil(in.NetworkName, ""), |
78 | 98 | } |
79 | 99 | case provider.ProviderAzure: |
80 | | - return &mongodbatlas.Peer{ |
81 | | - ContainerID: in.ContainerID, |
82 | | - ProviderName: string(in.ProviderName), |
83 | | - AzureDirectoryID: in.AzureDirectoryID, |
84 | | - AzureSubscriptionID: in.AzureSubscriptionID, |
85 | | - ResourceGroupName: in.ResourceGroupName, |
86 | | - VNetName: in.VNetName, |
| 100 | + return &admin.BaseNetworkPeeringConnectionSettings{ |
| 101 | + ContainerId: in.ContainerID, |
| 102 | + ProviderName: pointer.SetOrNil(string(in.ProviderName), ""), |
| 103 | + AzureDirectoryId: pointer.SetOrNil(in.AzureDirectoryID, ""), |
| 104 | + AzureSubscriptionId: pointer.SetOrNil(in.AzureSubscriptionID, ""), |
| 105 | + ResourceGroupName: pointer.SetOrNil(in.ResourceGroupName, ""), |
| 106 | + VnetName: pointer.SetOrNil(in.VNetName, ""), |
87 | 107 | } |
88 | 108 | } |
89 | 109 |
|
|
0 commit comments