fix: updated api for deleting secrets so "influx secret delete" command works again (#469)

* fix: updated api for deleting secrets

* fix: reversed code comments update
This commit is contained in:
Fernando Benayas 2023-01-09 14:35:09 +01:00 committed by GitHub
parent ae62da0b32
commit 4ce9053ddb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 231 additions and 12 deletions

View File

@ -26,6 +26,27 @@ var (
type SecretsApi interface {
/*
* DeleteOrgsIDSecretsID Delete a secret from an organization
* @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
* @param orgID The organization ID.
* @param secretID The secret ID.
* @return ApiDeleteOrgsIDSecretsIDRequest
*/
DeleteOrgsIDSecretsID(ctx _context.Context, orgID string, secretID string) ApiDeleteOrgsIDSecretsIDRequest
/*
* DeleteOrgsIDSecretsIDExecute executes the request
*/
DeleteOrgsIDSecretsIDExecute(r ApiDeleteOrgsIDSecretsIDRequest) error
/*
* DeleteOrgsIDSecretsIDExecuteWithHttpInfo executes the request with HTTP response info returned. The response body is not
* available on the returned HTTP response as it will have already been read and closed; access to the response body
* content should be achieved through the returned response model if applicable.
*/
DeleteOrgsIDSecretsIDExecuteWithHttpInfo(r ApiDeleteOrgsIDSecretsIDRequest) (*_nethttp.Response, error)
/*
* GetOrgsIDSecrets List all secret keys for an organization
* @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@ -92,6 +113,160 @@ type SecretsApi interface {
// SecretsApiService SecretsApi service
type SecretsApiService service
type ApiDeleteOrgsIDSecretsIDRequest struct {
ctx _context.Context
ApiService SecretsApi
orgID string
secretID string
zapTraceSpan *string
}
func (r ApiDeleteOrgsIDSecretsIDRequest) OrgID(orgID string) ApiDeleteOrgsIDSecretsIDRequest {
r.orgID = orgID
return r
}
func (r ApiDeleteOrgsIDSecretsIDRequest) GetOrgID() string {
return r.orgID
}
func (r ApiDeleteOrgsIDSecretsIDRequest) SecretID(secretID string) ApiDeleteOrgsIDSecretsIDRequest {
r.secretID = secretID
return r
}
func (r ApiDeleteOrgsIDSecretsIDRequest) GetSecretID() string {
return r.secretID
}
func (r ApiDeleteOrgsIDSecretsIDRequest) ZapTraceSpan(zapTraceSpan string) ApiDeleteOrgsIDSecretsIDRequest {
r.zapTraceSpan = &zapTraceSpan
return r
}
func (r ApiDeleteOrgsIDSecretsIDRequest) GetZapTraceSpan() *string {
return r.zapTraceSpan
}
func (r ApiDeleteOrgsIDSecretsIDRequest) Execute() error {
return r.ApiService.DeleteOrgsIDSecretsIDExecute(r)
}
func (r ApiDeleteOrgsIDSecretsIDRequest) ExecuteWithHttpInfo() (*_nethttp.Response, error) {
return r.ApiService.DeleteOrgsIDSecretsIDExecuteWithHttpInfo(r)
}
/*
* DeleteOrgsIDSecretsID Delete a secret from an organization
* @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
* @param orgID The organization ID.
* @param secretID The secret ID.
* @return ApiDeleteOrgsIDSecretsIDRequest
*/
func (a *SecretsApiService) DeleteOrgsIDSecretsID(ctx _context.Context, orgID string, secretID string) ApiDeleteOrgsIDSecretsIDRequest {
return ApiDeleteOrgsIDSecretsIDRequest{
ApiService: a,
ctx: ctx,
orgID: orgID,
secretID: secretID,
}
}
/*
* Execute executes the request
*/
func (a *SecretsApiService) DeleteOrgsIDSecretsIDExecute(r ApiDeleteOrgsIDSecretsIDRequest) error {
_, err := a.DeleteOrgsIDSecretsIDExecuteWithHttpInfo(r)
return err
}
/*
* ExecuteWithHttpInfo executes the request with HTTP response info returned. The response body is not available on the
* returned HTTP response as it will have already been read and closed; access to the response body content should be
* achieved through the returned response model if applicable.
*/
func (a *SecretsApiService) DeleteOrgsIDSecretsIDExecuteWithHttpInfo(r ApiDeleteOrgsIDSecretsIDRequest) (*_nethttp.Response, error) {
var (
localVarHTTPMethod = _nethttp.MethodDelete
localVarPostBody interface{}
localVarFormFileName string
localVarFileName string
localVarFileBytes []byte
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SecretsApiService.DeleteOrgsIDSecretsID")
if err != nil {
return nil, GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/api/v2/orgs/{orgID}/secrets/{secretID}"
localVarPath = strings.Replace(localVarPath, "{"+"orgID"+"}", _neturl.PathEscape(parameterToString(r.orgID, "")), -1)
localVarPath = strings.Replace(localVarPath, "{"+"secretID"+"}", _neturl.PathEscape(parameterToString(r.secretID, "")), -1)
localVarHeaderParams := make(map[string]string)
localVarQueryParams := _neturl.Values{}
localVarFormParams := _neturl.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.zapTraceSpan != nil {
localVarHeaderParams["Zap-Trace-Span"] = parameterToString(*r.zapTraceSpan, "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
newErr := GenericOpenAPIError{
buildHeader: localVarHTTPResponse.Header.Get("X-Influxdb-Build"),
}
if localVarHTTPResponse.StatusCode >= 300 {
body, err := GunzipIfNeeded(localVarHTTPResponse)
if err != nil {
body.Close()
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
localVarBody, err := _io.ReadAll(body)
body.Close()
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.body = localVarBody
newErr.error = localVarHTTPResponse.Status
var v Error
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = _fmt.Sprintf("%s: %s", newErr.Error(), err.Error())
return localVarHTTPResponse, newErr
}
v.SetMessage(_fmt.Sprintf("%s: %s", newErr.Error(), v.GetMessage()))
newErr.model = &v
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiGetOrgsIDSecretsRequest struct {
ctx _context.Context
ApiService SecretsApi

View File

@ -43,6 +43,8 @@ paths:
$ref: "./openapi/src/common/paths/orgs_orgID_secrets.yml"
/api/v2/orgs/{orgID}/secrets/{delete}:
$ref: "./openapi/src/common/paths/orgs_orgID_secrets_delete.yml"
/api/v2/orgs/{orgID}/secrets/{secretID}:
$ref: "./openapi/src/common/paths/orgs_orgID_secrets_secretID.yml"
/api/v2/buckets/{bucketID}/schema/measurements:
$ref: "./openapi/src/cloud/paths/measurements.yml"
/api/v2/buckets/{bucketID}/schema/measurements/{measurementID}:

View File

@ -36,11 +36,10 @@ func (c Client) Delete(ctx context.Context, params *DeleteParams) error {
return err
}
// PostOrgsIDSecrets is used to remove secrets from an organization.
// DeleteOrgsIDSecretsID is used to remove a secret from an organization.
// The name is generated from the operationId in the
// orgs_orgsID_secrets_delete.yml path.
err = c.PostOrgsIDSecrets(ctx, orgID).
SecretKeys(api.SecretKeys{Secrets: &[]string{params.Key}}).
// orgs_orgsID_secrets_secretID.yml path.
err = c.DeleteOrgsIDSecretsID(ctx, orgID, params.Key).
Execute()
if err != nil {
return fmt.Errorf("failed to delete secret with key %q: %w", params.Key, err)

View File

@ -140,11 +140,11 @@ func TestSecret_Delete(t *testing.T) {
},
defaultOrgName: defaultOrgName,
registerExpectations: func(t *testing.T, secretApi *mock.MockSecretsApi) {
req := api.ApiPostOrgsIDSecretsRequest{ApiService: secretApi}.
req := api.ApiDeleteOrgsIDSecretsIDRequest{ApiService: secretApi}.
OrgID(id).
SecretKeys(api.SecretKeys{Secrets: &[]string{"key1"}})
secretApi.EXPECT().PostOrgsIDSecrets(gomock.Any(), gomock.Eq(id)).Return(req)
secretApi.EXPECT().PostOrgsIDSecretsExecute(gomock.Eq(req)).Return(nil)
SecretID("key1")
secretApi.EXPECT().DeleteOrgsIDSecretsID(gomock.Any(), gomock.Eq(id), gomock.Eq("key1")).Return(req)
secretApi.EXPECT().DeleteOrgsIDSecretsIDExecute(gomock.Eq(req)).Return(nil)
},
expectMatcher: printHeader + fakeKey + "\t" + id + "\ttrue\n",
},
@ -159,11 +159,11 @@ func TestSecret_Delete(t *testing.T) {
},
defaultOrgName: defaultOrgName,
registerExpectations: func(t *testing.T, secretApi *mock.MockSecretsApi) {
req := api.ApiPostOrgsIDSecretsRequest{ApiService: secretApi}.
req := api.ApiDeleteOrgsIDSecretsIDRequest{ApiService: secretApi}.
OrgID(id).
SecretKeys(api.SecretKeys{Secrets: &[]string{""}})
secretApi.EXPECT().PostOrgsIDSecrets(gomock.Any(), gomock.Eq(id)).Return(req)
secretApi.EXPECT().PostOrgsIDSecretsExecute(gomock.Eq(req)).Return(nil)
SecretID("")
secretApi.EXPECT().DeleteOrgsIDSecretsID(gomock.Any(), gomock.Eq(id), gomock.Eq("")).Return(req)
secretApi.EXPECT().DeleteOrgsIDSecretsIDExecute(gomock.Eq(req)).Return(nil)
},
expectMatcher: printHeader + "\t" + id + "\ttrue\n",
},

View File

@ -36,6 +36,49 @@ func (m *MockSecretsApi) EXPECT() *MockSecretsApiMockRecorder {
return m.recorder
}
// DeleteOrgsIDSecretsID mocks base method.
func (m *MockSecretsApi) DeleteOrgsIDSecretsID(arg0 context.Context, arg1, arg2 string) api.ApiDeleteOrgsIDSecretsIDRequest {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "DeleteOrgsIDSecretsID", arg0, arg1, arg2)
ret0, _ := ret[0].(api.ApiDeleteOrgsIDSecretsIDRequest)
return ret0
}
// DeleteOrgsIDSecretsID indicates an expected call of DeleteOrgsIDSecretsID.
func (mr *MockSecretsApiMockRecorder) DeleteOrgsIDSecretsID(arg0, arg1, arg2 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOrgsIDSecretsID", reflect.TypeOf((*MockSecretsApi)(nil).DeleteOrgsIDSecretsID), arg0, arg1, arg2)
}
// DeleteOrgsIDSecretsIDExecute mocks base method.
func (m *MockSecretsApi) DeleteOrgsIDSecretsIDExecute(arg0 api.ApiDeleteOrgsIDSecretsIDRequest) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "DeleteOrgsIDSecretsIDExecute", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// DeleteOrgsIDSecretsIDExecute indicates an expected call of DeleteOrgsIDSecretsIDExecute.
func (mr *MockSecretsApiMockRecorder) DeleteOrgsIDSecretsIDExecute(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOrgsIDSecretsIDExecute", reflect.TypeOf((*MockSecretsApi)(nil).DeleteOrgsIDSecretsIDExecute), arg0)
}
// DeleteOrgsIDSecretsIDExecuteWithHttpInfo mocks base method.
func (m *MockSecretsApi) DeleteOrgsIDSecretsIDExecuteWithHttpInfo(arg0 api.ApiDeleteOrgsIDSecretsIDRequest) (*http.Response, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "DeleteOrgsIDSecretsIDExecuteWithHttpInfo", arg0)
ret0, _ := ret[0].(*http.Response)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// DeleteOrgsIDSecretsIDExecuteWithHttpInfo indicates an expected call of DeleteOrgsIDSecretsIDExecuteWithHttpInfo.
func (mr *MockSecretsApiMockRecorder) DeleteOrgsIDSecretsIDExecuteWithHttpInfo(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOrgsIDSecretsIDExecuteWithHttpInfo", reflect.TypeOf((*MockSecretsApi)(nil).DeleteOrgsIDSecretsIDExecuteWithHttpInfo), arg0)
}
// GetOrgsIDSecrets mocks base method.
func (m *MockSecretsApi) GetOrgsIDSecrets(arg0 context.Context, arg1 string) api.ApiGetOrgsIDSecretsRequest {
m.ctrl.T.Helper()