- 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/... → стенд по умолчанию
53 lines
1022 B
YAML
53 lines
1022 B
YAML
name: vc_vm_v2
|
|
service_id: 27
|
|
service_display_name: VM в Cloud Director (vc_vmV2)
|
|
service_short_name: vc_vm_v2
|
|
lifecycle:
|
|
suspendOnDestroyDefault: true
|
|
adoptExistingOnCreateDefault: false
|
|
operations:
|
|
- svcOperationId: 100
|
|
operation: create
|
|
kind: instance
|
|
action: create
|
|
- svcOperationId: 101
|
|
operation: delete
|
|
kind: instance
|
|
action: delete
|
|
- svcOperationId: 104
|
|
operation: modify
|
|
kind: instance
|
|
action: modify
|
|
- svcOperationId: 102
|
|
operation: resume
|
|
kind: instance
|
|
action: resume
|
|
- svcOperationId: 103
|
|
operation: suspend
|
|
kind: instance
|
|
action: suspend
|
|
stateOut: {}
|
|
cfsParams:
|
|
- svcOperationCfsParamId: 301
|
|
svcOperationCfsParam: serverListJson
|
|
dataType: json
|
|
isRequired: true
|
|
defaultValue: '[{}]'
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 302
|
|
svcOperationCfsParam: serverListJson
|
|
dataType: json
|
|
isRequired: true
|
|
defaultValue: '[{}]'
|
|
isModifiable: true
|
|
cfsParamsByOp:
|
|
100:
|
|
- 301
|
|
101: []
|
|
104:
|
|
- 302
|
|
102: []
|
|
103: []
|
|
stateParams:
|
|
serverListJson: '[{}]'
|