1.1 Пользователь может управлять компонентами и их характеристиками (CRUD).
- сделал через CBV
1.2 Пользователь может просмотривать свободные компоненты (недобавленные к серверу)
- http://localhost:8000/basecomponents/unused/
- http://localhost:8000/cpus/unused/
- http://localhost:8000/hdds/unused/
- и тд
Серверы: 2.1 Пользователь может добавить тип сервера указав сокет, слоты памяти типоразмер и стандарты подключения дисков. (CRUD)
- все через родной функционал REST CBV
2.2 Пользователь может добавить сервер определенного типа (CRUD).
- все через родной функционал REST CBV
2.3 Пользователь может добавлять совместимые компоненты к серверу (Добавление несовместимых компонентов вызывает ошибку).
- см. core/models.py, строка 116, переопределение setattr
- Можно было сделать это на уровне rest вьюх и не трогать модели, но тогда в стандартной админке джанго можно будет натворить дел. Поэтому - перехват на уровне модели.
2.4 Пользователь может просмотравать связанные с сервером компоненты.
- http://localhost:8000/servers/ - см. атрибут plugged_components
Размещение оборудования 3.1 Пользователь может выполнять CRUD операции с
3.1.1 узлами,
3.1.2 этажами,
3.1.3 помещениями,
3.1.4 рядами,
3.1.5 стойками
3.2 Пользователь может размещать корзины в юнитах
3.3 Пользователь может размещать сервера в
3.3.1 юнитах
3.3.2 корзинах
- все через родной функционал REST CBV
3.4 Пользователь может просмотривать список серверов определнного узла (включая blade)
3.5 Пользователь может просмотривать список стоек, имеющих свободные юниты
- http://localhost:8000/racks/with_available_units/
- заодно сделал каждой стойке динамический атрибут available units