OAPI: add endpoint for getting a single job type
This will be used by the web frontend to determine which job settings to show and which to hide.
This commit is contained in:
parent
d30befa2d7
commit
d099a31531
@ -10,7 +10,7 @@
|
||||
"""
|
||||
|
||||
|
||||
__version__ = "61618531-dirty"
|
||||
__version__ = "70584ce9-dirty"
|
||||
|
||||
# import ApiClient
|
||||
from flamenco.manager.api_client import ApiClient
|
||||
|
@ -21,6 +21,7 @@ from flamenco.manager.model_utils import ( # noqa: F401
|
||||
none_type,
|
||||
validate_and_convert_types
|
||||
)
|
||||
from flamenco.manager.model.available_job_type import AvailableJobType
|
||||
from flamenco.manager.model.available_job_types import AvailableJobTypes
|
||||
from flamenco.manager.model.error import Error
|
||||
from flamenco.manager.model.job import Job
|
||||
@ -89,6 +90,55 @@ class JobsApi(object):
|
||||
},
|
||||
api_client=api_client
|
||||
)
|
||||
self.get_job_type_endpoint = _Endpoint(
|
||||
settings={
|
||||
'response_type': (AvailableJobType,),
|
||||
'auth': [],
|
||||
'endpoint_path': '/api/jobs/type/{typeName}',
|
||||
'operation_id': 'get_job_type',
|
||||
'http_method': 'GET',
|
||||
'servers': None,
|
||||
},
|
||||
params_map={
|
||||
'all': [
|
||||
'type_name',
|
||||
],
|
||||
'required': [
|
||||
'type_name',
|
||||
],
|
||||
'nullable': [
|
||||
],
|
||||
'enum': [
|
||||
],
|
||||
'validation': [
|
||||
]
|
||||
},
|
||||
root_map={
|
||||
'validations': {
|
||||
},
|
||||
'allowed_values': {
|
||||
},
|
||||
'openapi_types': {
|
||||
'type_name':
|
||||
(str,),
|
||||
},
|
||||
'attribute_map': {
|
||||
'type_name': 'typeName',
|
||||
},
|
||||
'location_map': {
|
||||
'type_name': 'path',
|
||||
},
|
||||
'collection_format_map': {
|
||||
}
|
||||
},
|
||||
headers_map={
|
||||
'accept': [
|
||||
'application/json'
|
||||
],
|
||||
'content_type': [],
|
||||
},
|
||||
api_client=api_client
|
||||
)
|
||||
self.get_job_types_endpoint = _Endpoint(
|
||||
settings={
|
||||
'response_type': (AvailableJobTypes,),
|
||||
@ -309,6 +359,83 @@ class JobsApi(object):
|
||||
job_id
|
||||
return self.fetch_job_endpoint.call_with_http_info(**kwargs)
|
||||
|
||||
def get_job_type(
|
||||
self,
|
||||
type_name,
|
||||
**kwargs
|
||||
):
|
||||
"""Get single job type and its parameters. # noqa: E501
|
||||
|
||||
This method makes a synchronous HTTP request by default. To make an
|
||||
asynchronous HTTP request, please pass async_req=True
|
||||
|
||||
>>> thread = api.get_job_type(type_name, async_req=True)
|
||||
>>> result = thread.get()
|
||||
|
||||
Args:
|
||||
type_name (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:
|
||||
AvailableJobType
|
||||
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['type_name'] = \
|
||||
type_name
|
||||
return self.get_job_type_endpoint.call_with_http_info(**kwargs)
|
||||
|
||||
def get_job_types(
|
||||
self,
|
||||
**kwargs
|
||||
|
@ -76,7 +76,7 @@ class ApiClient(object):
|
||||
self.default_headers[header_name] = header_value
|
||||
self.cookie = cookie
|
||||
# Set default User-Agent.
|
||||
self.user_agent = 'Flamenco/61618531-dirty (Blender add-on)'
|
||||
self.user_agent = 'Flamenco/70584ce9-dirty (Blender add-on)'
|
||||
|
||||
def __enter__(self):
|
||||
return self
|
||||
|
@ -404,7 +404,7 @@ conf = flamenco.manager.Configuration(
|
||||
"OS: {env}\n"\
|
||||
"Python Version: {pyversion}\n"\
|
||||
"Version of the API: 1.0.0\n"\
|
||||
"SDK Package Version: 61618531-dirty".\
|
||||
"SDK Package Version: 70584ce9-dirty".\
|
||||
format(env=sys.platform, pyversion=sys.version)
|
||||
|
||||
def get_host_settings(self):
|
||||
|
@ -5,6 +5,7 @@ All URIs are relative to *http://localhost*
|
||||
Method | HTTP request | Description
|
||||
------------- | ------------- | -------------
|
||||
[**fetch_job**](JobsApi.md#fetch_job) | **GET** /api/jobs/{job_id} | Fetch info about the job.
|
||||
[**get_job_type**](JobsApi.md#get_job_type) | **GET** /api/jobs/type/{typeName} | Get single job type and its parameters.
|
||||
[**get_job_types**](JobsApi.md#get_job_types) | **GET** /api/jobs/types | Get list of job types and their parameters.
|
||||
[**query_jobs**](JobsApi.md#query_jobs) | **POST** /api/jobs/query | Fetch list of jobs.
|
||||
[**submit_job**](JobsApi.md#submit_job) | **POST** /api/jobs | Submit a new job for Flamenco Manager to execute.
|
||||
@ -75,6 +76,71 @@ No authorization required
|
||||
|
||||
[[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)
|
||||
|
||||
# **get_job_type**
|
||||
> AvailableJobType get_job_type(type_name)
|
||||
|
||||
Get single job type and its parameters.
|
||||
|
||||
### Example
|
||||
|
||||
|
||||
```python
|
||||
import time
|
||||
import flamenco.manager
|
||||
from flamenco.manager.api import jobs_api
|
||||
from flamenco.manager.model.available_job_type import AvailableJobType
|
||||
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 = jobs_api.JobsApi(api_client)
|
||||
type_name = "typeName_example" # str |
|
||||
|
||||
# example passing only required values which don't have defaults set
|
||||
try:
|
||||
# Get single job type and its parameters.
|
||||
api_response = api_instance.get_job_type(type_name)
|
||||
pprint(api_response)
|
||||
except flamenco.manager.ApiException as e:
|
||||
print("Exception when calling JobsApi->get_job_type: %s\n" % e)
|
||||
```
|
||||
|
||||
|
||||
### Parameters
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------- | ------------- | ------------- | -------------
|
||||
**type_name** | **str**| |
|
||||
|
||||
### Return type
|
||||
|
||||
[**AvailableJobType**](AvailableJobType.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
No authorization required
|
||||
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: application/json
|
||||
|
||||
|
||||
### HTTP response details
|
||||
|
||||
| Status code | Description | Response headers |
|
||||
|-------------|-------------|------------------|
|
||||
**200** | Job type | - |
|
||||
|
||||
[[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)
|
||||
|
||||
# **get_job_types**
|
||||
> AvailableJobTypes get_job_types()
|
||||
|
||||
|
@ -4,7 +4,7 @@ Render Farm manager API
|
||||
The `flamenco.manager` package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||
|
||||
- API version: 1.0.0
|
||||
- Package version: 61618531-dirty
|
||||
- Package version: 70584ce9-dirty
|
||||
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
|
||||
For more information, please visit [https://flamenco.io/](https://flamenco.io/)
|
||||
|
||||
@ -32,6 +32,7 @@ import time
|
||||
import flamenco.manager
|
||||
from pprint import pprint
|
||||
from flamenco.manager.api import jobs_api
|
||||
from flamenco.manager.model.available_job_type import AvailableJobType
|
||||
from flamenco.manager.model.available_job_types import AvailableJobTypes
|
||||
from flamenco.manager.model.error import Error
|
||||
from flamenco.manager.model.job import Job
|
||||
@ -67,6 +68,7 @@ All URIs are relative to *http://localhost*
|
||||
Class | Method | HTTP request | Description
|
||||
------------ | ------------- | ------------- | -------------
|
||||
*JobsApi* | [**fetch_job**](flamenco/manager/docs/JobsApi.md#fetch_job) | **GET** /api/jobs/{job_id} | Fetch info about the job.
|
||||
*JobsApi* | [**get_job_type**](flamenco/manager/docs/JobsApi.md#get_job_type) | **GET** /api/jobs/type/{typeName} | Get single job type and its parameters.
|
||||
*JobsApi* | [**get_job_types**](flamenco/manager/docs/JobsApi.md#get_job_types) | **GET** /api/jobs/types | Get list of job types and their parameters.
|
||||
*JobsApi* | [**query_jobs**](flamenco/manager/docs/JobsApi.md#query_jobs) | **POST** /api/jobs/query | Fetch list of jobs.
|
||||
*JobsApi* | [**submit_job**](flamenco/manager/docs/JobsApi.md#submit_job) | **POST** /api/jobs | Submit a new job for Flamenco Manager to execute.
|
||||
|
@ -81,6 +81,7 @@ var _ ChangeBroadcaster = (*webupdates.BiDirComms)(nil)
|
||||
|
||||
type JobCompiler interface {
|
||||
ListJobTypes() api.AvailableJobTypes
|
||||
GetJobType(typeName string) (api.AvailableJobType, error)
|
||||
Compile(ctx context.Context, job api.SubmittedJob) (*job_compilers.AuthoredJob, error)
|
||||
}
|
||||
|
||||
|
@ -7,6 +7,7 @@ import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
"git.blender.org/flamenco/internal/manager/job_compilers"
|
||||
"git.blender.org/flamenco/internal/manager/persistence"
|
||||
"git.blender.org/flamenco/internal/manager/webupdates"
|
||||
"git.blender.org/flamenco/pkg/api"
|
||||
@ -28,6 +29,26 @@ func (f *Flamenco) GetJobTypes(e echo.Context) error {
|
||||
return e.JSON(http.StatusOK, &jobTypes)
|
||||
}
|
||||
|
||||
func (f *Flamenco) GetJobType(e echo.Context, typeName string) error {
|
||||
logger := requestLogger(e)
|
||||
|
||||
if f.jobCompiler == nil {
|
||||
logger.Error().Msg("Flamenco is running without job compiler")
|
||||
return sendAPIError(e, http.StatusInternalServerError, "no job types available")
|
||||
}
|
||||
|
||||
logger.Debug().Str("typeName", typeName).Msg("getting job type")
|
||||
jobType, err := f.jobCompiler.GetJobType(typeName)
|
||||
if err != nil {
|
||||
if err == job_compilers.ErrJobTypeUnknown {
|
||||
return sendAPIError(e, http.StatusNotFound, "no such job type known")
|
||||
}
|
||||
return sendAPIError(e, http.StatusInternalServerError, "error getting job type")
|
||||
}
|
||||
|
||||
return e.JSON(http.StatusOK, jobType)
|
||||
}
|
||||
|
||||
func (f *Flamenco) SubmitJob(e echo.Context) error {
|
||||
logger := requestLogger(e)
|
||||
|
||||
|
@ -4,6 +4,8 @@ package api_impl
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"net/http"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@ -138,3 +140,58 @@ func TestTaskUpdate(t *testing.T) {
|
||||
assert.Equal(t, "pre-update activity", statusChangedtask.Activity) // the 'save' should come from the change in status.
|
||||
assert.Equal(t, "testing", actUpdatedTask.Activity) // the activity should be saved separately.
|
||||
}
|
||||
|
||||
func TestGetJobTypeHappy(t *testing.T) {
|
||||
mockCtrl := gomock.NewController(t)
|
||||
defer mockCtrl.Finish()
|
||||
mf := newMockedFlamenco(mockCtrl)
|
||||
|
||||
// Get an existing job type.
|
||||
jt := api.AvailableJobType{
|
||||
Name: "test-job-type",
|
||||
Label: "Test Job Type",
|
||||
Settings: []api.AvailableJobSetting{
|
||||
{Key: "setting", Type: api.AvailableJobSettingTypeString},
|
||||
},
|
||||
}
|
||||
mf.jobCompiler.EXPECT().GetJobType("test-job-type").
|
||||
Return(jt, nil)
|
||||
|
||||
echoCtx := mf.prepareMockedRequest(nil)
|
||||
err := mf.flamenco.GetJobType(echoCtx, "test-job-type")
|
||||
assert.NoError(t, err)
|
||||
|
||||
assertJSONResponse(t, echoCtx, http.StatusOK, jt)
|
||||
}
|
||||
|
||||
func TestGetJobTypeUnknown(t *testing.T) {
|
||||
mockCtrl := gomock.NewController(t)
|
||||
defer mockCtrl.Finish()
|
||||
mf := newMockedFlamenco(mockCtrl)
|
||||
|
||||
// Get a non-existing job type.
|
||||
mf.jobCompiler.EXPECT().GetJobType("nonexistent-type").
|
||||
Return(api.AvailableJobType{}, job_compilers.ErrJobTypeUnknown)
|
||||
|
||||
echoCtx := mf.prepareMockedRequest(nil)
|
||||
err := mf.flamenco.GetJobType(echoCtx, "nonexistent-type")
|
||||
assert.NoError(t, err)
|
||||
assertJSONResponse(t, echoCtx, http.StatusNotFound, api.Error{
|
||||
Code: http.StatusNotFound,
|
||||
Message: "no such job type known",
|
||||
})
|
||||
}
|
||||
|
||||
func TestGetJobTypeError(t *testing.T) {
|
||||
mockCtrl := gomock.NewController(t)
|
||||
defer mockCtrl.Finish()
|
||||
mf := newMockedFlamenco(mockCtrl)
|
||||
|
||||
// Get an error situation.
|
||||
mf.jobCompiler.EXPECT().GetJobType("error").
|
||||
Return(api.AvailableJobType{}, errors.New("didn't expect this"))
|
||||
echoCtx := mf.prepareMockedRequest(nil)
|
||||
err := mf.flamenco.GetJobType(echoCtx, "error")
|
||||
assert.NoError(t, err)
|
||||
assertAPIErrorResponse(t, echoCtx, http.StatusInternalServerError, "error getting job type")
|
||||
}
|
||||
|
@ -287,6 +287,21 @@ func (mr *MockJobCompilerMockRecorder) Compile(arg0, arg1 interface{}) *gomock.C
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Compile", reflect.TypeOf((*MockJobCompiler)(nil).Compile), arg0, arg1)
|
||||
}
|
||||
|
||||
// GetJobType mocks base method.
|
||||
func (m *MockJobCompiler) GetJobType(arg0 string) (api.AvailableJobType, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetJobType", arg0)
|
||||
ret0, _ := ret[0].(api.AvailableJobType)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetJobType indicates an expected call of GetJobType.
|
||||
func (mr *MockJobCompilerMockRecorder) GetJobType(arg0 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetJobType", reflect.TypeOf((*MockJobCompiler)(nil).GetJobType), arg0)
|
||||
}
|
||||
|
||||
// ListJobTypes mocks base method.
|
||||
func (m *MockJobCompiler) ListJobTypes() api.AvailableJobTypes {
|
||||
m.ctrl.T.Helper()
|
||||
|
@ -111,6 +111,13 @@ func assertJSONResponse(t *testing.T, echoCtx echo.Context, expectStatusCode int
|
||||
assert.JSONEq(t, string(expectJSON), string(actualJSON))
|
||||
}
|
||||
|
||||
func assertAPIErrorResponse(t *testing.T, echoCtx echo.Context, expectStatusCode int, expectMessage string) {
|
||||
assertJSONResponse(t, echoCtx, expectStatusCode, api.Error{
|
||||
Code: int32(expectStatusCode),
|
||||
Message: expectMessage,
|
||||
})
|
||||
}
|
||||
|
||||
func testWorker() persistence.Worker {
|
||||
return persistence.Worker{
|
||||
Model: gorm.Model{ID: 1},
|
||||
|
@ -147,6 +147,16 @@ func (s *Service) ListJobTypes() api.AvailableJobTypes {
|
||||
return api.AvailableJobTypes{JobTypes: jobTypes}
|
||||
}
|
||||
|
||||
// GetJobType returns information about the named job type.
|
||||
// Returns ErrJobTypeUnknown when the name doesn't correspond with a known job type.
|
||||
func (s *Service) GetJobType(typeName string) (api.AvailableJobType, error) {
|
||||
compiler, err := s.compilerForJobType(typeName)
|
||||
if err != nil {
|
||||
return api.AvailableJobType{}, err
|
||||
}
|
||||
return compiler.getJobTypeInfo()
|
||||
}
|
||||
|
||||
func (vm *VM) getCompileJob() (jobCompileFunc, error) {
|
||||
compileJob, isCallable := goja.AssertFunction(vm.runtime.Get("compileJob"))
|
||||
if !isCallable {
|
||||
|
@ -76,6 +76,26 @@ func (mr *MockFlamencoClientMockRecorder) GetConfigurationWithResponse(arg0 inte
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetConfigurationWithResponse", reflect.TypeOf((*MockFlamencoClient)(nil).GetConfigurationWithResponse), varargs...)
|
||||
}
|
||||
|
||||
// GetJobTypeWithResponse mocks base method.
|
||||
func (m *MockFlamencoClient) GetJobTypeWithResponse(arg0 context.Context, arg1 string, arg2 ...api.RequestEditorFn) (*api.GetJobTypeResponse, error) {
|
||||
m.ctrl.T.Helper()
|
||||
varargs := []interface{}{arg0, arg1}
|
||||
for _, a := range arg2 {
|
||||
varargs = append(varargs, a)
|
||||
}
|
||||
ret := m.ctrl.Call(m, "GetJobTypeWithResponse", varargs...)
|
||||
ret0, _ := ret[0].(*api.GetJobTypeResponse)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetJobTypeWithResponse indicates an expected call of GetJobTypeWithResponse.
|
||||
func (mr *MockFlamencoClientMockRecorder) GetJobTypeWithResponse(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, "GetJobTypeWithResponse", reflect.TypeOf((*MockFlamencoClient)(nil).GetJobTypeWithResponse), varargs...)
|
||||
}
|
||||
|
||||
// GetJobTypesWithResponse mocks base method.
|
||||
func (m *MockFlamencoClient) GetJobTypesWithResponse(arg0 context.Context, arg1 ...api.RequestEditorFn) (*api.GetJobTypesResponse, error) {
|
||||
m.ctrl.T.Helper()
|
||||
|
@ -236,6 +236,24 @@ paths:
|
||||
application/json:
|
||||
schema: {$ref: "#/components/schemas/AvailableJobTypes"}
|
||||
|
||||
/api/jobs/type/{typeName}:
|
||||
summary: Info about a specific job type.
|
||||
get:
|
||||
operationId: getJobType
|
||||
summary: Get single job type and its parameters.
|
||||
tags: [jobs]
|
||||
parameters:
|
||||
- name: typeName
|
||||
in: path
|
||||
required: true
|
||||
schema: {type: string}
|
||||
responses:
|
||||
"200":
|
||||
description: Job type
|
||||
content:
|
||||
application/json:
|
||||
schema: {$ref: "#/components/schemas/AvailableJobType"}
|
||||
|
||||
/api/jobs:
|
||||
summary: Job submission endpoint.
|
||||
post:
|
||||
|
@ -103,6 +103,9 @@ type ClientInterface interface {
|
||||
|
||||
QueryJobs(ctx context.Context, body QueryJobsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
|
||||
|
||||
// GetJobType request
|
||||
GetJobType(ctx context.Context, typeName string, reqEditors ...RequestEditorFn) (*http.Response, error)
|
||||
|
||||
// GetJobTypes request
|
||||
GetJobTypes(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)
|
||||
|
||||
@ -218,6 +221,18 @@ func (c *Client) QueryJobs(ctx context.Context, body QueryJobsJSONRequestBody, r
|
||||
return c.Client.Do(req)
|
||||
}
|
||||
|
||||
func (c *Client) GetJobType(ctx context.Context, typeName string, reqEditors ...RequestEditorFn) (*http.Response, error) {
|
||||
req, err := NewGetJobTypeRequest(c.Server, typeName)
|
||||
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) GetJobTypes(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) {
|
||||
req, err := NewGetJobTypesRequest(c.Server)
|
||||
if err != nil {
|
||||
@ -565,6 +580,40 @@ func NewQueryJobsRequestWithBody(server string, contentType string, body io.Read
|
||||
return req, nil
|
||||
}
|
||||
|
||||
// NewGetJobTypeRequest generates requests for GetJobType
|
||||
func NewGetJobTypeRequest(server string, typeName string) (*http.Request, error) {
|
||||
var err error
|
||||
|
||||
var pathParam0 string
|
||||
|
||||
pathParam0, err = runtime.StyleParamWithLocation("simple", false, "typeName", runtime.ParamLocationPath, typeName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
serverURL, err := url.Parse(server)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
operationPath := fmt.Sprintf("/api/jobs/type/%s", pathParam0)
|
||||
if operationPath[0] == '/' {
|
||||
operationPath = "." + operationPath
|
||||
}
|
||||
|
||||
queryURL, err := serverURL.Parse(operationPath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
req, err := http.NewRequest("GET", queryURL.String(), nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return req, nil
|
||||
}
|
||||
|
||||
// NewGetJobTypesRequest generates requests for GetJobTypes
|
||||
func NewGetJobTypesRequest(server string) (*http.Request, error) {
|
||||
var err error
|
||||
@ -1143,6 +1192,9 @@ type ClientWithResponsesInterface interface {
|
||||
|
||||
QueryJobsWithResponse(ctx context.Context, body QueryJobsJSONRequestBody, reqEditors ...RequestEditorFn) (*QueryJobsResponse, error)
|
||||
|
||||
// GetJobType request
|
||||
GetJobTypeWithResponse(ctx context.Context, typeName string, reqEditors ...RequestEditorFn) (*GetJobTypeResponse, error)
|
||||
|
||||
// GetJobTypes request
|
||||
GetJobTypesWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetJobTypesResponse, error)
|
||||
|
||||
@ -1266,6 +1318,28 @@ func (r QueryJobsResponse) StatusCode() int {
|
||||
return 0
|
||||
}
|
||||
|
||||
type GetJobTypeResponse struct {
|
||||
Body []byte
|
||||
HTTPResponse *http.Response
|
||||
JSON200 *AvailableJobType
|
||||
}
|
||||
|
||||
// Status returns HTTPResponse.Status
|
||||
func (r GetJobTypeResponse) Status() string {
|
||||
if r.HTTPResponse != nil {
|
||||
return r.HTTPResponse.Status
|
||||
}
|
||||
return http.StatusText(0)
|
||||
}
|
||||
|
||||
// StatusCode returns HTTPResponse.StatusCode
|
||||
func (r GetJobTypeResponse) StatusCode() int {
|
||||
if r.HTTPResponse != nil {
|
||||
return r.HTTPResponse.StatusCode
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type GetJobTypesResponse struct {
|
||||
Body []byte
|
||||
HTTPResponse *http.Response
|
||||
@ -1627,6 +1701,15 @@ func (c *ClientWithResponses) QueryJobsWithResponse(ctx context.Context, body Qu
|
||||
return ParseQueryJobsResponse(rsp)
|
||||
}
|
||||
|
||||
// GetJobTypeWithResponse request returning *GetJobTypeResponse
|
||||
func (c *ClientWithResponses) GetJobTypeWithResponse(ctx context.Context, typeName string, reqEditors ...RequestEditorFn) (*GetJobTypeResponse, error) {
|
||||
rsp, err := c.GetJobType(ctx, typeName, reqEditors...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return ParseGetJobTypeResponse(rsp)
|
||||
}
|
||||
|
||||
// GetJobTypesWithResponse request returning *GetJobTypesResponse
|
||||
func (c *ClientWithResponses) GetJobTypesWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetJobTypesResponse, error) {
|
||||
rsp, err := c.GetJobTypes(ctx, reqEditors...)
|
||||
@ -1893,6 +1976,32 @@ func ParseQueryJobsResponse(rsp *http.Response) (*QueryJobsResponse, error) {
|
||||
return response, nil
|
||||
}
|
||||
|
||||
// ParseGetJobTypeResponse parses an HTTP response from a GetJobTypeWithResponse call
|
||||
func ParseGetJobTypeResponse(rsp *http.Response) (*GetJobTypeResponse, error) {
|
||||
bodyBytes, err := ioutil.ReadAll(rsp.Body)
|
||||
defer func() { _ = rsp.Body.Close() }()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
response := &GetJobTypeResponse{
|
||||
Body: bodyBytes,
|
||||
HTTPResponse: rsp,
|
||||
}
|
||||
|
||||
switch {
|
||||
case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
|
||||
var dest AvailableJobType
|
||||
if err := json.Unmarshal(bodyBytes, &dest); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
response.JSON200 = &dest
|
||||
|
||||
}
|
||||
|
||||
return response, nil
|
||||
}
|
||||
|
||||
// ParseGetJobTypesResponse parses an HTTP response from a GetJobTypesWithResponse call
|
||||
func ParseGetJobTypesResponse(rsp *http.Response) (*GetJobTypesResponse, error) {
|
||||
bodyBytes, err := ioutil.ReadAll(rsp.Body)
|
||||
|
@ -22,6 +22,9 @@ type ServerInterface interface {
|
||||
// Fetch list of jobs.
|
||||
// (POST /api/jobs/query)
|
||||
QueryJobs(ctx echo.Context) error
|
||||
// Get single job type and its parameters.
|
||||
// (GET /api/jobs/type/{typeName})
|
||||
GetJobType(ctx echo.Context, typeName string) error
|
||||
// Get list of job types and their parameters.
|
||||
// (GET /api/jobs/types)
|
||||
GetJobTypes(ctx echo.Context) error
|
||||
@ -99,6 +102,22 @@ func (w *ServerInterfaceWrapper) QueryJobs(ctx echo.Context) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// GetJobType converts echo context to params.
|
||||
func (w *ServerInterfaceWrapper) GetJobType(ctx echo.Context) error {
|
||||
var err error
|
||||
// ------------- Path parameter "typeName" -------------
|
||||
var typeName string
|
||||
|
||||
err = runtime.BindStyledParameterWithLocation("simple", false, "typeName", runtime.ParamLocationPath, ctx.Param("typeName"), &typeName)
|
||||
if err != nil {
|
||||
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter typeName: %s", err))
|
||||
}
|
||||
|
||||
// Invoke the callback with all the unmarshalled arguments
|
||||
err = w.Handler.GetJobType(ctx, typeName)
|
||||
return err
|
||||
}
|
||||
|
||||
// GetJobTypes converts echo context to params.
|
||||
func (w *ServerInterfaceWrapper) GetJobTypes(ctx echo.Context) error {
|
||||
var err error
|
||||
@ -347,6 +366,7 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL
|
||||
router.GET(baseURL+"/api/configuration", wrapper.GetConfiguration)
|
||||
router.POST(baseURL+"/api/jobs", wrapper.SubmitJob)
|
||||
router.POST(baseURL+"/api/jobs/query", wrapper.QueryJobs)
|
||||
router.GET(baseURL+"/api/jobs/type/:typeName", wrapper.GetJobType)
|
||||
router.GET(baseURL+"/api/jobs/types", wrapper.GetJobTypes)
|
||||
router.GET(baseURL+"/api/jobs/:job_id", wrapper.FetchJob)
|
||||
router.GET(baseURL+"/api/version", wrapper.GetVersion)
|
||||
|
@ -18,105 +18,106 @@ import (
|
||||
// Base64 encoded, gzipped, json marshaled Swagger object
|
||||
var swaggerSpec = []string{
|
||||
|
||||
"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",
|
||||
}
|
||||
|
||||
// GetSwagger returns the content of the embedded swagger specification file
|
||||
|
@ -55,7 +55,7 @@ class ApiClient {
|
||||
* @default {}
|
||||
*/
|
||||
this.defaultHeaders = {
|
||||
'User-Agent': 'Flamenco/61618531-dirty / webbrowser'
|
||||
'User-Agent': 'Flamenco/70584ce9-dirty / webbrowser'
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -13,6 +13,7 @@
|
||||
|
||||
|
||||
import ApiClient from "../ApiClient";
|
||||
import AvailableJobType from '../model/AvailableJobType';
|
||||
import AvailableJobTypes from '../model/AvailableJobTypes';
|
||||
import Error from '../model/Error';
|
||||
import Job from '../model/Job';
|
||||
@ -86,6 +87,52 @@ export default class JobsApi {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get single job type and its parameters.
|
||||
* @param {String} typeName
|
||||
* @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/AvailableJobType} and HTTP response
|
||||
*/
|
||||
getJobTypeWithHttpInfo(typeName) {
|
||||
let postBody = null;
|
||||
// verify the required parameter 'typeName' is set
|
||||
if (typeName === undefined || typeName === null) {
|
||||
throw new Error("Missing the required parameter 'typeName' when calling getJobType");
|
||||
}
|
||||
|
||||
let pathParams = {
|
||||
'typeName': typeName
|
||||
};
|
||||
let queryParams = {
|
||||
};
|
||||
let headerParams = {
|
||||
};
|
||||
let formParams = {
|
||||
};
|
||||
|
||||
let authNames = [];
|
||||
let contentTypes = [];
|
||||
let accepts = ['application/json'];
|
||||
let returnType = AvailableJobType;
|
||||
return this.apiClient.callApi(
|
||||
'/api/jobs/type/{typeName}', 'GET',
|
||||
pathParams, queryParams, headerParams, formParams, postBody,
|
||||
authNames, contentTypes, accepts, returnType, null
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get single job type and its parameters.
|
||||
* @param {String} typeName
|
||||
* @return {Promise} a {@link https://www.promisejs.org/|Promise}, with data of type {@link module:model/AvailableJobType}
|
||||
*/
|
||||
getJobType(typeName) {
|
||||
return this.getJobTypeWithHttpInfo(typeName)
|
||||
.then(function(response_and_data) {
|
||||
return response_and_data.data;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get list of job types and their parameters.
|
||||
* @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing data of type {@link module:model/AvailableJobTypes} and HTTP response
|
||||
|
Loading…
Reference in New Issue
Block a user