OAPI: regenerate code

This commit is contained in:
Sybren A. Stüvel 2022-08-11 16:57:51 -07:00
parent 99bf0a67a7
commit 458c33573e
11 changed files with 510 additions and 104 deletions

@ -39,6 +39,55 @@ class WorkerMgtApi(object):
if api_client is None:
api_client = ApiClient()
self.api_client = api_client
self.delete_worker_endpoint = _Endpoint(
settings={
'response_type': None,
'auth': [],
'endpoint_path': '/api/v3/worker-mgt/workers/{worker_id}',
'operation_id': 'delete_worker',
'http_method': 'DELETE',
'servers': None,
},
params_map={
'all': [
'worker_id',
],
'required': [
'worker_id',
],
'nullable': [
],
'enum': [
],
'validation': [
]
},
root_map={
'validations': {
},
'allowed_values': {
},
'openapi_types': {
'worker_id':
(str,),
},
'attribute_map': {
'worker_id': 'worker_id',
},
'location_map': {
'worker_id': 'path',
},
'collection_format_map': {
}
},
headers_map={
'accept': [
'application/json'
],
'content_type': [],
},
api_client=api_client
)
self.fetch_worker_endpoint = _Endpoint(
settings={
'response_type': (Worker,),
@ -292,6 +341,83 @@ class WorkerMgtApi(object):
api_client=api_client
)
def delete_worker(
self,
worker_id,
**kwargs
):
"""Remove the given worker. It is recommended to only call this function when the worker is in `offline` state. If the worker is still running, stop it first. Any task still assigned to the worker will be requeued. # noqa: E501
This method makes a synchronous HTTP request by default. To make an
asynchronous HTTP request, please pass async_req=True
>>> thread = api.delete_worker(worker_id, async_req=True)
>>> result = thread.get()
Args:
worker_id (str):
Keyword Args:
_return_http_data_only (bool): response data without head status
code and headers. Default is True.
_preload_content (bool): if False, the urllib3.HTTPResponse object
will be returned without reading/decoding response data.
Default is True.
_request_timeout (int/float/tuple): timeout setting for this request. If
one number provided, it will be total request timeout. It can also
be a pair (tuple) of (connection, read) timeouts.
Default is None.
_check_input_type (bool): specifies if type checking
should be done one the data sent to the server.
Default is True.
_check_return_type (bool): specifies if type checking
should be done one the data received from the server.
Default is True.
_spec_property_naming (bool): True if the variable names in the input data
are serialized names, as specified in the OpenAPI document.
False if the variable names in the input data
are pythonic names, e.g. snake case (default)
_content_type (str/None): force body content-type.
Default is None and content-type will be predicted by allowed
content-types and body.
_host_index (int/None): specifies the index of the server
that we want to use.
Default is read from the configuration.
async_req (bool): execute request asynchronously
Returns:
None
If the method is called asynchronously, returns the request
thread.
"""
kwargs['async_req'] = kwargs.get(
'async_req', False
)
kwargs['_return_http_data_only'] = kwargs.get(
'_return_http_data_only', True
)
kwargs['_preload_content'] = kwargs.get(
'_preload_content', True
)
kwargs['_request_timeout'] = kwargs.get(
'_request_timeout', None
)
kwargs['_check_input_type'] = kwargs.get(
'_check_input_type', True
)
kwargs['_check_return_type'] = kwargs.get(
'_check_return_type', True
)
kwargs['_spec_property_naming'] = kwargs.get(
'_spec_property_naming', False
)
kwargs['_content_type'] = kwargs.get(
'_content_type')
kwargs['_host_index'] = kwargs.get('_host_index')
kwargs['worker_id'] = \
worker_id
return self.delete_worker_endpoint.call_with_http_info(**kwargs)
def fetch_worker(
self,
worker_id,

@ -13,6 +13,7 @@ Name | Type | Description | Notes
**last_seen** | **datetime** | Last time this worker was seen by the Manager. | [optional]
**previous_status** | [**WorkerStatus**](WorkerStatus.md) | | [optional]
**status_change** | [**WorkerStatusChangeRequest**](WorkerStatusChangeRequest.md) | | [optional]
**deleted_at** | **datetime** | This is only set when the worker was deleted. | [optional]
**any string name** | **bool, date, datetime, dict, float, int, list, str, none_type** | any string name can be used but the value must be the correct type | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

@ -4,6 +4,7 @@ All URIs are relative to *http://localhost*
Method | HTTP request | Description
------------- | ------------- | -------------
[**delete_worker**](WorkerMgtApi.md#delete_worker) | **DELETE** /api/v3/worker-mgt/workers/{worker_id} | Remove the given worker. It is recommended to only call this function when the worker is in `offline` state. If the worker is still running, stop it first. Any task still assigned to the worker will be requeued.
[**fetch_worker**](WorkerMgtApi.md#fetch_worker) | **GET** /api/v3/worker-mgt/workers/{worker_id} | Fetch info about the worker.
[**fetch_worker_sleep_schedule**](WorkerMgtApi.md#fetch_worker_sleep_schedule) | **GET** /api/v3/worker-mgt/workers/{worker_id}/sleep-schedule |
[**fetch_workers**](WorkerMgtApi.md#fetch_workers) | **GET** /api/v3/worker-mgt/workers | Get list of workers.
@ -11,6 +12,71 @@ Method | HTTP request | Description
[**set_worker_sleep_schedule**](WorkerMgtApi.md#set_worker_sleep_schedule) | **POST** /api/v3/worker-mgt/workers/{worker_id}/sleep-schedule |
# **delete_worker**
> delete_worker(worker_id)
Remove the given worker. It is recommended to only call this function when the worker is in `offline` state. If the worker is still running, stop it first. Any task still assigned to the worker will be requeued.
### Example
```python
import time
import flamenco.manager
from flamenco.manager.api import worker_mgt_api
from flamenco.manager.model.error import Error
from pprint import pprint
# Defining the host is optional and defaults to http://localhost
# See configuration.py for a list of all supported configuration parameters.
configuration = flamenco.manager.Configuration(
host = "http://localhost"
)
# Enter a context with an instance of the API client
with flamenco.manager.ApiClient() as api_client:
# Create an instance of the API class
api_instance = worker_mgt_api.WorkerMgtApi(api_client)
worker_id = "worker_id_example" # str |
# example passing only required values which don't have defaults set
try:
# Remove the given worker. It is recommended to only call this function when the worker is in `offline` state. If the worker is still running, stop it first. Any task still assigned to the worker will be requeued.
api_instance.delete_worker(worker_id)
except flamenco.manager.ApiException as e:
print("Exception when calling WorkerMgtApi->delete_worker: %s\n" % e)
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**worker_id** | **str**| |
### Return type
void (empty response body)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
**204** | Normal response, worker has been deleted | - |
**0** | Unexpected error. | - |
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **fetch_worker**
> Worker fetch_worker(worker_id)

@ -97,6 +97,7 @@ class SocketIOWorkerUpdate(ModelNormal):
'last_seen': (datetime,), # noqa: E501
'previous_status': (WorkerStatus,), # noqa: E501
'status_change': (WorkerStatusChangeRequest,), # noqa: E501
'deleted_at': (datetime,), # noqa: E501
}
@cached_property
@ -113,6 +114,7 @@ class SocketIOWorkerUpdate(ModelNormal):
'last_seen': 'last_seen', # noqa: E501
'previous_status': 'previous_status', # noqa: E501
'status_change': 'status_change', # noqa: E501
'deleted_at': 'deleted_at', # noqa: E501
}
read_only_vars = {
@ -166,6 +168,7 @@ class SocketIOWorkerUpdate(ModelNormal):
last_seen (datetime): Last time this worker was seen by the Manager.. [optional] # noqa: E501
previous_status (WorkerStatus): [optional] # noqa: E501
status_change (WorkerStatusChangeRequest): [optional] # noqa: E501
deleted_at (datetime): This is only set when the worker was deleted.. [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)
@ -262,6 +265,7 @@ class SocketIOWorkerUpdate(ModelNormal):
last_seen (datetime): Last time this worker was seen by the Manager.. [optional] # noqa: E501
previous_status (WorkerStatus): [optional] # noqa: E501
status_change (WorkerStatusChangeRequest): [optional] # noqa: E501
deleted_at (datetime): This is only set when the worker was deleted.. [optional] # noqa: E501
"""
_check_type = kwargs.pop('_check_type', True)

@ -116,6 +116,26 @@ func (mr *MockFlamencoClientMockRecorder) CheckSharedStoragePathWithResponse(arg
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckSharedStoragePathWithResponse", reflect.TypeOf((*MockFlamencoClient)(nil).CheckSharedStoragePathWithResponse), varargs...)
}
// DeleteWorkerWithResponse mocks base method.
func (m *MockFlamencoClient) DeleteWorkerWithResponse(arg0 context.Context, arg1 string, arg2 ...api.RequestEditorFn) (*api.DeleteWorkerResponse, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
}
ret := m.ctrl.Call(m, "DeleteWorkerWithResponse", varargs...)
ret0, _ := ret[0].(*api.DeleteWorkerResponse)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// DeleteWorkerWithResponse indicates an expected call of DeleteWorkerWithResponse.
func (mr *MockFlamencoClientMockRecorder) DeleteWorkerWithResponse(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteWorkerWithResponse", reflect.TypeOf((*MockFlamencoClient)(nil).DeleteWorkerWithResponse), varargs...)
}
// FetchGlobalLastRenderedInfoWithResponse mocks base method.
func (m *MockFlamencoClient) FetchGlobalLastRenderedInfoWithResponse(arg0 context.Context, arg1 ...api.RequestEditorFn) (*api.FetchGlobalLastRenderedInfoResponse, error) {
m.ctrl.T.Helper()

@ -196,6 +196,9 @@ type ClientInterface interface {
// FetchWorkers request
FetchWorkers(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
// DeleteWorker request
DeleteWorker(ctx context.Context, workerId string, reqEditors ...RequestEditorFn) (*http.Response, error)
// FetchWorker request
FetchWorker(ctx context.Context, workerId string, reqEditors ...RequestEditorFn) (*http.Response, error)
@ -704,6 +707,18 @@ func (c *Client) FetchWorkers(ctx context.Context, reqEditors ...RequestEditorFn
return c.Client.Do(req)
}
func (c *Client) DeleteWorker(ctx context.Context, workerId string, reqEditors ...RequestEditorFn) (*http.Response, error) {
req, err := NewDeleteWorkerRequest(c.Server, workerId)
if err != nil {
return nil, err
}
req = req.WithContext(ctx)
if err := c.applyEditors(ctx, req, reqEditors); err != nil {
return nil, err
}
return c.Client.Do(req)
}
func (c *Client) FetchWorker(ctx context.Context, workerId string, reqEditors ...RequestEditorFn) (*http.Response, error) {
req, err := NewFetchWorkerRequest(c.Server, workerId)
if err != nil {
@ -1961,6 +1976,40 @@ func NewFetchWorkersRequest(server string) (*http.Request, error) {
return req, nil
}
// NewDeleteWorkerRequest generates requests for DeleteWorker
func NewDeleteWorkerRequest(server string, workerId string) (*http.Request, error) {
var err error
var pathParam0 string
pathParam0, err = runtime.StyleParamWithLocation("simple", false, "worker_id", runtime.ParamLocationPath, workerId)
if err != nil {
return nil, err
}
serverURL, err := url.Parse(server)
if err != nil {
return nil, err
}
operationPath := fmt.Sprintf("/api/v3/worker-mgt/workers/%s", pathParam0)
if operationPath[0] == '/' {
operationPath = "." + operationPath
}
queryURL, err := serverURL.Parse(operationPath)
if err != nil {
return nil, err
}
req, err := http.NewRequest("DELETE", queryURL.String(), nil)
if err != nil {
return nil, err
}
return req, nil
}
// NewFetchWorkerRequest generates requests for FetchWorker
func NewFetchWorkerRequest(server string, workerId string) (*http.Request, error) {
var err error
@ -2588,6 +2637,9 @@ type ClientWithResponsesInterface interface {
// FetchWorkers request
FetchWorkersWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*FetchWorkersResponse, error)
// DeleteWorker request
DeleteWorkerWithResponse(ctx context.Context, workerId string, reqEditors ...RequestEditorFn) (*DeleteWorkerResponse, error)
// FetchWorker request
FetchWorkerWithResponse(ctx context.Context, workerId string, reqEditors ...RequestEditorFn) (*FetchWorkerResponse, error)
@ -3274,6 +3326,28 @@ func (r FetchWorkersResponse) StatusCode() int {
return 0
}
type DeleteWorkerResponse struct {
Body []byte
HTTPResponse *http.Response
JSONDefault *Error
}
// Status returns HTTPResponse.Status
func (r DeleteWorkerResponse) Status() string {
if r.HTTPResponse != nil {
return r.HTTPResponse.Status
}
return http.StatusText(0)
}
// StatusCode returns HTTPResponse.StatusCode
func (r DeleteWorkerResponse) StatusCode() int {
if r.HTTPResponse != nil {
return r.HTTPResponse.StatusCode
}
return 0
}
type FetchWorkerResponse struct {
Body []byte
HTTPResponse *http.Response
@ -3903,6 +3977,15 @@ func (c *ClientWithResponses) FetchWorkersWithResponse(ctx context.Context, reqE
return ParseFetchWorkersResponse(rsp)
}
// DeleteWorkerWithResponse request returning *DeleteWorkerResponse
func (c *ClientWithResponses) DeleteWorkerWithResponse(ctx context.Context, workerId string, reqEditors ...RequestEditorFn) (*DeleteWorkerResponse, error) {
rsp, err := c.DeleteWorker(ctx, workerId, reqEditors...)
if err != nil {
return nil, err
}
return ParseDeleteWorkerResponse(rsp)
}
// FetchWorkerWithResponse request returning *FetchWorkerResponse
func (c *ClientWithResponses) FetchWorkerWithResponse(ctx context.Context, workerId string, reqEditors ...RequestEditorFn) (*FetchWorkerResponse, error) {
rsp, err := c.FetchWorker(ctx, workerId, reqEditors...)
@ -4910,6 +4993,32 @@ func ParseFetchWorkersResponse(rsp *http.Response) (*FetchWorkersResponse, error
return response, nil
}
// ParseDeleteWorkerResponse parses an HTTP response from a DeleteWorkerWithResponse call
func ParseDeleteWorkerResponse(rsp *http.Response) (*DeleteWorkerResponse, error) {
bodyBytes, err := ioutil.ReadAll(rsp.Body)
defer func() { _ = rsp.Body.Close() }()
if err != nil {
return nil, err
}
response := &DeleteWorkerResponse{
Body: bodyBytes,
HTTPResponse: rsp,
}
switch {
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true:
var dest Error
if err := json.Unmarshal(bodyBytes, &dest); err != nil {
return nil, err
}
response.JSONDefault = &dest
}
return response, nil
}
// ParseFetchWorkerResponse parses an HTTP response from a FetchWorkerWithResponse call
func ParseFetchWorkerResponse(rsp *http.Response) (*FetchWorkerResponse, error) {
bodyBytes, err := ioutil.ReadAll(rsp.Body)

@ -98,6 +98,9 @@ type ServerInterface interface {
// Get list of workers.
// (GET /api/v3/worker-mgt/workers)
FetchWorkers(ctx echo.Context) error
// Remove the given worker. It is recommended to only call this function when the worker is in `offline` state. If the worker is still running, stop it first. Any task still assigned to the worker will be requeued.
// (DELETE /api/v3/worker-mgt/workers/{worker_id})
DeleteWorker(ctx echo.Context, workerId string) error
// Fetch info about the worker.
// (GET /api/v3/worker-mgt/workers/{worker_id})
FetchWorker(ctx echo.Context, workerId string) error
@ -553,6 +556,22 @@ func (w *ServerInterfaceWrapper) FetchWorkers(ctx echo.Context) error {
return err
}
// DeleteWorker converts echo context to params.
func (w *ServerInterfaceWrapper) DeleteWorker(ctx echo.Context) error {
var err error
// ------------- Path parameter "worker_id" -------------
var workerId string
err = runtime.BindStyledParameterWithLocation("simple", false, "worker_id", runtime.ParamLocationPath, ctx.Param("worker_id"), &workerId)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter worker_id: %s", err))
}
// Invoke the callback with all the unmarshalled arguments
err = w.Handler.DeleteWorker(ctx, workerId)
return err
}
// FetchWorker converts echo context to params.
func (w *ServerInterfaceWrapper) FetchWorker(ctx echo.Context) error {
var err error
@ -791,6 +810,7 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL
router.POST(baseURL+"/api/v3/tasks/:task_id/setstatus", wrapper.SetTaskStatus)
router.GET(baseURL+"/api/v3/version", wrapper.GetVersion)
router.GET(baseURL+"/api/v3/worker-mgt/workers", wrapper.FetchWorkers)
router.DELETE(baseURL+"/api/v3/worker-mgt/workers/:worker_id", wrapper.DeleteWorker)
router.GET(baseURL+"/api/v3/worker-mgt/workers/:worker_id", wrapper.FetchWorker)
router.POST(baseURL+"/api/v3/worker-mgt/workers/:worker_id/setstatus", wrapper.RequestWorkerStatusChange)
router.GET(baseURL+"/api/v3/worker-mgt/workers/:worker_id/sleep-schedule", wrapper.FetchWorkerSleepSchedule)

@ -97,110 +97,112 @@ var swaggerSpec = []string{
"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",
"XP9+/f8DAAD//xuFDkmA1wAA",
"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",
"7+Q0lH6I53B5Tde/X///AAAA//8EFYW6StoAAA==",
}
// GetSwagger returns the content of the embedded swagger specification file

@ -560,6 +560,9 @@ type SocketIOTaskUpdate struct {
// Subset of a Worker, sent over SocketIO when a worker changes.
type SocketIOWorkerUpdate struct {
// This is only set when the worker was deleted.
DeletedAt *time.Time `json:"deleted_at,omitempty"`
// UUID of the Worker
Id string `json:"id"`

@ -39,6 +39,52 @@ export default class WorkerMgtApi {
/**
* Remove the given worker. It is recommended to only call this function when the worker is in `offline` state. If the worker is still running, stop it first. Any task still assigned to the worker will be requeued.
* @param {String} workerId
* @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response
*/
deleteWorkerWithHttpInfo(workerId) {
let postBody = null;
// verify the required parameter 'workerId' is set
if (workerId === undefined || workerId === null) {
throw new Error("Missing the required parameter 'workerId' when calling deleteWorker");
}
let pathParams = {
'worker_id': workerId
};
let queryParams = {
};
let headerParams = {
};
let formParams = {
};
let authNames = [];
let contentTypes = [];
let accepts = ['application/json'];
let returnType = null;
return this.apiClient.callApi(
'/api/v3/worker-mgt/workers/{worker_id}', 'DELETE',
pathParams, queryParams, headerParams, formParams, postBody,
authNames, contentTypes, accepts, returnType, null
);
}
/**
* Remove the given worker. It is recommended to only call this function when the worker is in `offline` state. If the worker is still running, stop it first. Any task still assigned to the worker will be requeued.
* @param {String} workerId
* @return {Promise} a {@link https://www.promisejs.org/|Promise}
*/
deleteWorker(workerId) {
return this.deleteWorkerWithHttpInfo(workerId)
.then(function(response_and_data) {
return response_and_data.data;
});
}
/**
* Fetch info about the worker.
* @param {String} workerId

@ -84,6 +84,9 @@ class SocketIOWorkerUpdate {
if (data.hasOwnProperty('version')) {
obj['version'] = ApiClient.convertToType(data['version'], 'String');
}
if (data.hasOwnProperty('deleted_at')) {
obj['deleted_at'] = ApiClient.convertToType(data['deleted_at'], 'Date');
}
}
return obj;
}
@ -135,6 +138,12 @@ SocketIOWorkerUpdate.prototype['status_change'] = undefined;
*/
SocketIOWorkerUpdate.prototype['version'] = undefined;
/**
* This is only set when the worker was deleted.
* @member {Date} deleted_at
*/
SocketIOWorkerUpdate.prototype['deleted_at'] = undefined;