Table of Contents |
---|
Introduction
The Racks feature is used to manage and visualise visualize 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 heght height within the rack. A device can optionally have a picture assosictaewd associated with it. A rack is placed in a row. We have created a very granular system for positioning of racks, whci 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 floorr 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 useable 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).
They are accessible using The Open-AudIT API.
The table definition is best retrieved in application by going to menu → Admin → Database → List Tables.
Racks Reporting
Along with being able to create and visualise visualize 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 use 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;
The database schema can be found in the application is the user has database::read permission by going to menu: Admin -> Database -> List Tables, then clicking on the details button for the table.
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 see The Open-AudIT 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
.
Web Application Routes
Request Method | ID | Action | Resulting Function | Permission Required | URL Example | Notes |
---|---|---|---|---|---|---|
GET | n | create | create_form | racks::create | /racks/create | Displays a standard web form for submission to POST /racks. |
GET | y | update | update_form | racks::update | /racks/{id}/update | Show the racks details with the option to update attributes using PATCH to /racks/{id} |