Skip to content

Instantly share code, notes, and snippets.

@meteozond meteozond/erp-test.rest
Last active Feb 12, 2018

Embed
What would you like to do?

Тестовое задание

Спроектировать и реализовать структуру классов, базу данных и 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 Корзины устанавливаются в юниты. В корзинах размещаются сервера. Могут иметь разную высоту в юнитах.

Кейсы доступные через API

  1. Компоненты:

1.1 Пользователь может управлять компонентами и их характеристиками (CRUD).

1.2 Пользователь может просмотривать свободные компоненты (недобавленные к серверу)

  1. Серверы:

2.1 Пользователь может добавить тип сервера указав сокет, слоты памяти типоразмер и стандарты подключения дисков. (CRUD)

2.2 Пользователь может добавить сервер определенного типа (CRUD).

2.3 Пользователь может добавлять совместимые компоненты к серверу (Добавление несовместимых компонентов вызывает ошибку).

2.4 Пользователь может просмотравать связанные с сервером компоненты.

  1. Размещение оборудования

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 Пользователь может просмотривать список стоек, имеющих свободные юниты

@kurtgn

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.