Skip to content

Commit 72c28cb

Browse files
authored
Merge pull request #238 from ns1/PENG-4484/remove_cmddi_code
remove all ddi related code
2 parents 89eb799 + 83e1ed4 commit 72c28cb

28 files changed

+19
-2512
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
FEATURES:
44

55
* Adds support for new split monitoring permissions create_jobs, update_jobs and delete_jobs
6+
* Remove DDI (DHCP & IPAM) code
67

78
## 2.11.0 (May 23rd, 2024)
89

rest/_examples/ddi_apikey.go

-84
This file was deleted.

rest/account_apikey.go

+6-61
Original file line numberDiff line numberDiff line change
@@ -66,18 +66,9 @@ func (s *APIKeysService) Create(a *account.APIKey) (*http.Response, error) {
6666
err error
6767
)
6868

69-
// If this is DDI then the permissions need to be transformed to DDI-compatible permissions.
70-
if s.client.DDI && a != nil {
71-
ddiAPIKey := apiKeyToDDIAPIKey(a)
72-
req, err = s.client.NewRequest("PUT", "account/apikeys", ddiAPIKey)
73-
if err != nil {
74-
return nil, err
75-
}
76-
} else {
77-
req, err = s.client.NewRequest("PUT", "account/apikeys", a)
78-
if err != nil {
79-
return nil, err
80-
}
69+
req, err = s.client.NewRequest("PUT", "account/apikeys", a)
70+
if err != nil {
71+
return nil, err
8172
}
8273

8374
// Update account fields with data from api(ensure consistent)
@@ -106,18 +97,9 @@ func (s *APIKeysService) Update(a *account.APIKey) (*http.Response, error) {
10697
err error
10798
)
10899

109-
// If this is DDI then the permissions need to be transformed to DDI-compatible permissions.
110-
if s.client.DDI && a != nil {
111-
ddiAPIKey := apiKeyToDDIAPIKey(a)
112-
req, err = s.client.NewRequest("POST", path, ddiAPIKey)
113-
if err != nil {
114-
return nil, err
115-
}
116-
} else {
117-
req, err = s.client.NewRequest("POST", path, a)
118-
if err != nil {
119-
return nil, err
120-
}
100+
req, err = s.client.NewRequest("POST", path, a)
101+
if err != nil {
102+
return nil, err
121103
}
122104

123105
// Update apikey fields with data from api(ensure consistent)
@@ -166,40 +148,3 @@ var (
166148
// ErrKeyMissing bundles GET/POST/DELETE error.
167149
ErrKeyMissing = errors.New("key does not exist")
168150
)
169-
170-
func apiKeyToDDIAPIKey(k *account.APIKey) *ddiAPIKey {
171-
ddiAPIKey := &ddiAPIKey{
172-
ID: k.ID,
173-
Key: k.Key,
174-
LastAccess: k.LastAccess,
175-
Name: k.Name,
176-
TeamIDs: k.TeamIDs,
177-
IPWhitelist: k.IPWhitelist,
178-
IPWhitelistStrict: k.IPWhitelistStrict,
179-
Permissions: ddiPermissionsMap{
180-
DNS: k.Permissions.DNS,
181-
Data: k.Permissions.Data,
182-
Account: permissionsDDIAccount{
183-
ManageUsers: k.Permissions.Account.ManageUsers,
184-
ManageTeams: k.Permissions.Account.ManageTeams,
185-
ManageApikeys: k.Permissions.Account.ManageApikeys,
186-
ManageAccountSettings: k.Permissions.Account.ManageAccountSettings,
187-
ViewActivityLog: k.Permissions.Account.ViewActivityLog,
188-
},
189-
},
190-
}
191-
192-
if k.Permissions.Security != nil {
193-
ddiAPIKey.Permissions.Security = permissionsDDISecurity(*k.Permissions.Security)
194-
}
195-
196-
if k.Permissions.DHCP != nil {
197-
ddiAPIKey.Permissions.DHCP = *k.Permissions.DHCP
198-
}
199-
200-
if k.Permissions.IPAM != nil {
201-
ddiAPIKey.Permissions.IPAM = *k.Permissions.IPAM
202-
}
203-
204-
return ddiAPIKey
205-
}

rest/account_apikey_test.go

-116
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ func TestCreateAPIKey(t *testing.T) {
2121
var k account.APIKey
2222
require.NoError(t, json.Unmarshal(b, &k))
2323
assert.Nil(t, k.Permissions.Security)
24-
assert.Nil(t, k.Permissions.DHCP)
25-
assert.Nil(t, k.Permissions.IPAM)
2624
assert.False(t, k.Permissions.Monitoring.ManageJobs)
2725
assert.False(t, k.Permissions.Monitoring.CreateJobs)
2826
assert.False(t, k.Permissions.Monitoring.UpdateJobs)
@@ -44,117 +42,3 @@ func TestCreateAPIKey(t *testing.T) {
4442
_, err := c.APIKeys.Create(k)
4543
require.NoError(t, err)
4644
}
47-
48-
func TestCreateDDIAPIKey(t *testing.T) {
49-
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
50-
b, err := ioutil.ReadAll(r.Body)
51-
require.NoError(t, err)
52-
53-
var k account.APIKey
54-
require.NoError(t, json.Unmarshal(b, &k))
55-
switch k.ID {
56-
case "ddi-no-authtags":
57-
assert.NotNil(t, k.Permissions.Security)
58-
assert.NotNil(t, k.Permissions.DHCP)
59-
assert.NotNil(t, k.Permissions.IPAM)
60-
assert.NotNil(t, k.IPWhitelist)
61-
assert.True(t, k.IPWhitelistStrict)
62-
// ensure auth tag permissions are not included by default to maintain backwards compatibility
63-
assert.Nil(t, k.Permissions.DHCP.TagsAllow)
64-
assert.Nil(t, k.Permissions.DHCP.TagsDeny)
65-
assert.Nil(t, k.Permissions.IPAM.TagsAllow)
66-
assert.Nil(t, k.Permissions.IPAM.TagsDeny)
67-
case "ddi-authtags":
68-
assert.NotNil(t, k.Permissions.DHCP)
69-
assert.NotNil(t, k.Permissions.IPAM)
70-
assert.Equal(t, "auth:dhcpallow", (*k.Permissions.DHCP.TagsAllow)[0].Name)
71-
assert.Equal(t, "", (*k.Permissions.DHCP.TagsAllow)[0].Value)
72-
assert.Equal(t, "auth:dhcpdeny", (*k.Permissions.DHCP.TagsDeny)[0].Name)
73-
assert.Equal(t, "denyme", (*k.Permissions.DHCP.TagsDeny)[0].Value)
74-
assert.Equal(t, "auth:ipamallow", (*k.Permissions.IPAM.TagsAllow)[0].Name)
75-
assert.Equal(t, "", (*k.Permissions.IPAM.TagsAllow)[0].Value)
76-
assert.Equal(t, "auth:ipamdeny", (*k.Permissions.IPAM.TagsDeny)[0].Name)
77-
assert.Equal(t, "denyme", (*k.Permissions.IPAM.TagsDeny)[0].Value)
78-
case "ddi-empty-authtags":
79-
assert.NotNil(t, k.Permissions.DHCP)
80-
assert.NotNil(t, k.Permissions.IPAM)
81-
assert.Equal(t, []account.AuthTag{}, *k.Permissions.DHCP.TagsAllow)
82-
assert.Equal(t, []account.AuthTag{}, *k.Permissions.DHCP.TagsDeny)
83-
assert.Equal(t, []account.AuthTag{}, *k.Permissions.IPAM.TagsAllow)
84-
assert.Equal(t, []account.AuthTag{}, *k.Permissions.IPAM.TagsDeny)
85-
}
86-
87-
_, err = w.Write(b)
88-
require.NoError(t, err)
89-
}))
90-
defer ts.Close()
91-
c := NewClient(nil, SetEndpoint(ts.URL), SetDDIAPI())
92-
93-
// Create a key without auth tags
94-
k := &account.APIKey{
95-
ID: "ddi-no-authtags",
96-
Key: "key-1",
97-
Name: "name-1",
98-
IPWhitelist: []string{"1.1.1.1"},
99-
IPWhitelistStrict: true,
100-
Permissions: account.PermissionsMap{},
101-
}
102-
103-
_, err := c.APIKeys.Create(k)
104-
require.NoError(t, err)
105-
// Create a key with auth tags
106-
k = &account.APIKey{
107-
ID: "ddi-authtags",
108-
Key: "key-2",
109-
Name: "name-2",
110-
Permissions: account.PermissionsMap{
111-
DHCP: &account.PermissionsDHCP{
112-
TagsAllow: &[]account.AuthTag{
113-
{
114-
Name: "auth:dhcpallow",
115-
Value: "",
116-
},
117-
},
118-
TagsDeny: &[]account.AuthTag{
119-
{
120-
Name: "auth:dhcpdeny",
121-
Value: "denyme",
122-
},
123-
},
124-
},
125-
IPAM: &account.PermissionsIPAM{
126-
TagsAllow: &[]account.AuthTag{
127-
{
128-
Name: "auth:ipamallow",
129-
Value: "",
130-
},
131-
},
132-
TagsDeny: &[]account.AuthTag{
133-
{
134-
Name: "auth:ipamdeny",
135-
Value: "denyme",
136-
},
137-
},
138-
},
139-
},
140-
}
141-
// Create a key with empty auth tags
142-
k = &account.APIKey{
143-
ID: "ddi-empty-authtags",
144-
Key: "key-3",
145-
Name: "name-3",
146-
Permissions: account.PermissionsMap{
147-
DHCP: &account.PermissionsDHCP{
148-
TagsAllow: &[]account.AuthTag{},
149-
TagsDeny: &[]account.AuthTag{},
150-
},
151-
IPAM: &account.PermissionsIPAM{
152-
TagsAllow: &[]account.AuthTag{},
153-
TagsDeny: &[]account.AuthTag{},
154-
},
155-
},
156-
}
157-
158-
_, err = c.APIKeys.Create(k)
159-
require.NoError(t, err)
160-
}

