diff --git a/addon/flamenco/manager/__init__.py b/addon/flamenco/manager/__init__.py index 56a47971..fdb1eb98 100644 --- a/addon/flamenco/manager/__init__.py +++ b/addon/flamenco/manager/__init__.py @@ -10,7 +10,7 @@ """ -__version__ = "1c752fd8" +__version__ = "7214a73e-dirty" # import ApiClient from flamenco.manager.api_client import ApiClient diff --git a/addon/flamenco/manager/api_client.py b/addon/flamenco/manager/api_client.py index ee78265d..ed70d975 100644 --- a/addon/flamenco/manager/api_client.py +++ b/addon/flamenco/manager/api_client.py @@ -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/1c752fd8 (Blender add-on)' + self.user_agent = 'Flamenco/7214a73e-dirty (Blender add-on)' def __enter__(self): return self diff --git a/addon/flamenco/manager/configuration.py b/addon/flamenco/manager/configuration.py index 1603f498..02f75374 100644 --- a/addon/flamenco/manager/configuration.py +++ b/addon/flamenco/manager/configuration.py @@ -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: 1c752fd8".\ + "SDK Package Version: 7214a73e-dirty".\ format(env=sys.platform, pyversion=sys.version) def get_host_settings(self): diff --git a/addon/flamenco/manager/docs/ManagerConfiguration.md b/addon/flamenco/manager/docs/ManagerConfiguration.md index 547b2d7d..345cae12 100644 --- a/addon/flamenco/manager/docs/ManagerConfiguration.md +++ b/addon/flamenco/manager/docs/ManagerConfiguration.md @@ -4,6 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**storage_location** | **str** | Directory used for job file storage. | **shaman_enabled** | **bool** | Whether the Shaman file transfer API is available. | **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] diff --git a/addon/flamenco/manager/model/manager_configuration.py b/addon/flamenco/manager/model/manager_configuration.py index c1ee4ebb..0f78ec0f 100644 --- a/addon/flamenco/manager/model/manager_configuration.py +++ b/addon/flamenco/manager/model/manager_configuration.py @@ -81,6 +81,7 @@ class ManagerConfiguration(ModelNormal): and the value is attribute type. """ return { + 'storage_location': (str,), # noqa: E501 'shaman_enabled': (bool,), # noqa: E501 } @@ -90,6 +91,7 @@ class ManagerConfiguration(ModelNormal): attribute_map = { + 'storage_location': 'storageLocation', # noqa: E501 'shaman_enabled': 'shamanEnabled', # noqa: E501 } @@ -100,10 +102,11 @@ class ManagerConfiguration(ModelNormal): @classmethod @convert_js_args_to_python_args - def _from_openapi_data(cls, shaman_enabled, *args, **kwargs): # noqa: E501 + def _from_openapi_data(cls, storage_location, shaman_enabled, *args, **kwargs): # noqa: E501 """ManagerConfiguration - a model defined in OpenAPI Args: + storage_location (str): Directory used for job file storage. shaman_enabled (bool): Whether the Shaman file transfer API is available. Keyword Args: @@ -164,6 +167,7 @@ class ManagerConfiguration(ModelNormal): self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + self.storage_location = storage_location self.shaman_enabled = shaman_enabled for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ @@ -185,10 +189,11 @@ class ManagerConfiguration(ModelNormal): ]) @convert_js_args_to_python_args - def __init__(self, shaman_enabled, *args, **kwargs): # noqa: E501 + def __init__(self, storage_location, shaman_enabled, *args, **kwargs): # noqa: E501 """ManagerConfiguration - a model defined in OpenAPI Args: + storage_location (str): Directory used for job file storage. shaman_enabled (bool): Whether the Shaman file transfer API is available. Keyword Args: @@ -247,6 +252,7 @@ class ManagerConfiguration(ModelNormal): self._configuration = _configuration self._visited_composed_classes = _visited_composed_classes + (self.__class__,) + self.storage_location = storage_location self.shaman_enabled = shaman_enabled for var_name, var_value in kwargs.items(): if var_name not in self.attribute_map and \ diff --git a/addon/flamenco/manager_README.md b/addon/flamenco/manager_README.md index fe8762f8..26ba7818 100644 --- a/addon/flamenco/manager_README.md +++ b/addon/flamenco/manager_README.md @@ -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: 1c752fd8 +- Package version: 7214a73e-dirty - Build package: org.openapitools.codegen.languages.PythonClientCodegen For more information, please visit [https://flamenco.io/](https://flamenco.io/) diff --git a/internal/manager/api_impl/api_impl.go b/internal/manager/api_impl/api_impl.go index 12aacd13..eed14638 100644 --- a/internal/manager/api_impl/api_impl.go +++ b/internal/manager/api_impl/api_impl.go @@ -76,6 +76,11 @@ type LogStorage interface { type ConfigService interface { VariableReplacer + + // EffectiveStoragePath returns the job storage path used by Flamenco. It's + // basically the configured storage path, but can be influenced by other + // options (like Shaman). + EffectiveStoragePath() string } type Shaman interface { diff --git a/internal/manager/api_impl/meta.go b/internal/manager/api_impl/meta.go index 38552bb7..e84650bd 100644 --- a/internal/manager/api_impl/meta.go +++ b/internal/manager/api_impl/meta.go @@ -20,6 +20,7 @@ func (f *Flamenco) GetVersion(e echo.Context) error { func (f *Flamenco) GetConfiguration(e echo.Context) error { return e.JSON(http.StatusOK, api.ManagerConfiguration{ - ShamanEnabled: f.isShamanEnabled(), + ShamanEnabled: f.isShamanEnabled(), + StorageLocation: f.config.EffectiveStoragePath(), }) } diff --git a/internal/manager/api_impl/mocks/api_impl_mock.gen.go b/internal/manager/api_impl/mocks/api_impl_mock.gen.go index 2b33d25d..4d50e734 100644 --- a/internal/manager/api_impl/mocks/api_impl_mock.gen.go +++ b/internal/manager/api_impl/mocks/api_impl_mock.gen.go @@ -323,6 +323,20 @@ func (m *MockConfigService) EXPECT() *MockConfigServiceMockRecorder { return m.recorder } +// EffectiveStoragePath mocks base method. +func (m *MockConfigService) EffectiveStoragePath() string { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "EffectiveStoragePath") + ret0, _ := ret[0].(string) + return ret0 +} + +// EffectiveStoragePath indicates an expected call of EffectiveStoragePath. +func (mr *MockConfigServiceMockRecorder) EffectiveStoragePath() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "EffectiveStoragePath", reflect.TypeOf((*MockConfigService)(nil).EffectiveStoragePath)) +} + // ExpandVariables mocks base method. func (m *MockConfigService) ExpandVariables(arg0 string, arg1 config.VariableAudience, arg2 config.VariablePlatform) string { m.ctrl.T.Helper() diff --git a/internal/manager/config/config.go b/internal/manager/config/config.go index a5499528..209483dc 100644 --- a/internal/manager/config/config.go +++ b/internal/manager/config/config.go @@ -251,9 +251,10 @@ func (c *Conf) processStorage() { } } -func (c *Conf) addImplicitVariables() { - c.implicitVariables = make(map[string]Variable) - +// EffectiveStoragePath returns the absolute path of the job storage directory. +// This is made from a combination of the configured job storage path and a +// Shaman-specific subpath (if enabled). +func (c *Conf) EffectiveStoragePath() string { var jobStorage string if c.Shaman.Enabled { jobStorage = c.Shaman.CheckoutPath() @@ -269,13 +270,20 @@ func (c *Conf) addImplicitVariables() { Err(err).Msg("unable to find absolute path of storage path") absPath = jobStorage } + + return absPath +} + +func (c *Conf) addImplicitVariables() { + c.implicitVariables = make(map[string]Variable) + c.implicitVariables["jobs"] = Variable{ IsTwoWay: false, Values: []VariableValue{ { Audience: VariableAudienceAll, Platform: VariablePlatformAll, - Value: absPath, + Value: c.EffectiveStoragePath(), }, }, } diff --git a/internal/manager/config/service.go b/internal/manager/config/service.go index df3f9c5d..c59df1de 100644 --- a/internal/manager/config/service.go +++ b/internal/manager/config/service.go @@ -24,10 +24,6 @@ func (s *Service) Load() error { return nil } -func (s *Service) ExpandVariables(valueToExpand string, audience VariableAudience, platform VariablePlatform) string { - return s.config.ExpandVariables(valueToExpand, audience, platform) -} - func (s *Service) Get() *Conf { return &s.config } @@ -43,3 +39,12 @@ func (s *Service) Save() error { log.Info().Str("filename", configFilename).Msg("configuration file written") return nil } + +// Expose some functions on Conf here, for easier mocking of functionality via interfaces. +// +func (s *Service) ExpandVariables(valueToExpand string, audience VariableAudience, platform VariablePlatform) string { + return s.config.ExpandVariables(valueToExpand, audience, platform) +} +func (s *Service) EffectiveStoragePath() string { + return s.config.EffectiveStoragePath() +} diff --git a/pkg/api/flamenco-manager.yaml b/pkg/api/flamenco-manager.yaml index 93e9f5a2..4a052f4f 100644 --- a/pkg/api/flamenco-manager.yaml +++ b/pkg/api/flamenco-manager.yaml @@ -457,10 +457,13 @@ components: ManagerConfiguration: type: object properties: + "storageLocation": + description: Directory used for job file storage. + type: string "shamanEnabled": description: Whether the Shaman file transfer API is available. type: boolean - required: [shamanEnabled] + required: [storageLocation, shamanEnabled] WorkerRegistration: type: object diff --git a/pkg/api/openapi_spec.gen.go b/pkg/api/openapi_spec.gen.go index f00bd9f8..e7d8be8c 100644 --- a/pkg/api/openapi_spec.gen.go +++ b/pkg/api/openapi_spec.gen.go @@ -45,68 +45,69 @@ var swaggerSpec = []string{ "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", + "oKBTvVkAAA==", } // 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 34021a66..bbe54222 100644 --- a/pkg/api/openapi_types.gen.go +++ b/pkg/api/openapi_types.gen.go @@ -229,6 +229,9 @@ type JobStatus string type ManagerConfiguration struct { // Whether the Shaman file transfer API is available. ShamanEnabled bool `json:"shamanEnabled"` + + // Directory used for job file storage. + StorageLocation string `json:"storageLocation"` } // RegisteredWorker defines model for RegisteredWorker.