2.9 KiB
Add service management API to Karbor
https://blueprints.launchpad.net/karbor/+spec/karbor-service-management
Problem description
Currently, karbor does not have service management API for karbor services (karbor-operationengine and karbor-protection). We can find that service management API has been in almost all the other OpenStack projects. It is very convenient for admin to list/enable/disable the services on any nodes.
Use Cases
Admin want to list/enable/disable karbor services on any karbor nodes.
Proposed change
- Add service management API controller for the Karbor API.
Implement the 'index' method of service management API controller. Implement the 'update' method of service management API controller.
- Add service management to karbor client.
Alternatives
None
Data model impact
None
REST API impact
1. List services API The response JSON when listing services:
**get** : /v1/{project_id}/os-services
```json
{
"services": [
{
"status": "enabled",
"binary": "karbor-operationengine",
"disabled_reason": null,
"host": "karbor@node",
"updated_at": "2017-09-07T13:03:57.000000",
"state": "up",
"id": 1
},
{
"status": "enabled",
"binary": "karbor-protection",
"disabled_reason": null,
"host": "karbor@node",
"updated_at": "2017-09-07T13:03:57.000000",
"state": "up",
"id": 2
}
]
}
2. Update service API The request JSON when updating service:
**put** : /v1/{project_id}/os-services/{service_id}
```json
{
"status": "enable"
}
The response JSON when updating service:
```json
{
"service": {
"id": "e81d66a4-ddd3-4aba-8a84-171d1cb4d339",
"binary": "karbor-protection",
"disabled_reason": null,
"host": "karbor@node",
"state": "up",
"status": "enabled",
"updated_at": "2012-10-29T13:42:05.000000",
}
}
Security impact
None
Notifications impact
None
Other end user impact
None
Performance Impact
None
Other deployer impact
None
Developer impact
None
Implementation
Assignee(s)
Primary assignee: Jiao Pengju <jiaopengju@cmss.chinamobile.com>
Work Items
- Add a new RESTful API about service management
- Add service management to karbor client
Dependencies
None
Testing
Unit tests in Karbor.
Documentation Impact
None
References
None