· 9 years ago · Feb 05, 2017, 08:22 AM
1Tech stack
2
3Python3.5, aiohttp, sqlalchemy, postgres
4
5Description
6
7Разработать бÑкенд Ð´Ð»Ñ ÑиÑтемы инвентаризации Ñерверов. БÑкенд из ÑÐµÐ±Ñ Ð¿Ñ€ÐµÐ´ÑтавлÑет RESTful API ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ñ€ÐµÐ°Ð»Ð¸Ð·ÑƒÐµÑ‚ Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð»Ñ Ð½ÐµÐ±Ð¾Ð»ÑŒÑˆÐ¾Ð¹ базы данных, где хранитÑÑ Ð²ÑÑ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ð¾ Ñерверам воображаемой компании.
8Операции над Ñерверами
9
10API позволÑет Ñовершать Ñледующие операции над Ñерверами
11добавить Ñервер
12удалить Ñервер
13изменить атрибуты Ñервера
14удалить ÑпиÑок Ñерверов
15получить ÑпиÑок Ñерверов (уÑтановить лимит по умолчанию 20 объектов, Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñтью его раÑширениÑ)
16добавить ÑпиÑок Ñерверов
17найти Ñервера по regexp
18Ñделать возможноÑть Ñортировки Ñерверов по заданным параметрам
19Ðтрибуты Ñерверов
20
21Id - уникальный идентификатор Ñервера
22Hostname - Ð¸Ð¼Ñ Ñервера
23IP address - ip адреÑ
24Gateway - шлюз по умолчанию
25Netmask - маÑка подÑети
26OS - тип и верÑÐ¸Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¾Ð¹ ÑиÑтемы
27Location - меÑто раÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ (можно хранить country code)
28ÐутентификациÑ
29
30ÐÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾Ð¸Ñходит Ñледующим образом:
31
32
33Клиент отправлÑет на Ñервер ID и SECRET_KEY
34Ð’ Ñлучае уÑпешной аутентификации Ñервер генерирует JWS токен и отправлÑет его клиенту
35Клиента передает токен во вÑех запроÑах (токен передаетÑÑ Ñ‡ÐµÑ€ÐµÐ· HTTP header)
36Сервер перед обработкой каждого запроÑа проверÑет валидноÑть токена, еÑли токен не валиден либо проÑкÑпайрен - выдает ÑоответÑвующие ошибки
37
38
39ВеÑÑŒ код необходимо выложить в публичный репозиторий на github и ÑÑылку выÑлать на Ñщик a.greben@vironit.com
40Due date: 7 Feb 2017