Skip to content

Commit a635c42

Browse files
Merge pull request #3 from cisco-en-programmability/develop
update modules and user agent modification
2 parents ea926ac + c4d194c commit a635c42

File tree

4 files changed

+456
-23
lines changed

4 files changed

+456
-23
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [2.0.1] - 2024-12-27
11+
### Changes
12+
- User Agent Modification
13+
- Update authentication_management module
14+
- Update configuration template module
15+
1016
## [2.0.0] - 2024-12-27
1117

1218
### Added

sdk/api_client.go

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ const CATALYST_SSL_VERIFY = "CATALYST_SSL_VERIFY"
2626
const CATALYST_WAIT_TIME = "CATALYST_WAIT_TIME"
2727

2828
var VERSION = "2.3.7.9"
29+
var CATALYST_USER_STRING = "CATALYST_USER_STRING"
2930
var USER_AGENT = "go-cisco-catalystsdk/" + VERSION
3031

3132
type FileDownload struct {
@@ -123,7 +124,7 @@ func NewClientWithOptions(baseURL string, username string, password string, debu
123124
var err error
124125

125126
var user string
126-
if len(userString) > 0 && userString != nil {
127+
if len(userString) > 0 {
127128
user = "-" + string(userString[0])
128129
} else {
129130
user = " "
@@ -159,8 +160,9 @@ func SetOptions(baseURL string, username string, password string, debug string,
159160
if err != nil {
160161
return err
161162
}
162-
if userString != "" {
163-
USER_AGENT = USER_AGENT + userString
163+
err = os.Setenv(CATALYST_USER_STRING, userString)
164+
if err != nil {
165+
return err
164166
}
165167
if waitTimeToManyRequest != nil {
166168
err = os.Setenv(CATALYST_WAIT_TIME, strconv.Itoa(*waitTimeToManyRequest))
@@ -176,12 +178,16 @@ func SetOptions(baseURL string, username string, password string, debug string,
176178
return nil
177179
}
178180

181+
func GetUserAgent() string {
182+
return USER_AGENT + os.Getenv(CATALYST_USER_STRING)
183+
}
184+
179185
// NewClientNoAuth returns the client object without trying to authenticate
180186
func NewClientNoAuth() (*Client, error) {
181187
var err error
182188

183189
client := resty.New()
184-
client.SetHeader("User-Agent", USER_AGENT)
190+
client.SetHeader("User-Agent", GetUserAgent())
185191
c := &Client{}
186192
c.common.client = client
187193
waitTimeToManyRequest := 0
@@ -215,7 +221,7 @@ func NewClientNoAuth() (*Client, error) {
215221
retry := false
216222
if r.StatusCode() == http.StatusUnauthorized {
217223
cl := resty.New()
218-
cl.SetHeader("User-Agent", USER_AGENT)
224+
cl.SetHeader("User-Agent", GetUserAgent())
219225

220226
username := os.Getenv("CATALYST_USERNAME")
221227
password := os.Getenv("CATALYST_PASSWORD")
@@ -316,7 +322,7 @@ func NewClientWithOptionsNoAuth(baseURL string, username string, password string
316322
var err error
317323

318324
var user string
319-
if len(userString) > 0 && userString != nil {
325+
if len(userString) > 0 {
320326
user = "-" + userString[0]
321327
} else {
322328
user = ""
@@ -367,7 +373,7 @@ func (s *Client) AuthClient() error {
367373

368374
// RestyClient returns the resty.Client used by the sdk
369375
func (s *Client) RestyClient() *resty.Client {
370-
s.common.client.SetHeader("User-Agent", USER_AGENT)
376+
s.common.client.SetHeader("User-Agent", GetUserAgent())
371377
return s.common.client
372378
}
373379

sdk/authentication_management.go

Lines changed: 44 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package catalyst
22

33
import (
44
"fmt"
5+
"io"
56
"net/http"
67

78
"github.com/go-resty/resty/v2"
@@ -20,6 +21,18 @@ type ImportCertificateP12V1QueryParams struct {
2021
ListOfUsers []string `url:"listOfUsers,omitempty"` //Specify whether the certificate will be used for controller ("server"), disaster recovery ("ipsec") or both ("server, ipsec"). If no value is provided, the default value taken will be "server"
2122
}
2223

24+
type ImportCertificateMultipartFields struct {
25+
PkFileUploadName string
26+
PkFileUpload io.Reader
27+
CertFileUploadName string
28+
CertFileUpload io.Reader
29+
}
30+
31+
type ImportCertificateP12MultipartFields struct {
32+
P12FileUpload io.Reader
33+
P12FileUploadName string
34+
}
35+
2336
type ResponseAuthenticationManagementImportCertificateV1 struct {
2437
Response *ResponseAuthenticationManagementImportCertificateV1Response `json:"response,omitempty"` //
2538

@@ -52,14 +65,23 @@ type ResponseAuthenticationManagementAuthenticationAPIV1 struct {
5265
5366
Documentation Link: https://developer.cisco.com/docs/dna-center/#!import-certificate
5467
*/
55-
func (s *AuthenticationManagementService) ImportCertificateV1(ImportCertificateV1QueryParams *ImportCertificateV1QueryParams) (*ResponseAuthenticationManagementImportCertificateV1, *resty.Response, error) {
68+
func (s *AuthenticationManagementService) ImportCertificateV1(ImportCertificateV1QueryParams *ImportCertificateV1QueryParams, ImportCertificateMultipartFields *ImportCertificateMultipartFields) (*ResponseAuthenticationManagementImportCertificateV1, *resty.Response, error) {
5669
path := "/dna/intent/api/v1/certificate"
5770

5871
queryString, _ := query.Values(ImportCertificateV1QueryParams)
5972

60-
response, err := s.client.R().
73+
var response *resty.Response
74+
var err error
75+
clientRequest := s.client.R().
6176
SetHeader("Content-Type", "application/json").
62-
SetHeader("Accept", "application/json").
77+
SetHeader("Accept", "application/json")
78+
79+
if ImportCertificateMultipartFields != nil {
80+
clientRequest = clientRequest.SetFileReader("pkFileUpload", ImportCertificateMultipartFields.PkFileUploadName, ImportCertificateMultipartFields.PkFileUpload)
81+
clientRequest = clientRequest.SetFileReader("certFileUpload", ImportCertificateMultipartFields.CertFileUploadName, ImportCertificateMultipartFields.CertFileUpload)
82+
}
83+
84+
response, err = clientRequest.
6385
SetQueryString(queryString.Encode()).
6486
SetResult(&ResponseAuthenticationManagementImportCertificateV1{}).
6587
SetError(&Error).
@@ -73,10 +95,10 @@ func (s *AuthenticationManagementService) ImportCertificateV1(ImportCertificateV
7395
if response.IsError() {
7496

7597
if response.StatusCode() == http.StatusUnauthorized {
76-
return s.ImportCertificateV1(ImportCertificateV1QueryParams)
98+
return s.ImportCertificateV1(ImportCertificateV1QueryParams, ImportCertificateMultipartFields)
7799
}
78100

79-
return nil, response, fmt.Errorf("error with operation ImportCertificateV1")
101+
return nil, response, fmt.Errorf("error with operation ImportCertificate")
80102
}
81103

82104
result := response.Result().(*ResponseAuthenticationManagementImportCertificateV1)
@@ -92,14 +114,22 @@ func (s *AuthenticationManagementService) ImportCertificateV1(ImportCertificateV
92114
93115
Documentation Link: https://developer.cisco.com/docs/dna-center/#!import-certificate-p12
94116
*/
95-
func (s *AuthenticationManagementService) ImportCertificateP12V1(ImportCertificateP12V1QueryParams *ImportCertificateP12V1QueryParams) (*ResponseAuthenticationManagementImportCertificateP12V1, *resty.Response, error) {
117+
func (s *AuthenticationManagementService) ImportCertificateP12V1(ImportCertificateP12V1QueryParams *ImportCertificateP12V1QueryParams, ImportCertificateP12MultipartFields *ImportCertificateP12MultipartFields) (*ResponseAuthenticationManagementImportCertificateP12V1, *resty.Response, error) {
96118
path := "/dna/intent/api/v1/certificate-p12"
97119

98120
queryString, _ := query.Values(ImportCertificateP12V1QueryParams)
99121

100-
response, err := s.client.R().
122+
var response *resty.Response
123+
var err error
124+
clientRequest := s.client.R().
101125
SetHeader("Content-Type", "application/json").
102-
SetHeader("Accept", "application/json").
126+
SetHeader("Accept", "application/json")
127+
128+
if ImportCertificateP12MultipartFields != nil {
129+
clientRequest = clientRequest.SetFileReader("p12FileUpload", ImportCertificateP12MultipartFields.P12FileUploadName, ImportCertificateP12MultipartFields.P12FileUpload)
130+
}
131+
132+
response, err = clientRequest.
103133
SetQueryString(queryString.Encode()).
104134
SetResult(&ResponseAuthenticationManagementImportCertificateP12V1{}).
105135
SetError(&Error).
@@ -113,10 +143,10 @@ func (s *AuthenticationManagementService) ImportCertificateP12V1(ImportCertifica
113143
if response.IsError() {
114144

115145
if response.StatusCode() == http.StatusUnauthorized {
116-
return s.ImportCertificateP12V1(ImportCertificateP12V1QueryParams)
146+
return s.ImportCertificateP12V1(ImportCertificateP12V1QueryParams, ImportCertificateP12MultipartFields)
117147
}
118148

119-
return nil, response, fmt.Errorf("error with operation ImportCertificateP12V1")
149+
return nil, response, fmt.Errorf("error with operation ImportCertificateP12")
120150
}
121151

122152
result := response.Result().(*ResponseAuthenticationManagementImportCertificateP12V1)
@@ -172,14 +202,14 @@ func (s *AuthenticationManagementService) AuthenticationAPI() (*ResponseAuthenti
172202
/*
173203
This method acts as an alias for the method `ImportCertificateP12V1`
174204
*/
175-
func (s *AuthenticationManagementService) ImportCertificateP12(ImportCertificateP12V1QueryParams *ImportCertificateP12V1QueryParams) (*ResponseAuthenticationManagementImportCertificateP12V1, *resty.Response, error) {
176-
return s.ImportCertificateP12V1(ImportCertificateP12V1QueryParams)
205+
func (s *AuthenticationManagementService) ImportCertificateP12(ImportCertificateP12V1QueryParams *ImportCertificateP12V1QueryParams, ImportCertificateP12MultipartFields *ImportCertificateP12MultipartFields) (*ResponseAuthenticationManagementImportCertificateP12V1, *resty.Response, error) {
206+
return s.ImportCertificateP12V1(ImportCertificateP12V1QueryParams, ImportCertificateP12MultipartFields)
177207
}
178208

179209
// Alias Function
180210
/*
181211
This method acts as an alias for the method `ImportCertificateV1`
182212
*/
183-
func (s *AuthenticationManagementService) ImportCertificate(ImportCertificateV1QueryParams *ImportCertificateV1QueryParams) (*ResponseAuthenticationManagementImportCertificateV1, *resty.Response, error) {
184-
return s.ImportCertificateV1(ImportCertificateV1QueryParams)
213+
func (s *AuthenticationManagementService) ImportCertificate(ImportCertificateV1QueryParams *ImportCertificateV1QueryParams, ImportCertificateMultipartFields *ImportCertificateMultipartFields) (*ResponseAuthenticationManagementImportCertificateV1, *resty.Response, error) {
214+
return s.ImportCertificateV1(ImportCertificateV1QueryParams, ImportCertificateMultipartFields)
185215
}

0 commit comments

Comments
 (0)