Спроектировать и реализовать структуру классов, базу данных и api для управления объектами Дата-центров.
- Узел (дата-центр)
- Название
- Адрес
- Этаж
- Помещение
- Ряд
- Стойка
- Корзина
- Сервер
- Тип сервера
- Комплектующие
У всех сущностей обязательное поле - название.
У всех комплектующих есть производитель, модель и серийный номер, все они разделены по типам:
- CPU
- сокет
- HDD
- типоразмер
- объем
- подключение
- тип HDD/SDD/Hybdrid
- RAM
- объем
- стандарт
- RAID
- тип подключения
- NET
- тип подключения
Некоторые типы серверов размещаются в стойках, некоторые - в корзинах. У сереверов могут отличаться размеры в юнитах. У каждого типа есть определенные характеристики:
- CPU
- Количество
- Сокет
- RAM
- Количество слотов
- Стандарт
- HDD (в одном сервере могут быть несколько разных типоразмеров HDD)
- Количество слотов HDD
- Типоразмер
- Стандарт подключения
С каждым сервером можно связать:
- CPU
- RAM
- HDD
- NET
- RAID
С учетом типа сервера и стандарта подключения Могут иметь разную высоту в юнитах.
Корзины - это тип компановки, позовляющий размещать большее число серверов в огриниченном числе юнитов стойки. Например благодаря вертикальному размещению в корзине высотой 4 юнита можно разместить 8 блейд-серверов. https://ru.wikipedia.org/wiki/%D0%91%D0%BB%D0%B5%D0%B9%D0%B4-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80 Корзины устанавливаются в юниты. В корзинах размещаются сервера. Могут иметь разную высоту в юнитах.
- Компоненты:
1.1 Пользователь может управлять компонентами и их характеристиками (CRUD).
1.2 Пользователь может просмотривать свободные компоненты (недобавленные к серверу)
- Серверы:
2.1 Пользователь может добавить тип сервера указав сокет, слоты памяти типоразмер и стандарты подключения дисков. (CRUD)
2.2 Пользователь может добавить сервер определенного типа (CRUD).
2.3 Пользователь может добавлять совместимые компоненты к серверу (Добавление несовместимых компонентов вызывает ошибку).
2.4 Пользователь может просмотравать связанные с сервером компоненты.
- Размещение оборудования
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 корзинах
3.4 Пользователь может просмотривать список серверов определнного узла (включая blade)
3.5 Пользователь может просмотривать список стоек, имеющих свободные юниты
https://github.com/kurtgn/mnogotest/tree/master