diff --git a/addon/flamenco/manager/api/meta_api.py b/addon/flamenco/manager/api/meta_api.py index 802ffe28..aae252c6 100644 --- a/addon/flamenco/manager/api/meta_api.py +++ b/addon/flamenco/manager/api/meta_api.py @@ -30,7 +30,7 @@ from flamenco.manager.model.manager_variable_audience import ManagerVariableAudi from flamenco.manager.model.manager_variables import ManagerVariables from flamenco.manager.model.path_check_input import PathCheckInput from flamenco.manager.model.path_check_result import PathCheckResult -from flamenco.manager.model.wizard_config import WizardConfig +from flamenco.manager.model.setup_assistant_config import SetupAssistantConfig class MetaApi(object): @@ -364,18 +364,18 @@ class MetaApi(object): }, api_client=api_client ) - self.save_wizard_config_endpoint = _Endpoint( + self.save_setup_assistant_config_endpoint = _Endpoint( settings={ 'response_type': None, 'auth': [], - 'endpoint_path': '/api/v3/configuration/wizard', - 'operation_id': 'save_wizard_config', + 'endpoint_path': '/api/v3/configuration/setup-assistant', + 'operation_id': 'save_setup_assistant_config', 'http_method': 'POST', 'servers': None, }, params_map={ 'all': [ - 'wizard_config', + 'setup_assistant_config', ], 'required': [], 'nullable': [ @@ -391,13 +391,13 @@ class MetaApi(object): 'allowed_values': { }, 'openapi_types': { - 'wizard_config': - (WizardConfig,), + 'setup_assistant_config': + (SetupAssistantConfig,), }, 'attribute_map': { }, 'location_map': { - 'wizard_config': 'body', + 'setup_assistant_config': 'body', }, 'collection_format_map': { } @@ -928,7 +928,7 @@ class MetaApi(object): kwargs['_host_index'] = kwargs.get('_host_index') return self.get_version_endpoint.call_with_http_info(**kwargs) - def save_wizard_config( + def save_setup_assistant_config( self, **kwargs ): @@ -937,12 +937,12 @@ class MetaApi(object): This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True - >>> thread = api.save_wizard_config(async_req=True) + >>> thread = api.save_setup_assistant_config(async_req=True) >>> result = thread.get() Keyword Args: - wizard_config (WizardConfig): Configuration to save.. [optional] + setup_assistant_config (SetupAssistantConfig): Configuration to save.. [optional] _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 @@ -999,5 +999,5 @@ class MetaApi(object): kwargs['_content_type'] = kwargs.get( '_content_type') kwargs['_host_index'] = kwargs.get('_host_index') - return self.save_wizard_config_endpoint.call_with_http_info(**kwargs) + return self.save_setup_assistant_config_endpoint.call_with_http_info(**kwargs) diff --git a/addon/flamenco/manager/docs/MetaApi.md b/addon/flamenco/manager/docs/MetaApi.md index 8b29728a..44b36afa 100644 --- a/addon/flamenco/manager/docs/MetaApi.md +++ b/addon/flamenco/manager/docs/MetaApi.md @@ -11,7 +11,7 @@ Method | HTTP request | Description [**get_configuration_file**](MetaApi.md#get_configuration_file) | **GET** /api/v3/configuration/file | Retrieve the configuration of Flamenco Manager. [**get_variables**](MetaApi.md#get_variables) | **GET** /api/v3/configuration/variables/{audience}/{platform} | Get the variables of this Manager. Used by the Blender add-on to recognise two-way variables, and for the web interface to do variable replacement based on the browser's platform. [**get_version**](MetaApi.md#get_version) | **GET** /api/v3/version | Get the Flamenco version of this Manager -[**save_wizard_config**](MetaApi.md#save_wizard_config) | **POST** /api/v3/configuration/wizard | Update the Manager's configuration, and restart it in fully functional mode. +[**save_setup_assistant_config**](MetaApi.md#save_setup_assistant_config) | **POST** /api/v3/configuration/setup-assistant | Update the Manager's configuration, and restart it in fully functional mode. # **check_blender_exe_path** @@ -469,8 +469,8 @@ 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) -# **save_wizard_config** -> save_wizard_config() +# **save_setup_assistant_config** +> save_setup_assistant_config() Update the Manager's configuration, and restart it in fully functional mode. @@ -482,7 +482,7 @@ import time import flamenco.manager from flamenco.manager.api import meta_api from flamenco.manager.model.error import Error -from flamenco.manager.model.wizard_config import WizardConfig +from flamenco.manager.model.setup_assistant_config import SetupAssistantConfig 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. @@ -495,7 +495,7 @@ configuration = flamenco.manager.Configuration( with flamenco.manager.ApiClient() as api_client: # Create an instance of the API class api_instance = meta_api.MetaApi(api_client) - wizard_config = WizardConfig( + setup_assistant_config = SetupAssistantConfig( storage_location="storage_location_example", blender_executable=BlenderPathCheckResult( input="input_example", @@ -504,15 +504,15 @@ with flamenco.manager.ApiClient() as api_client: is_usable=True, cause="cause_example", ), - ) # WizardConfig | Configuration to save. (optional) + ) # SetupAssistantConfig | Configuration to save. (optional) # example passing only required values which don't have defaults set # and optional values try: # Update the Manager's configuration, and restart it in fully functional mode. - api_instance.save_wizard_config(wizard_config=wizard_config) + api_instance.save_setup_assistant_config(setup_assistant_config=setup_assistant_config) except flamenco.manager.ApiException as e: - print("Exception when calling MetaApi->save_wizard_config: %s\n" % e) + print("Exception when calling MetaApi->save_setup_assistant_config: %s\n" % e) ``` @@ -520,7 +520,7 @@ with flamenco.manager.ApiClient() as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **wizard_config** | [**WizardConfig**](WizardConfig.md)| Configuration to save. | [optional] + **setup_assistant_config** | [**SetupAssistantConfig**](SetupAssistantConfig.md)| Configuration to save. | [optional] ### Return type diff --git a/addon/flamenco/manager/docs/WizardConfig.md b/addon/flamenco/manager/docs/SetupAssistantConfig.md similarity index 89% rename from addon/flamenco/manager/docs/WizardConfig.md rename to addon/flamenco/manager/docs/SetupAssistantConfig.md index aabc7b59..b8539003 100644 --- a/addon/flamenco/manager/docs/WizardConfig.md +++ b/addon/flamenco/manager/docs/SetupAssistantConfig.md @@ -1,6 +1,6 @@ -# WizardConfig +# SetupAssistantConfig -Configuration obtained from the First-Time Wizard. +Configuration obtained from the Setup Assistant. ## Properties Name | Type | Description | Notes diff --git a/addon/flamenco/manager/model/wizard_config.py b/addon/flamenco/manager/model/setup_assistant_config.py similarity index 98% rename from addon/flamenco/manager/model/wizard_config.py rename to addon/flamenco/manager/model/setup_assistant_config.py index 1870b9cd..fd0063b0 100644 --- a/addon/flamenco/manager/model/wizard_config.py +++ b/addon/flamenco/manager/model/setup_assistant_config.py @@ -34,7 +34,7 @@ def lazy_import(): globals()['BlenderPathCheckResult'] = BlenderPathCheckResult -class WizardConfig(ModelNormal): +class SetupAssistantConfig(ModelNormal): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech @@ -109,7 +109,7 @@ class WizardConfig(ModelNormal): @classmethod @convert_js_args_to_python_args def _from_openapi_data(cls, storage_location, blender_executable, *args, **kwargs): # noqa: E501 - """WizardConfig - a model defined in OpenAPI + """SetupAssistantConfig - a model defined in OpenAPI Args: storage_location (str): Directory used for job file storage. @@ -196,7 +196,7 @@ class WizardConfig(ModelNormal): @convert_js_args_to_python_args def __init__(self, storage_location, blender_executable, *args, **kwargs): # noqa: E501 - """WizardConfig - a model defined in OpenAPI + """SetupAssistantConfig - a model defined in OpenAPI Args: storage_location (str): Directory used for job file storage. diff --git a/addon/flamenco/manager/models/__init__.py b/addon/flamenco/manager/models/__init__.py index 31880d83..fa396043 100644 --- a/addon/flamenco/manager/models/__init__.py +++ b/addon/flamenco/manager/models/__init__.py @@ -43,6 +43,7 @@ from flamenco.manager.model.path_check_input import PathCheckInput from flamenco.manager.model.path_check_result import PathCheckResult from flamenco.manager.model.registered_worker import RegisteredWorker from flamenco.manager.model.security_error import SecurityError +from flamenco.manager.model.setup_assistant_config import SetupAssistantConfig from flamenco.manager.model.shaman_checkout import ShamanCheckout from flamenco.manager.model.shaman_checkout_result import ShamanCheckoutResult from flamenco.manager.model.shaman_file_spec import ShamanFileSpec @@ -67,7 +68,6 @@ from flamenco.manager.model.task_status_change import TaskStatusChange from flamenco.manager.model.task_summary import TaskSummary from flamenco.manager.model.task_update import TaskUpdate from flamenco.manager.model.task_worker import TaskWorker -from flamenco.manager.model.wizard_config import WizardConfig from flamenco.manager.model.worker import Worker from flamenco.manager.model.worker_all_of import WorkerAllOf from flamenco.manager.model.worker_list import WorkerList diff --git a/addon/flamenco/manager_README.md b/addon/flamenco/manager_README.md index 740b3aee..ae039eb6 100644 --- a/addon/flamenco/manager_README.md +++ b/addon/flamenco/manager_README.md @@ -95,7 +95,7 @@ Class | Method | HTTP request | Description *MetaApi* | [**get_configuration_file**](flamenco/manager/docs/MetaApi.md#get_configuration_file) | **GET** /api/v3/configuration/file | Retrieve the configuration of Flamenco Manager. *MetaApi* | [**get_variables**](flamenco/manager/docs/MetaApi.md#get_variables) | **GET** /api/v3/configuration/variables/{audience}/{platform} | Get the variables of this Manager. Used by the Blender add-on to recognise two-way variables, and for the web interface to do variable replacement based on the browser's platform. *MetaApi* | [**get_version**](flamenco/manager/docs/MetaApi.md#get_version) | **GET** /api/v3/version | Get the Flamenco version of this Manager -*MetaApi* | [**save_wizard_config**](flamenco/manager/docs/MetaApi.md#save_wizard_config) | **POST** /api/v3/configuration/wizard | Update the Manager's configuration, and restart it in fully functional mode. +*MetaApi* | [**save_setup_assistant_config**](flamenco/manager/docs/MetaApi.md#save_setup_assistant_config) | **POST** /api/v3/configuration/setup-assistant | Update the Manager's configuration, and restart it in fully functional mode. *ShamanApi* | [**shaman_checkout**](flamenco/manager/docs/ShamanApi.md#shaman_checkout) | **POST** /api/v3/shaman/checkout/create | Create a directory, and symlink the required files into it. The files must all have been uploaded to Shaman before calling this endpoint. *ShamanApi* | [**shaman_checkout_requirements**](flamenco/manager/docs/ShamanApi.md#shaman_checkout_requirements) | **POST** /api/v3/shaman/checkout/requirements | Checks a Shaman Requirements file, and reports which files are unknown. *ShamanApi* | [**shaman_file_store**](flamenco/manager/docs/ShamanApi.md#shaman_file_store) | **POST** /api/v3/shaman/files/{checksum}/{filesize} | Store a new file on the Shaman server. Note that the Shaman server can forcibly close the HTTP connection when another client finishes uploading the exact same file, to prevent double uploads. The file's contents should be sent in the request body. @@ -152,6 +152,7 @@ Class | Method | HTTP request | Description - [PathCheckResult](flamenco/manager/docs/PathCheckResult.md) - [RegisteredWorker](flamenco/manager/docs/RegisteredWorker.md) - [SecurityError](flamenco/manager/docs/SecurityError.md) + - [SetupAssistantConfig](flamenco/manager/docs/SetupAssistantConfig.md) - [ShamanCheckout](flamenco/manager/docs/ShamanCheckout.md) - [ShamanCheckoutResult](flamenco/manager/docs/ShamanCheckoutResult.md) - [ShamanFileSpec](flamenco/manager/docs/ShamanFileSpec.md) @@ -176,7 +177,6 @@ Class | Method | HTTP request | Description - [TaskSummary](flamenco/manager/docs/TaskSummary.md) - [TaskUpdate](flamenco/manager/docs/TaskUpdate.md) - [TaskWorker](flamenco/manager/docs/TaskWorker.md) - - [WizardConfig](flamenco/manager/docs/WizardConfig.md) - [Worker](flamenco/manager/docs/Worker.md) - [WorkerAllOf](flamenco/manager/docs/WorkerAllOf.md) - [WorkerList](flamenco/manager/docs/WorkerList.md) diff --git a/internal/worker/mocks/client.gen.go b/internal/worker/mocks/client.gen.go index b735284e..e4600538 100644 --- a/internal/worker/mocks/client.gen.go +++ b/internal/worker/mocks/client.gen.go @@ -656,44 +656,44 @@ func (mr *MockFlamencoClientMockRecorder) RequestWorkerStatusChangeWithResponse( return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RequestWorkerStatusChangeWithResponse", reflect.TypeOf((*MockFlamencoClient)(nil).RequestWorkerStatusChangeWithResponse), varargs...) } -// SaveWizardConfigWithBodyWithResponse mocks base method. -func (m *MockFlamencoClient) SaveWizardConfigWithBodyWithResponse(arg0 context.Context, arg1 string, arg2 io.Reader, arg3 ...api.RequestEditorFn) (*api.SaveWizardConfigResponse, error) { +// SaveSetupAssistantConfigWithBodyWithResponse mocks base method. +func (m *MockFlamencoClient) SaveSetupAssistantConfigWithBodyWithResponse(arg0 context.Context, arg1 string, arg2 io.Reader, arg3 ...api.RequestEditorFn) (*api.SaveSetupAssistantConfigResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1, arg2} for _, a := range arg3 { varargs = append(varargs, a) } - ret := m.ctrl.Call(m, "SaveWizardConfigWithBodyWithResponse", varargs...) - ret0, _ := ret[0].(*api.SaveWizardConfigResponse) + ret := m.ctrl.Call(m, "SaveSetupAssistantConfigWithBodyWithResponse", varargs...) + ret0, _ := ret[0].(*api.SaveSetupAssistantConfigResponse) ret1, _ := ret[1].(error) return ret0, ret1 } -// SaveWizardConfigWithBodyWithResponse indicates an expected call of SaveWizardConfigWithBodyWithResponse. -func (mr *MockFlamencoClientMockRecorder) SaveWizardConfigWithBodyWithResponse(arg0, arg1, arg2 interface{}, arg3 ...interface{}) *gomock.Call { +// SaveSetupAssistantConfigWithBodyWithResponse indicates an expected call of SaveSetupAssistantConfigWithBodyWithResponse. +func (mr *MockFlamencoClientMockRecorder) SaveSetupAssistantConfigWithBodyWithResponse(arg0, arg1, arg2 interface{}, arg3 ...interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() varargs := append([]interface{}{arg0, arg1, arg2}, arg3...) - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SaveWizardConfigWithBodyWithResponse", reflect.TypeOf((*MockFlamencoClient)(nil).SaveWizardConfigWithBodyWithResponse), varargs...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SaveSetupAssistantConfigWithBodyWithResponse", reflect.TypeOf((*MockFlamencoClient)(nil).SaveSetupAssistantConfigWithBodyWithResponse), varargs...) } -// SaveWizardConfigWithResponse mocks base method. -func (m *MockFlamencoClient) SaveWizardConfigWithResponse(arg0 context.Context, arg1 api.SaveWizardConfigJSONRequestBody, arg2 ...api.RequestEditorFn) (*api.SaveWizardConfigResponse, error) { +// SaveSetupAssistantConfigWithResponse mocks base method. +func (m *MockFlamencoClient) SaveSetupAssistantConfigWithResponse(arg0 context.Context, arg1 api.SaveSetupAssistantConfigJSONRequestBody, arg2 ...api.RequestEditorFn) (*api.SaveSetupAssistantConfigResponse, error) { m.ctrl.T.Helper() varargs := []interface{}{arg0, arg1} for _, a := range arg2 { varargs = append(varargs, a) } - ret := m.ctrl.Call(m, "SaveWizardConfigWithResponse", varargs...) - ret0, _ := ret[0].(*api.SaveWizardConfigResponse) + ret := m.ctrl.Call(m, "SaveSetupAssistantConfigWithResponse", varargs...) + ret0, _ := ret[0].(*api.SaveSetupAssistantConfigResponse) ret1, _ := ret[1].(error) return ret0, ret1 } -// SaveWizardConfigWithResponse indicates an expected call of SaveWizardConfigWithResponse. -func (mr *MockFlamencoClientMockRecorder) SaveWizardConfigWithResponse(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { +// SaveSetupAssistantConfigWithResponse indicates an expected call of SaveSetupAssistantConfigWithResponse. +func (mr *MockFlamencoClientMockRecorder) SaveSetupAssistantConfigWithResponse(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, "SaveWizardConfigWithResponse", reflect.TypeOf((*MockFlamencoClient)(nil).SaveWizardConfigWithResponse), varargs...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SaveSetupAssistantConfigWithResponse", reflect.TypeOf((*MockFlamencoClient)(nil).SaveSetupAssistantConfigWithResponse), varargs...) } // ScheduleTaskWithResponse mocks base method. diff --git a/pkg/api/openapi_client.gen.go b/pkg/api/openapi_client.gen.go index 33af3386..20534dd6 100644 --- a/pkg/api/openapi_client.gen.go +++ b/pkg/api/openapi_client.gen.go @@ -111,14 +111,14 @@ type ClientInterface interface { // GetConfigurationFile request GetConfigurationFile(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + // SaveSetupAssistantConfig request with any body + SaveSetupAssistantConfigWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + SaveSetupAssistantConfig(ctx context.Context, body SaveSetupAssistantConfigJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + // GetVariables request GetVariables(ctx context.Context, audience ManagerVariableAudience, platform string, reqEditors ...RequestEditorFn) (*http.Response, error) - // SaveWizardConfig request with any body - SaveWizardConfigWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) - - SaveWizardConfig(ctx context.Context, body SaveWizardConfigJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) - // SubmitJob request with any body SubmitJobWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -332,6 +332,30 @@ func (c *Client) GetConfigurationFile(ctx context.Context, reqEditors ...Request return c.Client.Do(req) } +func (c *Client) SaveSetupAssistantConfigWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSaveSetupAssistantConfigRequestWithBody(c.Server, contentType, body) + 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) SaveSetupAssistantConfig(ctx context.Context, body SaveSetupAssistantConfigJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSaveSetupAssistantConfigRequest(c.Server, body) + 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) GetVariables(ctx context.Context, audience ManagerVariableAudience, platform string, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewGetVariablesRequest(c.Server, audience, platform) if err != nil { @@ -344,30 +368,6 @@ func (c *Client) GetVariables(ctx context.Context, audience ManagerVariableAudie return c.Client.Do(req) } -func (c *Client) SaveWizardConfigWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewSaveWizardConfigRequestWithBody(c.Server, contentType, body) - 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) SaveWizardConfig(ctx context.Context, body SaveWizardConfigJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewSaveWizardConfigRequest(c.Server, body) - 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) SubmitJobWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewSubmitJobRequestWithBody(c.Server, contentType, body) if err != nil { @@ -1093,6 +1093,46 @@ func NewGetConfigurationFileRequest(server string) (*http.Request, error) { return req, nil } +// NewSaveSetupAssistantConfigRequest calls the generic SaveSetupAssistantConfig builder with application/json body +func NewSaveSetupAssistantConfigRequest(server string, body SaveSetupAssistantConfigJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewSaveSetupAssistantConfigRequestWithBody(server, "application/json", bodyReader) +} + +// NewSaveSetupAssistantConfigRequestWithBody generates requests for SaveSetupAssistantConfig with any type of body +func NewSaveSetupAssistantConfigRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/api/v3/configuration/setup-assistant") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + // NewGetVariablesRequest generates requests for GetVariables func NewGetVariablesRequest(server string, audience ManagerVariableAudience, platform string) (*http.Request, error) { var err error @@ -1134,46 +1174,6 @@ func NewGetVariablesRequest(server string, audience ManagerVariableAudience, pla return req, nil } -// NewSaveWizardConfigRequest calls the generic SaveWizardConfig builder with application/json body -func NewSaveWizardConfigRequest(server string, body SaveWizardConfigJSONRequestBody) (*http.Request, error) { - var bodyReader io.Reader - buf, err := json.Marshal(body) - if err != nil { - return nil, err - } - bodyReader = bytes.NewReader(buf) - return NewSaveWizardConfigRequestWithBody(server, "application/json", bodyReader) -} - -// NewSaveWizardConfigRequestWithBody generates requests for SaveWizardConfig with any type of body -func NewSaveWizardConfigRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { - var err error - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/api/v3/configuration/wizard") - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } - - req, err := http.NewRequest("POST", queryURL.String(), body) - if err != nil { - return nil, err - } - - req.Header.Add("Content-Type", contentType) - - return req, nil -} - // NewSubmitJobRequest calls the generic SubmitJob builder with application/json body func NewSubmitJobRequest(server string, body SubmitJobJSONRequestBody) (*http.Request, error) { var bodyReader io.Reader @@ -2503,14 +2503,14 @@ type ClientWithResponsesInterface interface { // GetConfigurationFile request GetConfigurationFileWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetConfigurationFileResponse, error) + // SaveSetupAssistantConfig request with any body + SaveSetupAssistantConfigWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SaveSetupAssistantConfigResponse, error) + + SaveSetupAssistantConfigWithResponse(ctx context.Context, body SaveSetupAssistantConfigJSONRequestBody, reqEditors ...RequestEditorFn) (*SaveSetupAssistantConfigResponse, error) + // GetVariables request GetVariablesWithResponse(ctx context.Context, audience ManagerVariableAudience, platform string, reqEditors ...RequestEditorFn) (*GetVariablesResponse, error) - // SaveWizardConfig request with any body - SaveWizardConfigWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SaveWizardConfigResponse, error) - - SaveWizardConfigWithResponse(ctx context.Context, body SaveWizardConfigJSONRequestBody, reqEditors ...RequestEditorFn) (*SaveWizardConfigResponse, error) - // SubmitJob request with any body SubmitJobWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SubmitJobResponse, error) @@ -2756,6 +2756,28 @@ func (r GetConfigurationFileResponse) StatusCode() int { return 0 } +type SaveSetupAssistantConfigResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r SaveSetupAssistantConfigResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r SaveSetupAssistantConfigResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + type GetVariablesResponse struct { Body []byte HTTPResponse *http.Response @@ -2778,28 +2800,6 @@ func (r GetVariablesResponse) StatusCode() int { return 0 } -type SaveWizardConfigResponse struct { - Body []byte - HTTPResponse *http.Response - JSONDefault *Error -} - -// Status returns HTTPResponse.Status -func (r SaveWizardConfigResponse) Status() string { - if r.HTTPResponse != nil { - return r.HTTPResponse.Status - } - return http.StatusText(0) -} - -// StatusCode returns HTTPResponse.StatusCode -func (r SaveWizardConfigResponse) StatusCode() int { - if r.HTTPResponse != nil { - return r.HTTPResponse.StatusCode - } - return 0 -} - type SubmitJobResponse struct { Body []byte HTTPResponse *http.Response @@ -3631,6 +3631,23 @@ func (c *ClientWithResponses) GetConfigurationFileWithResponse(ctx context.Conte return ParseGetConfigurationFileResponse(rsp) } +// SaveSetupAssistantConfigWithBodyWithResponse request with arbitrary body returning *SaveSetupAssistantConfigResponse +func (c *ClientWithResponses) SaveSetupAssistantConfigWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SaveSetupAssistantConfigResponse, error) { + rsp, err := c.SaveSetupAssistantConfigWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseSaveSetupAssistantConfigResponse(rsp) +} + +func (c *ClientWithResponses) SaveSetupAssistantConfigWithResponse(ctx context.Context, body SaveSetupAssistantConfigJSONRequestBody, reqEditors ...RequestEditorFn) (*SaveSetupAssistantConfigResponse, error) { + rsp, err := c.SaveSetupAssistantConfig(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseSaveSetupAssistantConfigResponse(rsp) +} + // GetVariablesWithResponse request returning *GetVariablesResponse func (c *ClientWithResponses) GetVariablesWithResponse(ctx context.Context, audience ManagerVariableAudience, platform string, reqEditors ...RequestEditorFn) (*GetVariablesResponse, error) { rsp, err := c.GetVariables(ctx, audience, platform, reqEditors...) @@ -3640,23 +3657,6 @@ func (c *ClientWithResponses) GetVariablesWithResponse(ctx context.Context, audi return ParseGetVariablesResponse(rsp) } -// SaveWizardConfigWithBodyWithResponse request with arbitrary body returning *SaveWizardConfigResponse -func (c *ClientWithResponses) SaveWizardConfigWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SaveWizardConfigResponse, error) { - rsp, err := c.SaveWizardConfigWithBody(ctx, contentType, body, reqEditors...) - if err != nil { - return nil, err - } - return ParseSaveWizardConfigResponse(rsp) -} - -func (c *ClientWithResponses) SaveWizardConfigWithResponse(ctx context.Context, body SaveWizardConfigJSONRequestBody, reqEditors ...RequestEditorFn) (*SaveWizardConfigResponse, error) { - rsp, err := c.SaveWizardConfig(ctx, body, reqEditors...) - if err != nil { - return nil, err - } - return ParseSaveWizardConfigResponse(rsp) -} - // SubmitJobWithBodyWithResponse request with arbitrary body returning *SubmitJobResponse func (c *ClientWithResponses) SubmitJobWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SubmitJobResponse, error) { rsp, err := c.SubmitJobWithBody(ctx, contentType, body, reqEditors...) @@ -4227,6 +4227,32 @@ func ParseGetConfigurationFileResponse(rsp *http.Response) (*GetConfigurationFil return response, nil } +// ParseSaveSetupAssistantConfigResponse parses an HTTP response from a SaveSetupAssistantConfigWithResponse call +func ParseSaveSetupAssistantConfigResponse(rsp *http.Response) (*SaveSetupAssistantConfigResponse, error) { + bodyBytes, err := ioutil.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &SaveSetupAssistantConfigResponse{ + 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 +} + // ParseGetVariablesResponse parses an HTTP response from a GetVariablesWithResponse call func ParseGetVariablesResponse(rsp *http.Response) (*GetVariablesResponse, error) { bodyBytes, err := ioutil.ReadAll(rsp.Body) @@ -4253,32 +4279,6 @@ func ParseGetVariablesResponse(rsp *http.Response) (*GetVariablesResponse, error return response, nil } -// ParseSaveWizardConfigResponse parses an HTTP response from a SaveWizardConfigWithResponse call -func ParseSaveWizardConfigResponse(rsp *http.Response) (*SaveWizardConfigResponse, error) { - bodyBytes, err := ioutil.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &SaveWizardConfigResponse{ - 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 -} - // ParseSubmitJobResponse parses an HTTP response from a SubmitJobWithResponse call func ParseSubmitJobResponse(rsp *http.Response) (*SubmitJobResponse, error) { bodyBytes, err := ioutil.ReadAll(rsp.Body) diff --git a/pkg/api/openapi_server.gen.go b/pkg/api/openapi_server.gen.go index 1ec784ff..4dc1b114 100644 --- a/pkg/api/openapi_server.gen.go +++ b/pkg/api/openapi_server.gen.go @@ -28,12 +28,12 @@ type ServerInterface interface { // Retrieve the configuration of Flamenco Manager. // (GET /api/v3/configuration/file) GetConfigurationFile(ctx echo.Context) error + // Update the Manager's configuration, and restart it in fully functional mode. + // (POST /api/v3/configuration/setup-assistant) + SaveSetupAssistantConfig(ctx echo.Context) error // Get the variables of this Manager. Used by the Blender add-on to recognise two-way variables, and for the web interface to do variable replacement based on the browser's platform. // (GET /api/v3/configuration/variables/{audience}/{platform}) GetVariables(ctx echo.Context, audience ManagerVariableAudience, platform string) error - // Update the Manager's configuration, and restart it in fully functional mode. - // (POST /api/v3/configuration/wizard) - SaveWizardConfig(ctx echo.Context) error // Submit a new job for Flamenco Manager to execute. // (POST /api/v3/jobs) SubmitJob(ctx echo.Context) error @@ -189,6 +189,15 @@ func (w *ServerInterfaceWrapper) GetConfigurationFile(ctx echo.Context) error { return err } +// SaveSetupAssistantConfig converts echo context to params. +func (w *ServerInterfaceWrapper) SaveSetupAssistantConfig(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.SaveSetupAssistantConfig(ctx) + return err +} + // GetVariables converts echo context to params. func (w *ServerInterfaceWrapper) GetVariables(ctx echo.Context) error { var err error @@ -213,15 +222,6 @@ func (w *ServerInterfaceWrapper) GetVariables(ctx echo.Context) error { return err } -// SaveWizardConfig converts echo context to params. -func (w *ServerInterfaceWrapper) SaveWizardConfig(ctx echo.Context) error { - var err error - - // Invoke the callback with all the unmarshalled arguments - err = w.Handler.SaveWizardConfig(ctx) - return err -} - // SubmitJob converts echo context to params. func (w *ServerInterfaceWrapper) SubmitJob(ctx echo.Context) error { var err error @@ -768,8 +768,8 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL router.POST(baseURL+"/api/v3/configuration/check/blender", wrapper.CheckBlenderExePath) router.POST(baseURL+"/api/v3/configuration/check/shared-storage", wrapper.CheckSharedStoragePath) router.GET(baseURL+"/api/v3/configuration/file", wrapper.GetConfigurationFile) + router.POST(baseURL+"/api/v3/configuration/setup-assistant", wrapper.SaveSetupAssistantConfig) router.GET(baseURL+"/api/v3/configuration/variables/:audience/:platform", wrapper.GetVariables) - router.POST(baseURL+"/api/v3/configuration/wizard", wrapper.SaveWizardConfig) router.POST(baseURL+"/api/v3/jobs", wrapper.SubmitJob) router.GET(baseURL+"/api/v3/jobs/last-rendered", wrapper.FetchGlobalLastRenderedInfo) router.POST(baseURL+"/api/v3/jobs/query", wrapper.QueryJobs) diff --git a/pkg/api/openapi_spec.gen.go b/pkg/api/openapi_spec.gen.go index f6c40b8a..69f6c366 100644 --- a/pkg/api/openapi_spec.gen.go +++ b/pkg/api/openapi_spec.gen.go @@ -18,184 +18,184 @@ 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 diff --git a/pkg/api/openapi_types.gen.go b/pkg/api/openapi_types.gen.go index 4d56c443..f73ed263 100644 --- a/pkg/api/openapi_types.gen.go +++ b/pkg/api/openapi_types.gen.go @@ -421,6 +421,14 @@ type SecurityError struct { Message string `json:"message"` } +// Configuration obtained from the Setup Assistant. +type SetupAssistantConfig struct { + BlenderExecutable BlenderPathCheckResult `json:"blenderExecutable"` + + // Directory used for job file storage. + StorageLocation string `json:"storageLocation"` +} + // Set of files with their SHA256 checksum, size in bytes, and desired location in the checkout directory. type ShamanCheckout struct { // Path where the Manager should create this checkout. It is relative to the Shaman checkout path as configured on the Manager. In older versions of the Shaman this was just the "checkout ID", but in this version it can be a path like `project-slug/scene-name/unique-ID`. @@ -656,14 +664,6 @@ type TaskWorker struct { Name string `json:"name"` } -// Configuration obtained from the First-Time Wizard. -type WizardConfig struct { - BlenderExecutable BlenderPathCheckResult `json:"blenderExecutable"` - - // Directory used for job file storage. - StorageLocation string `json:"storageLocation"` -} - // Worker defines model for Worker. type Worker struct { // Embedded struct due to allOf(#/components/schemas/WorkerSummary) @@ -749,8 +749,8 @@ type CheckBlenderExePathJSONBody PathCheckInput // CheckSharedStoragePathJSONBody defines parameters for CheckSharedStoragePath. type CheckSharedStoragePathJSONBody PathCheckInput -// SaveWizardConfigJSONBody defines parameters for SaveWizardConfig. -type SaveWizardConfigJSONBody WizardConfig +// SaveSetupAssistantConfigJSONBody defines parameters for SaveSetupAssistantConfig. +type SaveSetupAssistantConfigJSONBody SetupAssistantConfig // SubmitJobJSONBody defines parameters for SubmitJob. type SubmitJobJSONBody SubmittedJob @@ -806,8 +806,8 @@ type CheckBlenderExePathJSONRequestBody CheckBlenderExePathJSONBody // CheckSharedStoragePathJSONRequestBody defines body for CheckSharedStoragePath for application/json ContentType. type CheckSharedStoragePathJSONRequestBody CheckSharedStoragePathJSONBody -// SaveWizardConfigJSONRequestBody defines body for SaveWizardConfig for application/json ContentType. -type SaveWizardConfigJSONRequestBody SaveWizardConfigJSONBody +// SaveSetupAssistantConfigJSONRequestBody defines body for SaveSetupAssistantConfig for application/json ContentType. +type SaveSetupAssistantConfigJSONRequestBody SaveSetupAssistantConfigJSONBody // SubmitJobJSONRequestBody defines body for SubmitJob for application/json ContentType. type SubmitJobJSONRequestBody SubmitJobJSONBody diff --git a/web/app/src/manager-api/index.js b/web/app/src/manager-api/index.js index cf62b624..88637a99 100644 --- a/web/app/src/manager-api/index.js +++ b/web/app/src/manager-api/index.js @@ -42,6 +42,7 @@ import PathCheckInput from './model/PathCheckInput'; import PathCheckResult from './model/PathCheckResult'; import RegisteredWorker from './model/RegisteredWorker'; import SecurityError from './model/SecurityError'; +import SetupAssistantConfig from './model/SetupAssistantConfig'; import ShamanCheckout from './model/ShamanCheckout'; import ShamanCheckoutResult from './model/ShamanCheckoutResult'; import ShamanFileSpec from './model/ShamanFileSpec'; @@ -66,7 +67,6 @@ import TaskStatusChange from './model/TaskStatusChange'; import TaskSummary from './model/TaskSummary'; import TaskUpdate from './model/TaskUpdate'; import TaskWorker from './model/TaskWorker'; -import WizardConfig from './model/WizardConfig'; import Worker from './model/Worker'; import WorkerAllOf from './model/WorkerAllOf'; import WorkerList from './model/WorkerList'; @@ -297,6 +297,12 @@ export { */ SecurityError, + /** + * The SetupAssistantConfig model constructor. + * @property {module:model/SetupAssistantConfig} + */ + SetupAssistantConfig, + /** * The ShamanCheckout model constructor. * @property {module:model/ShamanCheckout} @@ -441,12 +447,6 @@ export { */ TaskWorker, - /** - * The WizardConfig model constructor. - * @property {module:model/WizardConfig} - */ - WizardConfig, - /** * The Worker model constructor. * @property {module:model/Worker} diff --git a/web/app/src/manager-api/manager/MetaApi.js b/web/app/src/manager-api/manager/MetaApi.js index 6fa73cd5..83bd6921 100644 --- a/web/app/src/manager-api/manager/MetaApi.js +++ b/web/app/src/manager-api/manager/MetaApi.js @@ -21,7 +21,7 @@ import ManagerVariable from '../model/ManagerVariable'; import ManagerVariableAudience from '../model/ManagerVariableAudience'; import PathCheckInput from '../model/PathCheckInput'; import PathCheckResult from '../model/PathCheckResult'; -import WizardConfig from '../model/WizardConfig'; +import SetupAssistantConfig from '../model/SetupAssistantConfig'; /** * Meta service. @@ -343,12 +343,12 @@ export default class MetaApi { /** * Update the Manager's configuration, and restart it in fully functional mode. * @param {Object} opts Optional parameters - * @param {module:model/WizardConfig} opts.wizardConfig Configuration to save. + * @param {module:model/SetupAssistantConfig} opts.setupAssistantConfig Configuration to save. * @return {Promise} a {@link https://www.promisejs.org/|Promise}, with an object containing HTTP response */ - saveWizardConfigWithHttpInfo(opts) { + saveSetupAssistantConfigWithHttpInfo(opts) { opts = opts || {}; - let postBody = opts['wizardConfig']; + let postBody = opts['setupAssistantConfig']; let pathParams = { }; @@ -364,7 +364,7 @@ export default class MetaApi { let accepts = ['application/json']; let returnType = null; return this.apiClient.callApi( - '/api/v3/configuration/wizard', 'POST', + '/api/v3/configuration/setup-assistant', 'POST', pathParams, queryParams, headerParams, formParams, postBody, authNames, contentTypes, accepts, returnType, null ); @@ -373,11 +373,11 @@ export default class MetaApi { /** * Update the Manager's configuration, and restart it in fully functional mode. * @param {Object} opts Optional parameters - * @param {module:model/WizardConfig} opts.wizardConfig Configuration to save. + * @param {module:model/SetupAssistantConfig} opts.setupAssistantConfig Configuration to save. * @return {Promise} a {@link https://www.promisejs.org/|Promise} */ - saveWizardConfig(opts) { - return this.saveWizardConfigWithHttpInfo(opts) + saveSetupAssistantConfig(opts) { + return this.saveSetupAssistantConfigWithHttpInfo(opts) .then(function(response_and_data) { return response_and_data.data; }); diff --git a/web/app/src/manager-api/model/WizardConfig.js b/web/app/src/manager-api/model/SetupAssistantConfig.js similarity index 67% rename from web/app/src/manager-api/model/WizardConfig.js rename to web/app/src/manager-api/model/SetupAssistantConfig.js index 07107d59..46ebb3da 100644 --- a/web/app/src/manager-api/model/WizardConfig.js +++ b/web/app/src/manager-api/model/SetupAssistantConfig.js @@ -15,21 +15,21 @@ import ApiClient from '../ApiClient'; import BlenderPathCheckResult from './BlenderPathCheckResult'; /** - * The WizardConfig model module. - * @module model/WizardConfig + * The SetupAssistantConfig model module. + * @module model/SetupAssistantConfig * @version 0.0.0 */ -class WizardConfig { +class SetupAssistantConfig { /** - * Constructs a new WizardConfig. - * Configuration obtained from the First-Time Wizard. - * @alias module:model/WizardConfig + * Constructs a new SetupAssistantConfig. + * Configuration obtained from the Setup Assistant. + * @alias module:model/SetupAssistantConfig * @param storageLocation {String} Directory used for job file storage. * @param blenderExecutable {module:model/BlenderPathCheckResult} */ constructor(storageLocation, blenderExecutable) { - WizardConfig.initialize(this, storageLocation, blenderExecutable); + SetupAssistantConfig.initialize(this, storageLocation, blenderExecutable); } /** @@ -43,15 +43,15 @@ class WizardConfig { } /** - * Constructs a WizardConfig from a plain JavaScript object, optionally creating a new instance. + * Constructs a SetupAssistantConfig from a plain JavaScript object, optionally creating a new instance. * Copies all relevant properties from data to obj if supplied or a new instance if not. * @param {Object} data The plain JavaScript object bearing properties of interest. - * @param {module:model/WizardConfig} obj Optional instance to populate. - * @return {module:model/WizardConfig} The populated WizardConfig instance. + * @param {module:model/SetupAssistantConfig} obj Optional instance to populate. + * @return {module:model/SetupAssistantConfig} The populated SetupAssistantConfig instance. */ static constructFromObject(data, obj) { if (data) { - obj = obj || new WizardConfig(); + obj = obj || new SetupAssistantConfig(); if (data.hasOwnProperty('storageLocation')) { obj['storageLocation'] = ApiClient.convertToType(data['storageLocation'], 'String'); @@ -70,17 +70,17 @@ class WizardConfig { * Directory used for job file storage. * @member {String} storageLocation */ -WizardConfig.prototype['storageLocation'] = undefined; +SetupAssistantConfig.prototype['storageLocation'] = undefined; /** * @member {module:model/BlenderPathCheckResult} blenderExecutable */ -WizardConfig.prototype['blenderExecutable'] = undefined; +SetupAssistantConfig.prototype['blenderExecutable'] = undefined; -export default WizardConfig; +export default SetupAssistantConfig;