OAPI: expose effective job storage path in configuration API

This commit is contained in:
Sybren A. Stüvel 2022-04-01 14:00:45 +02:00
parent 7214a73e19
commit 5f16201832
14 changed files with 125 additions and 78 deletions

View File

@ -10,7 +10,7 @@
"""
__version__ = "1c752fd8"
__version__ = "7214a73e-dirty"
# import ApiClient
from flamenco.manager.api_client import ApiClient

View File

@ -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

View File

@ -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):

View File

@ -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]

View File

@ -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 \

View File

@ -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/)

View File

@ -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 {

View File

@ -21,5 +21,6 @@ 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(),
StorageLocation: f.config.EffectiveStoragePath(),
})
}

View File

@ -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()

View File

@ -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(),
},
},
}

View File

@ -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()
}

View File

@ -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

View File

@ -45,68 +45,69 @@ var swaggerSpec = []string{
"O1heoFHQDqPTUgsL7IUW84XzQi5GmUDBRe6wXsUa5L/F3gUqPa9HkA5EpziAndr//Z9ryDuGrSfIpx0f",
"EaYTRXPBuY2A1A6UJ1ZcY+bMZeIoQEl0mYP1vyURSyg5zrigEc2PkrsQPRpFP1dQ4Q+uk4W47vwk/0zg",
"x04y0O17IL0H+JugVI5E4+7i0ShackzyxpnSYxfJmKCD977mmZKZmFea26DZMQtecPmVdJ4kDWbvFPwu",
"gJ3iUOZWZFZzaTLQ7OjkGCO22htN7g5D+0uGzNQPMBfGgoaU/MgQbZ6mLmcM6kLOjT1HfvaLPp24QyRX",
"mz1Rzq3T73BgojK75HpD1LKV2aEttZaniRLOmwJOPwq4s8bxmwpODS1GDVG7haeaGKMooagesYzWqdyh",
"zIYdhfh8CkmlhV1tcNVb+9/bHC9J7bMFJFeqCtSBXC6mMpRqQ7UmuwCh2ek3R7uPHrPETTRVMWJG/IKh",
"e7yyYCjyTcE4FFiuErKNPh1M/GptGrNmKUlrnQPGJOQwajPsyVw5Ei54dBjtPYpn+093kt2DeLa3t5fu",
"ZPH+oyyZHTx5ynd2Ez57HO+kj/dn6e6jx08PnsziJ7ODFB7N9tOD2e5TmDlA4heIDnf2d/fRg9NquZrP",
"XabWWerxXnywmzzei5/u7+5n6c5e/HTvYJbFj2ezx09nT2bJHt95dLBzkGR7PN3f33289yjeeXKQPOZP",
"nj6aHTxtl9o9QE+2Xh4kipwgAoNCkMvxlgvQVNvxlsvnvL2iRw1nwo59/TrnznDXZRRvoxoGYPbIDUu8",
"FYSUKdldZMKOJVO5S899/GTqYMPDwnWX3LBLl9i5F2+a7bDj52+iEYsrS6wXpobi8nnvUjlhgcWAC+8j",
"xyav5lOTgISx074p1ZjGx88veql8q/ReZLbMDgj3FyKH0xKSO3MDAj7qs+lubfoBzMbaqsZ3VBZZ40qo",
"evwrxMMHU+uCcYZ/EulTkWXgrBazCy7ZcsEtsrLxtiMnHF2gS5HnDKSptGOcr/y1aszc1pCd9yJ8IVav",
"5xbbsaRh9dDAlZCITHgLhfxAF+5tlUfaWKX5HIasKYMs+Va18ByULsQa42BkvuABDPumtgszCAPtzDoQ",
"R4C+jQ7kdMNIpLZbo6jcjsA/Crtow8etSD1iy4VIFixBcxZvIP2IKe2i7BFLoQSZ4qmLxOoKueN/ct5s",
"Gz912OFjqDu52iZZt7N3kBVU8kqqpcR8LVc8pRjeMawXubb7J2A/EDZY4P+BTM2vDjww0OjRbmMs8UBB",
"wycJED6Be9vM/D6/TKmkgbBXI25lWhWMM92ZVruUUZeVJHW10a/VHfS1izteICgs7nMNDAXNeRI/zD2D",
"d0lepZDSgpa8KmL3KWWgVcxGHx5GLLoLNep2z7LSMd+/VWrohLxvONZU3PP/Y33ufRnCW4xet7YXrPy3",
"GUl7UOzEsy5krklg0alaPVwdyL/Y+/Af7O9/+fDXD3/78F8f/vr3v3z47w9/+/Cf3T6Jw0ez/imCX+U8",
"KdLoMHrv/7zBmLeSV+ckhHtuT1bzxJ7zKhWqriE55vncaapx5tRk00sVG4rhd3b3JgiyWxs8+f5r92dp",
"okOnRJnmhWNvtDPecQomCj4Hc670+bVIQTlXiE+iUaQqW1aWTqngnQVJBeBoUqL/IQzOaVQfJVqkQaoj",
"40Y4Vo39xsc0JRroVpePdxRPm0Llts03zTGrY07A/XfYdVfdth7aOQa+PYz2JQ7fHtNgFdKNTq/PRxQI",
"m1JgU7szKrNtqTBQ+PNFw1Ac4XB4jSXigB9q3jE8iZaWxSvG/ZmL01EqLlMzA5mgN9VstvuY5WruzRG2",
"gQn7hfEnN75pYq3K1imi9XF4JWGcC+n7BmTqYl7A/OoLw5Lm/HeBB7Uukq29Ii48Ya+uQS+dbTCs1HAt",
"VGXyFe2lXrQpWYfizFzNQ4HvnDmkOn0qbrURJXUuE/fHxg5pJAUuCFzngg6rhqW2nixs2yEWqlgTd6iy",
"uakY+xvqkpBosOFXv7G+uO5UaKVeaTC4RKe0+HYjPU7FXL76WErUpcbzzUdj977tTpl0w24HWN2ya8st",
"PFtwOYdARR6F6Lw1FB9VTw6GAB1gWyGVbsLqHnC5A4O+0TWWa0tJF1/yKyxSmxygdMEHFo1d2lrZlJI0",
"C8aPVlnmLEHAtpKyYNn51GFN21siAue8CiXUrw1ox3tnbp0Jo8Hs+PmIldyYpdJp/Yq0g/odGbf1UN1R",
"e2dnkF54RsKNSFrDs7C2jG4cjkJmio6rpeWJbU+Im5NkdgbcKV+lcz/THE6nWR2eCTUdHgz+QI1IL7gu",
"WOErXkcnx9EoykUCPuvx63x98u313gD+crmczGXlorWpn2Om8zIf701mE5CThS3oxE7YvIetXy7qHGhH",
"O5PZZOZGqxIkL4UL7fAR5e3ImSkvxTRZP8Sak7FzEorPjl1U9zXY/mmXkz/KlxDU7mxWkxQkzudlmfty",
"zfTSEGiS5bskPXi6hpzrU1y6aDBv8jaSv6oouF4RxlSW6YJpWuw63SKWu7joJwzPorc9GF/JtFRCWnR6",
"c98zNgDY8KEBejMi2rooFvVdmQBNKVGgc3dvRf6k0tW90bHfZDCkHzYhKZ+CRF2D4iLzmwfk8C0ILblh",
"pkoSMFmV5ytGLbDYr+rDoWuRVjynrtnJWh/yvWBHR2YB/PAFq0/E+uJGxGacSVhin5ITmXXJ6HTzdCUP",
"xaQveS/rbkdq3gUviH3Rmjaed5PONi1VD8jMYf9WgHTNoLaHK6Cv+aDPC1ugsODTb4O7hXTtUg35L9vm",
"+h793l+q+FykNxtJ+AJssiAN7XZR/fQ+Em5XvgLqrToBGyjSqEPHu46R3/4+Socesc8O3Dm+YDymNmTk",
"3RZyS5Nk6v1S4TCvyd4JKzfJ7J+bXqsHI8V6x9ivdi6NhNVHk2v+5Xb38iwXWN9MuGSV8cewVlF9mv4S",
"xiVtFXemkLfL+UJnQ1aKhabaN3eMl21vR9D11F0gvgfkYfxPIC0LELpNrWvsP6krGvTDbCMLn9DnVBLe",
"lZBYSBn4MV0RqtH3jmdZ87OWOv/gbWBSG8C0M826RBkxl2OVZbdEMS7NzLKhuu4Po/3Pj5A+XUGT3ktU",
"fnrrjHFLs++4vupmKNywOhG6g9rPeO67/kjCUMVzb0DqwOBK4vUHWH2hgc0VXQtD8JMwS+QdHJEPqtR+",
"ic3q3NQ6P6UuDysA/xDKvLUMHlV2AdJSQdCXHZ001Gcfy6Yz/J4FUgNPV26Ug0f9Wb1SqGgZPhRX6yut",
"QX/fYVn0e0sGYsoSfN+2sbj9bDBmbPOMz1ukPl48KCRZti2rGuhO1WoDEcJyME46RbCg8QoUzB7UkHUX",
"CpD3+8Y10j63sGf/XH7P23PPNyJC3QhW99xwF6Q6g5FDSvE+HYR4W9IezPRkBZtyhGyoUtsX0ONcJTxH",
"08Zzc9/27Bp6u6nMQFStv++/wb0mC0irHM6oWffh8uru1wcCjMXvDnQLCpsM1ffKXzHu3xbE/KK+THQz",
"ivZne/dXeup1HweQPwFd1zaegxRkNPdnTwNt8iSAwjCpbO3p6MSQxGnEjKpf401t6N2aoq3jKTmTaklb",
"3d37tK6l1iIuHZYqtlxIDLsRO+pyxcuNc4UXzqVCO0va9pEa+4qg8wZ+hxp3qRLKlPECrgNlp46GTN/j",
"GY0vn4R1pXPWuk0FxQP87SWU+3cXnZ1s0kUfDwlJKNY1jI/2FmcLqGEt0bQmUNYeNagiZ/7sFz2ytxpd",
"MSKmoZ7YPmzUmS78fxS39Lo9hqdzaLsqRYJlku6peanVXIMxI38ty9+z1yzjIq803Olbao9iQKa9apgj",
"dw3dWTEXEZGa0B2cad0OOqVe6lv8Sf8WxQOdBfQXCTCk1zPZRHy+pfzT5XDBLvgAuvUIFOO6Xb1zcNDV",
"loeV5AYTnlOehB/2MN7R7D88AmcYjS/df8Q99KxyPmGvDbALs0bRtrHywvGZ2ucZkhJbqZUEM/mcalzP",
"6JJK58sFlIKaVZELeeWbN0lAPQXosMjSnQJPFOdeeZ6zBb8G+koLdUKSrfR9gzFkeImT53nzrZfWC7bG",
"goi6ZixOPUKcma4yITK9u0tcAw8bi27f67Ymo8vSBzUfod7rbS3J72BEgq3HIXyr2PPLMclRHNJeA/Ko",
"digkEsB8ry5t8fPSFWxtb+8FdWngL0z4Lw4obY3XeOIU183G7pT0Ixdnu2USPMLoVgj6ANuUw3dq08kF",
"YdHaG/r+hhV53qLQUQ+EN31f9+3fTN/jE/EL3JByOOKYTXpCbbxKwzMviGuB6Na3MvDzWMOotR56a9g6",
"aJUZfhTsF1i/VtLcSQisWlNgm1XbSzpvH1zrBq3boapKvx7y+WlQt7+zbTEPXjage2ZDZbnNcjcS+f9b",
"GEehRMZblDqE99c4/JXPFDLQrLnBQP4ZqYGe/k20O3vyJmpLStidiim3zFcsdnGCrbRLj/DDUO32TBO9",
"UdtJc2VkwHBK1nluFMEwqgAlgUFuEE7boRtCE6UFCbgAnuJRnSfhv49pmfEzLsfP3T7HrxFAFKBh5/5/",
"iIZKi7mQPMc1HfwJO858C3Cuui3DzdUaYZtWXiH91RjRNdnY1dtct+OScYEjUogruvK8xd5eecTGLzxi",
"0W1iuXUqrxILdmysBl70LURTLYiFdPo9rBcM43law6zdx/uViTyK1yCN3509uWu4F8eeIHaO/fd3DoIQ",
"tJ/ukoCC22TBYrBL8MLuydlppqk7bHybASGAd+KUHtidJmCuZRlTnEeBL7uQEvtb5ndoba2BreZ4wSu1",
"SsAgI2JwE5v141VP7yicuNioQofM8eyCmsvIunTJ4XfyuXgg9Ay+frfZ77DvFRZAuB2+RP3MlE5EnK9Y",
"kitDpZJvzs5OWKKkBPzeCRmwukrkDW8mpDALMD1+AYN3PLHM8AJ8GGkVXi9wU1JVuQiPJpjJG1lz9Qu8",
"oE3a5GUhhhAHWKzS1UZX2i37uCXa1GJIFl9Hcr/JoVKP7TTqnHsNPlTZ73IadO0JayDPJq09w16eoel9",
"qeL6WBbrQz9XoAWYUaeTb7TWGDXptY+ZANCjk+N+L2H3VE4VRSX9BRFn0oetqA14X94K+Hqi39HJ8QgX",
"QpFrme83hCUW9/eliptE1nTge37dvL35vwAAAP//0IX4BlJZAAA=",
"gJ3iUOZWZFZzaTLQ7OjkGCO22htNwvG+VZrP4VuV8HCq/LyJ9zDVcTLm/Ciu5SdP7lSx9VVGa7sLWcQf",
"YC6MBQ0puawhhXiauvQ0qHY5N/YcRadfX+qEOCK52uz0cm6dKQnHQCqzS643BEhbWTjaUmvkmoDkvKkV",
"9QOOO8spv6m21dBi1BC1W+OqiTGKEkogEMtoncodymzYUYjPp5BUWtjVhqhga1d/m48nBXm2gORKVYGS",
"k0v7VIZCbaisZRcgNDv95mj30WOWuImmKkbMiF8wS4hXFgwF2SkYhwLLvXDXmWfiV2szpjWjTAbC+XrM",
"dw6jNpmfzBXpSHQY7T2KZ/tPd5Ldg3i2t7eX7mTx/qMsmR08ecp3dhM+exzvpI/3Z+nuo8dPD57M4iez",
"gxQezfbTg9nuU5g5QOIXiA539nf3MVig1XI1n7uksLPU4734YDd5vBc/3d/dz9Kdvfjp3sEsix/PZo+f",
"zp7Mkj2+8+hg5yDJ9ni6v7/7eO9RvPPkIHnMnzx9NDt42i61e4BOc70SSRQ5QQQGNSeXTi4XoKmM5I2k",
"T6979ZUazoQd+1J5zp2PqCs23hw2DMBElRuWeIMLKVOyu8iEHUum8hQ086GaqeMaDwvXXXLDLl0O6V68",
"abbDjp+/iUYsriyxXpgaChO29t6csMC6w4V3x2OTV/OpSUDC2GnflMpZ4+PnF72qQav0XmS2TEQI9xci",
"h9MSkjvTEAI+6rPpbm36AczGMq7Gd1SBWeNKqFD9K8TDx23rgnGGfxLpU5Fl4KwWswsu2XLBLbKycewj",
"JxxdoEuR5wykqbRjnC8ytmrM3NaQnfcifCFWr6cx27GkYfXQwJWQiEx4C4X8QA/ubZVHuuPP+6wpgyyp",
"3XmtK12INcbBJGDBAxj2TW0XZhAG2pl1IC8wKuna6ED6uB6bLHhtt0ZRuR2BfxR20UaqW5F6xJYLkSxY",
"guYs3kD6EVPaBfQjlkIJMsUDHomFHHLH/+S82TZ+6rDDx1B3crXN525n7yABqeSVVEuJqWGueErpgmNY",
"L3Jt90/AfiBs8CzhBzI1vzrwwECjR7uNscQDBQ2fJED4BO5tM/P7/DKlkgbCXo24lWlVMM50Z1rtUkZd",
"VpLU1Ua/VnfQ1y7ueIGg8ByBa2AoaM6T+GHuGbxL8ip1qZdb0JJXRew+pQy0itnow8OIRXehRt3uWVY6",
"5vu3Sg0dxvcNx5qKe/5/rM+9L0N4i9HrlhGDhwxtRtKeSTvxrGumaxJYdApkD1dy8i/2PvwH+/tfPvz1",
"w98+/NeHv/79Lx/++8PfPvxntyXj8NGsf2DhVzlPijQ6jN77P28w5q3k1TkJ4Z7bk9U8see8SoWqy1WO",
"eT53mmqcOTXZ9FLFhmL4nd29CYLsliFPvv/a/Vma6NApUaZ54dgb7Yx3nIKJgs/BnCt9fi1SUM4V4pNo",
"FKnKlpWlAzF4Z0FSrTmalOh/CINzGtVHiRZpkOrIuBGOVWO/8TFNiQa61eXjHXXapia6bZ9Pc6LrmBNw",
"/x123VUirod2TpxvD6N9icN34jRYhXSj01b0EbXIpurYlAmNymxblQzUGH19MhRHOBxeYzU64IeadwwP",
"vaVl8Ypxf7zjdJTq2NQ3QSboTTWb7T5muZp7c4QdZ8J+Yfwhke/PWKuydYpofRxeSRjnQvoWBZm6mBcw",
"v/rCsKQ5al7gmbCLZGuviAtP2Ktr0EtnGwwrNVwLVZl8RXupF22q46E4M1fzUOA7Zw6pTkuMW21ESZ3L",
"xP0JtUMaSYELAte5oHOxYamtJwvbNqOFiuPEHapsbqr7/oa6JCQabPjVb6wvrjsVWqlXGgwu0Sktvt1I",
"j1Mxl68+lhJ1qfF88yncvW+7UybdsNsBVrfs2nILzxZcziFQ/EchOm8NxUfVk4MhQAfYVkilm7C6B1zu",
"wKBvdI3l2lLSxZf8CovUJgcoXfCBRWOXtlY2pSTNgvGjVZY5SxCwraQsWHY+dVjT9paIwDmvQgn1awPa",
"8d6ZW2fCaDA7fj5iJTdmqXRavyLtoNZKxm09VHfU3tkZpBcex3AjktbwLKwtoxuHo5CZopNxaXli28Po",
"5tCanQF3ylfp3M80h9NpVodnQk2HZ5A/UM/TC64LVviK19HJcTSKcpGAz3r8Ol+ffHu9N4C/XC4nc1m5",
"aG3q55jpvMzHe5PZBORkYQs6HBQ272Hrl4s6Z+fRzmQ2mbnRqgTJS+FCO3xEeTtyZspLMU3Wz8vmZOyc",
"hOKzYxfVfQ22f7Dm5I/yJQS1O5vVJAWJ83lZ5r5cM700BJpk+S5JDx7kIef6FJcuGsybvI3kryoKrleE",
"MZVlumCabr5OY4rlLi76CcOz6G0PxlcyLZWQFp3e3LenDQA2fGiA3oyIti6KRX1XJkBTShToiN9bkT+p",
"dHVvdOz3Mwzph/1OyqcgUdeguMj85gE5fAtCS26YqZIETFbl+YpRty22xvpw6FqkFc+pQXey1vJ8L9jR",
"kVkAP3zB6hOxvrgRsRlnEpZ0lKv0QDI6jUNdyUMx6Uvey7qxkvqEwQtiX7SmjefdpLNN99YDMnPYKhYg",
"XTOobRcL6Gs+aCnDbiss+PQ77m4hXbtUQ/7Lto+/R7/3lyo+F+nNRhK+AJssSEO7DVs/vY+E25WvgHqr",
"TsAGijTq0PGuY+S3v4/SoUfsswN3ji8Yj6njGXm3hdzSJJl6v1Q4zGuyd8LKTTL756at68FIsd6c9qud",
"SyNh9dHkmn+53b08ywXWNxMuWWX8MaxVVJ+mv4RxSVvFnSnk7XK+0NmQlWKhqfbNHeNl29sRdD11F4jv",
"AXkY/xNIywKEblPrGvtP6ooG/TDbyMIn9DmVhHclJBZSBn5MV4Rq9L3jWdb8rKXOP3gbmNQGMO1Msy5R",
"RszlWGXZLVGMSzOzbKiu+8No//MjpE9X0KT3EpWf3jpj3NLsO66vuhkKN6xOhO6g9jOe+wZDkjBU8dwb",
"kDowuJJ40wJWX2hgc0U30BD8JMwSeQdH5IMqtV9iszo3tc5PqcvDCsA/hDJvLYNHlV2AtFQQ9GVHJw31",
"2ceyaUK/Z4HUwNOVG+XgUX9WrxQqWoYPxdX6SmvQ33dYFv3ekoGYsgTft20sbj8bjBnbPOPzFqmPFw8K",
"SZZtd6wGur612kCEsByMk04RLGi8AgWzBzVk3YUC5P2+cY20zy3s2T+X3/P23PONiFA3gtU9N9wFqc5g",
"5JBSvE8HId6WtAczPVnBphwhG6rU9gX0OFcJz9G08dzctz27ht5uKjMQVes/LbDBvSYLSKsczqhZ9+Hy",
"6u6HDgKMxU8cdAsKmwzV98rfZu5fTMT8or63dDOK9md791d66nUfB5A/AV3XNp6DFGQ092dPAx35JIDC",
"MKls7enoxJDEacSMql/jpXDoXdCireMpOZNqSVvd3fu0rqXWIi4dliq2XEgMuxE76nLFe5RzhXfbpUI7",
"S9r2kRr7iqDzBn6HGnepEsqU8QKuA2WnjoZM3+MZjS+fhHWlc9a6TQXFA/ztJZT7dxednWzSRR8PCUko",
"1jWMj/YWZwuoYS3RtCZQ1h41qCJn/uwXPbK3Gl0xIqahntg+bNSZLvx/FLf0uj2Gp3NouypFgmWS7ql5",
"qdVcgzEjfwPMX+nXLOMirzTc6Vtqj2JApr1qmCN3Dd1ZMRcRkZrQHZxp3Q46pV7qW/xJ/xbFA50F9BcJ",
"MKTXM9lEfL6l/NPlcMEu+AC69QgU47pdvXNw0NWWh5XkBhOeU56E3xAx3tHsPzwCZxiNL91/xD30rHI+",
"Ya8NsAuzRtG2sfLC8Zna5xmSEluplQQz+ZxqXM/okkrnIwmUgppVkQt55Zs3SUA9BeiwyNKdAk8U5155",
"nrMFvwb6IAx1QpKt9H2DMWR4X5TnefNZmdYLtsaCiLpmLE49QpyZrjIhMr27S1wDDxuLbt/rtiajy9IH",
"NR+h3uttLcnvYESCrcchfKvY88sxyVEc0l4D8qh2KCQSwHyvLm3x89IVbG1v7wV1aeAvTPiPGyhtjdd4",
"4hTXzcbulPQjF2e7ZRI8wuhWCPoA25TDd2rTyQVh0dob+tSHFXneotBRD4Q3fV/37d9M3+MT8QvckHI4",
"4phNekJtvErDMy+Ia4Ho1rcy8Etcw6i1Hnpr2DpolRl+f+wXWL9W0txJCKxaU2CbVdtLOm8fXOsGrduh",
"qkq/HvL5aVC3v7NtMQ9eNqB7ZkNluc1yNxL5/1sYR6FExluUOoT31zj8lc8UMtCsucFA/hmpgZ7+TbQ7",
"e/ImaktK2J2KKbfMVyx2cYKttEuP8BtU7fZME71R20lzZWTAcErWeW4UwTCqACWBQW4QTtuhG0ITpQUJ",
"uACe4lGdJ+G/j2mZ8TMux8/dPsevEUAUoGHni1chGiot5kLyHNd08CfsOPMtwLnqtgw3V2uEbVp5hfRX",
"Y0TXZGNXb3PdjkvGBY5IIa7oyvMWe3vlERu/8IhFt4nl1qm8SizYsbEaeNG3EE21IBbS6fewXjCM52kN",
"s3Yf71cm8ihegzR+d/bkruFeHHuC2Dn23985CELQfrpLAgpukwWLwS7BC7snZ6eZpu6w8W0G/gsUqP56",
"YHeagLmWZUxxHgU+IkNK7G+Z36G1tQa2muMFr9QqAYOMiMFNbNaPVz29o3DiYqMKHTLHswtqLiPr0iWH",
"38nn4oHQM/j63Wa/w75XWADhdvgS9TNTOhFxvmJJrgyVSr45OzthiZIS8NMqZMDqKpE3vJmQwizA9PgF",
"DN7xxDLDC/BhpFV4vcBNSVXlIjyaYCZvZM3VL/CCNmmTl4UYQhxgsUpXG11pt+zjlmhTiyFZfB3J/SaH",
"Sj2206hz7jX4Jma/y2nQtSesgTybtPYMe3mGpveliutjWawP/VyBFmBGnU6+0Vpj1KTXPmYCQI9Ojvu9",
"hN1TOVUUlfQXRJxJH7aiNuB9eSvg64l+RyfHI1wIRa5lvt8Qlljc35cqbhJZ04Hv+XXz9ub/AgAA//9S",
"oKBTvVkAAA==",
}
// GetSwagger returns the content of the embedded swagger specification file

View File

@ -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.