There is a test task for Selectel Cloud team
API создано, чтобы создавать в openstack виртуальные машины двух типов:
- Standart (стандартные)
- Preemptible (вытесняемые)
Суть вытесянемых в том, что они могут уничтожаться, если необходимо создать стандартную виртуальную машину.
- Запустить докер контейнеры приложения и БД PostgreSQL
make build
- Запуск тестов
make run_test
- Запустить линтер
make lint
- /api/v1/ - стартовая страница с списком API endpoints ( swager)
- POST /api/v1/vm - api endpint для создания виртуальных машин в облаке devstack
- GET /api/v1/vm - api endpint для запроса существующих в облаке виртуальных машин
- DELETE /api/v1/vm/{cloud_id} - api endpint для удаления виртуальной машины
- http://89.248.207.43/dashboard/ - доступ к horizon развернутого devstack
-
метод: POST
-
Decription: Ендпоинт нужен, чтобы создавать вм в развернутом openstack. В качестве параметра запроса выступает флаг is_preemptible, который говорит, какую вм создавать:
- стандартную: is_preemptible=false
- вытесняемую: is_preemptible=true
-
JSON request:
{
"is_preemptible": true or false - флаг, для создания стандратных или вытесняемых вм
}
- JSON response:
{
"code": "201",
"message:": "Standart vm 03f0f27e-f325-4c3e-a70d-d64b65ce181c was created succesfully"
}
- метод: GET
- Decription: Ендпоинт нужен, запросить информацию о существующших вм в развернутом openstack.
- JSON request:
{}
- JSON response:
{
"servers": [
{
"id": "03f0f27e-f325-4c3e-a70d-d64b65ce181c",
"name": "standart",
"links": [
{
"rel": "self",
"href": "http://89.248.207.43/compute/v2.1/servers/03f0f27e-f325-4c3e-a70d-d64b65ce181c"
},
{
"rel": "bookmark",
"href": "http://89.248.207.43/compute/servers/03f0f27e-f325-4c3e-a70d-d64b65ce181c"
}
]
}
]
}
- метод: GET
- Decription: Ендпоинт нужен, чтобы удобно удалять вм в облаке и локальной базе. В качестве параметра url выступает cloud_vm_id, которое соотвуствует id вм из openstack.
- JSON request:
{
"cloud_vm_id": "03f0f27e-f325-4c3e-a70d-d64b65ce181c"
}
- JSON response:
{
"code": "204",
"message:": "vm 03f0f27e-f325-4c3e-a70d-d64b65ce181c was deleted succesfully"
}
Victor Pyatakov