Child pages
  • Racks
Skip to end of metadata
Go to start of metadata

Introduction

The Racks feature is used to manage and visualise your rack use with an Organisation, Location, Building, Floor, Room and Row.

How Does it Work?

A rack is a collection of devices which are assigned a position and height within the rack. A device can optionally have a picture associated with it. A rack is placed in a row. We have created a very granular system for positioning of racks, which is as follows. At the top level (as always) is the Organisation (Org). An Org can have multiple locations (as has always been the case). With the addition of the Racks feature, a location can now contain one or more Buildings. A building can contain one or more Floors. A floor can contain one or more Rooms. A room can contain one or more Rows. This sounds like a lot of work, but defaults are created for you. Create a new Location and the sub-components will be automatically created for you. If you need more items (buildings, rooms, etc) you can add them as you like. A rack can also be part of a "pod" of racks. The pod attribute works as a tag, rather than a strict hierarchical inheritance model as per buildings, floors, etc.

Racks are a feature available to Open-AudIT Enterprise licensed customers.

Creating a Rack Entry

As always, racks are fully usable from the API, just like other collections within Open-AudIT.

A Rack entry can be created using the web interface if the current user logged in has a role that contains the racks::create permission. Go to menu: Manage -> Racks -> Create Racks. They can also can be created from the Rooms View, using the "Create" button.

When creating a rack, you can provide the minimum required amount of information (name, Org, height and location details). We have provided defaults for all we can, so really - all you need is a name. If you would like to keep more details about the rack, click the "Advanced" button and you see many more attributes you can use. 

Viewing Racks

As pre creating a rack, when viewing a rack, if you have provided the minimum amount of attributes, the Advanced attributes will not show by default. Click the Advanced button to reveal (and edit) them. If you have provided some Advanced attributes, they will be shown by default. Eack device will have its icon shown on the left, along with a clickable "eye" icon on the right. Clicking this icon shows the basic machine details (name, IP, etc) and provides a link to view the full device. You can add a device by clicking the + icon in the Devices table. You can edit the potition and height of a device by clicking the blue 'eye' icon next to each device.

If you have added an image to a device, it will be shown. If you have not added an image (as per the router, below), the device's icon will be shown.

The best size for an image is 500px wide and 50px high for each RU in height. The image of the HP server below is 500px by 100px. You can now also assign a single image to multiple devices (as at 2.3.0).


Racks Reporting

Along with being able to create and visualise Racks, we have provided some initial Rack Reporting. You can find it at menu -> Report -> Reacks Reporting or menu -> Manage -> Racks -> Reporting.

You can specify the Org, all the way down to the Pod the list of racks you would like to know about and the largest contiguous aspaces there-in. This provides a quick and easy way to say "What's the largest space in Building C" (for example).

Database Schema

NOTE - Not all columns in rack_devices are currently used and as at 2018-11-05 are subject to change.

CREATE TABLE `racks` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL DEFAULT '',
`org_id` int(10) unsigned NOT NULL DEFAULT '1',
`row_id` int(10) unsigned DEFAULT NULL,
`description` text NOT NULL,
`row_position` varchar(200) NOT NULL DEFAULT '',
`pod` varchar(200) NOT NULL DEFAULT '',
`physical_height` int(10) unsigned NOT NULL DEFAULT '2000',
`physical_width` int(10) unsigned NOT NULL DEFAULT '600',
`physical_depth` int(10) unsigned NOT NULL DEFAULT '1050',
`weight_empty` int(10) unsigned NOT NULL DEFAULT '1',
`weight_current` int(10) unsigned NOT NULL DEFAULT '1',
`weight_max` int(10) unsigned NOT NULL DEFAULT '1',
`ru_start` int(10) unsigned NOT NULL DEFAULT '1',
`ru_height` int(10) unsigned NOT NULL DEFAULT '42',
`type` varchar(200) NOT NULL DEFAULT '',
`purpose` varchar(200) NOT NULL DEFAULT '',
`manufacturer` varchar(200) NOT NULL DEFAULT '',
`model` varchar(200) NOT NULL DEFAULT '',
`series` varchar(200) NOT NULL DEFAULT '',
`serial` varchar(200) NOT NULL DEFAULT '',
`asset_number` varchar(200) NOT NULL DEFAULT '',
`asset_tag` varchar(200) NOT NULL DEFAULT '',
`bar_code` varchar(200) NOT NULL DEFAULT '',
`power_circuit` varchar(200) NOT NULL DEFAULT '',
`power_sockets` varchar(200) NOT NULL DEFAULT '',
`circuit_count` int(10) unsigned NOT NULL DEFAULT '1',
`btu_total` int(10) unsigned NOT NULL DEFAULT '1',
`btu_max` int(10) unsigned NOT NULL DEFAULT '1',
`options` text NOT NULL,
`notes` text NOT NULL,
`tags` varchar(250) NOT NULL DEFAULT '',
`edited_by` varchar(200) NOT NULL DEFAULT '',
`edited_date` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
PRIMARY KEY (`id`),
KEY `org_id` (`org_id`),
KEY `row_id` (`row_id`),
CONSTRAINT `racks_org_id` FOREIGN KEY (`org_id`) REFERENCES `orgs` (`id`) ON DELETE CASCADE,
CONSTRAINT `racks_row_id` FOREIGN KEY (`row_id`) REFERENCES `rows` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `rack_devices` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL DEFAULT '',
`org_id` int(10) unsigned NOT NULL DEFAULT '1',
`rack_id` int(10) unsigned DEFAULT NULL,
`system_id` int(10) unsigned DEFAULT NULL,
`position` int(10) unsigned NOT NULL DEFAULT '1',
`height` int(10) unsigned NOT NULL DEFAULT '1',
`width` int(10) unsigned NOT NULL DEFAULT '1',
`orientation` enum('front','front-right','front-left','rear','rear-left','rear-right') NOT NULL DEFAULT 'front',
`options` text NOT NULL,
`notes` text NOT NULL,
`tags` varchar(250) NOT NULL DEFAULT '',
`edited_by` varchar(200) NOT NULL DEFAULT '',
`edited_date` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
PRIMARY KEY (`id`),
KEY `org_id` (`org_id`),
KEY `rack_id` (`rack_id`),
CONSTRAINT `rack_devices_org_id` FOREIGN KEY (`org_id`) REFERENCES `orgs` (`id`) ON DELETE CASCADE,
CONSTRAINT `rack_devices_rack_id` FOREIGN KEY (`rack_id`) REFERENCES `racks` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

API / Web Access

You can access the /licenses collection using the normal Open-AudIT JSON based API. Just like any other collection. Please see the API documentation for further details.

Access is provided as part of a roles permissions. Licenses is a standard resource and can have create, read, update and delete permissions.

The API routes below are usable from both a JSON Restful API and the web interface. The Web application routes are specifically designed to be called from the web interface (a browser).

API Routes

Request Method
ID
Action
Resulting Function
Permission Required
URL Example
Notes
POSTn createracks::create/racksInsert a new racks entry.
GETy readracks::read/racks/{id}Returns a racks details.
PATCHy updateracks::update/racks/{id}Update an attribute of a racks entry.
DELETEy deleteracks::delete/racks/{id}Delete a racks entry.
GETn collectionracks::read/racksReturns a list of racks.

Web Application Routes

Request Method
ID
Action
Resulting Function
Permission Required
URL Example
Notes
GETncreatecreate_formracks::create/racks/createDisplays a standard web form for submission to POST /racks.
GETyupdateupdate_formracks::update/racks/{id}/updateShow the racks details with the option to update attributes using PATCH to /racks/{id}