rest/account_team.go

+6-57
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,9 @@ func (s *TeamsService) Create(t *account.Team) (*http.Response, error) {
6464
err error
6565
)
6666

67-
// If this is DDI then the permissions need to be transformed to DDI-compatible permissions.
68-
if s.client.DDI && t != nil {
69-
ddiTeam := teamToDDITeam(t)
70-
req, err = s.client.NewRequest("PUT", "account/teams", ddiTeam)
71-
if err != nil {
72-
return nil, err
73-
}
74-
} else {
75-
req, err = s.client.NewRequest("PUT", "account/teams", t)
76-
if err != nil {
77-
return nil, err
78-
}
67+
req, err = s.client.NewRequest("PUT", "account/teams", t)
68+
if err != nil {
69+
return nil, err
7970
}
8071

8172
// Update team fields with data from api(ensure consistent)
@@ -104,18 +95,9 @@ func (s *TeamsService) Update(t *account.Team) (*http.Response, error) {
10495
err error
10596
)
10697

107-
// If this is DDI then the permissions need to be transformed to DDI-compatible permissions.
108-
if s.client.DDI && t != nil {
109-
ddiTeam := teamToDDITeam(t)
110-
req, err = s.client.NewRequest("POST", path, ddiTeam)
111-
if err != nil {
112-
return nil, err
113-
}
114-
} else {
115-
req, err = s.client.NewRequest("POST", path, t)
116-
if err != nil {
117-
return nil, err
118-
}
98+
req, err = s.client.NewRequest("POST", path, t)
99+
if err != nil {
100+
return nil, err
119101
}
120102

121103
// Update team fields with data from api(ensure consistent)
@@ -164,36 +146,3 @@ var (
164146
// ErrTeamMissing bundles GET/POST/DELETE error.
165147
ErrTeamMissing = errors.New("team does not exist")
166148
)
167-
168-
func teamToDDITeam(t *account.Team) *ddiTeam {
169-
ddiTeam := &ddiTeam{
170-
ID: t.ID,
171-
Name: t.Name,
172-
IPWhitelist: t.IPWhitelist,
173-
Permissions: ddiPermissionsMap{
174-
DNS: t.Permissions.DNS,
175-
Data: t.Permissions.Data,
176-
Account: permissionsDDIAccount{
177-
ManageUsers: t.Permissions.Account.ManageUsers,
178-
ManageTeams: t.Permissions.Account.ManageTeams,
179-
ManageApikeys: t.Permissions.Account.ManageApikeys,
180-
ManageAccountSettings: t.Permissions.Account.ManageAccountSettings,
181-
ViewActivityLog: t.Permissions.Account.ViewActivityLog,
182-
},
183-
},
184-
}
185-
186-
if t.Permissions.Security != nil {
187-
ddiTeam.Permissions.Security = permissionsDDISecurity(*t.Permissions.Security)
188-
}
189-
190-
if t.Permissions.DHCP != nil {
191-
ddiTeam.Permissions.DHCP = *t.Permissions.DHCP
192-
}
193-
194-
if t.Permissions.IPAM != nil {
195-
ddiTeam.Permissions.IPAM = *t.Permissions.IPAM
196-
}
197-
198-
return ddiTeam
199-
}

0 commit comments

Comments
 (0)