v0.5.0: 3 стенда — изоляция состояния, WSGI middleware, OpenAPI server selector, POLYGON_STANDS env
- loader.py: STANDS dict, get_services/get_ops_index per stand, POLYGON_STANDS env
- mock_state.py: get_state(stand_id) — ленивая инициализация
- app.py: StandMiddleware — перезапись PATH_INFO до Flask-роутинга
- Все роуты: LocalProxy(state), LocalProxy(SERVICES/OPS_INDEX) через g.stand_id
- openapi.py: _build_servers() — по одному серверу на стенд
- services/stand{1,2,3}/ — 37 YAML на стенд из STANDS/dev и STANDS/test
- tests/test_api.py: +4 multi-stand теста (изоляция, fail-next, OpenAPI servers)
- Обратная совместимость: /api/v1/svc/... → стенд по умолчанию
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
name: s3
|
||||
service_id: 12
|
||||
service_display_name: S3 Object Storage
|
||||
service_short_name: s3
|
||||
service_man: Руководство доступно по ссылке:<br/>https://docs.s3-website.msk-1.ngcloud.ru/
|
||||
lifecycle:
|
||||
suspendOnDestroyDefault: true
|
||||
adoptExistingOnCreateDefault: false
|
||||
operations:
|
||||
- svcOperationId: 1
|
||||
operation: create
|
||||
kind: instance
|
||||
action: create
|
||||
- svcOperationId: 6
|
||||
operation: create_sub_user
|
||||
kind: subresource
|
||||
action: create
|
||||
- svcOperationId: 5
|
||||
operation: delete
|
||||
kind: instance
|
||||
action: delete
|
||||
- svcOperationId: 7
|
||||
operation: delete_sub_user
|
||||
kind: subresource
|
||||
action: delete
|
||||
- svcOperationId: 4
|
||||
operation: modify
|
||||
kind: instance
|
||||
action: modify
|
||||
- svcOperationId: 407
|
||||
operation: reconcile
|
||||
kind: action
|
||||
action: reconcile
|
||||
- svcOperationId: 3
|
||||
operation: resume
|
||||
kind: instance
|
||||
action: resume
|
||||
- svcOperationId: 2
|
||||
operation: suspend
|
||||
kind: instance
|
||||
action: suspend
|
||||
stateOut:
|
||||
sub_users: {}
|
||||
cfsParams:
|
||||
- svcOperationCfsParamId: 163
|
||||
svcOperationCfsParam: resourceRealm
|
||||
dataType: string
|
||||
isRequired: true
|
||||
defaultValue: ceph.tst.nubes.ru
|
||||
isModifiable: false
|
||||
valueList:
|
||||
- ceph.tst.nubes.ru
|
||||
- svcOperationCfsParamId: 320
|
||||
svcOperationCfsParam: displayName
|
||||
dataType: string
|
||||
isRequired: true
|
||||
defaultValue: ''
|
||||
isModifiable: false
|
||||
- svcOperationCfsParamId: 60
|
||||
svcOperationCfsParam: subUserName
|
||||
dataType: string
|
||||
isRequired: true
|
||||
defaultValue: ''
|
||||
isModifiable: false
|
||||
- svcOperationCfsParamId: 61
|
||||
svcOperationCfsParam: subUserAccess
|
||||
dataType: string
|
||||
isRequired: true
|
||||
defaultValue: ''
|
||||
isModifiable: false
|
||||
valueList:
|
||||
- read
|
||||
- write
|
||||
- readwrite
|
||||
- full
|
||||
- svcOperationCfsParamId: 63
|
||||
svcOperationCfsParam: subUserName
|
||||
dataType: string
|
||||
isRequired: true
|
||||
defaultValue: ''
|
||||
isModifiable: true
|
||||
- svcOperationCfsParamId: 50
|
||||
svcOperationCfsParam: maxSizeGbPerUser
|
||||
dataType: integer > 0
|
||||
isRequired: false
|
||||
defaultValue: ''
|
||||
isModifiable: true
|
||||
- svcOperationCfsParamId: 51
|
||||
svcOperationCfsParam: maxObjectsPerBucket
|
||||
dataType: integer > 0
|
||||
isRequired: false
|
||||
defaultValue: ''
|
||||
isModifiable: true
|
||||
- svcOperationCfsParamId: 52
|
||||
svcOperationCfsParam: maxBucketsPerUser
|
||||
dataType: integer > 0
|
||||
isRequired: false
|
||||
defaultValue: ''
|
||||
isModifiable: true
|
||||
cfsParamsByOp:
|
||||
1:
|
||||
- 163
|
||||
- 320
|
||||
6:
|
||||
- 60
|
||||
- 61
|
||||
5: []
|
||||
7:
|
||||
- 63
|
||||
4:
|
||||
- 50
|
||||
- 51
|
||||
- 52
|
||||
407: []
|
||||
3: []
|
||||
2: []
|
||||
stateParams:
|
||||
resourceRealm: ceph.tst.nubes.ru
|
||||
displayName: ''
|
||||
Reference in New Issue
Block a user