Skip to content
Ashraf Hasson edited this page May 11, 2014 · 4 revisions

ADVRack Dokuwiki Plugin

This plugin makes use of two awesome Javascript libraries, Raphael.js and qTip2, to create a block representation of a server rack with tooltips which can be used to enrich the presentation with information specific to the server, a module within the server or even a module within a cage or blades.

It has the ability to draw racks of various heights and widths, specify the dimensions in rack U space, in, or even in cm. Servers, cages, blocks and blades can have labels. Any U space that's left without a server will automatically be populated with a filler panel, just to make things look more organized. Needless to say, it's definitely possible to set your equipment with colors and labels but one should know the syntax used to configure the rack depends on JSON.

Installation

Install the plugin using the Plugin Manager and the download URL above, which points to latest version of the plugin. Refer to Plugins on how to install plugins manually.

Configuration and Settings

Most of what you would want to configure is doable through the advrack syntax itself. Please read further to learn how to control most aspects of the advrack settings.

Examples/Usage

To define a rack, you must write a JSON snippet to describe your rack, the equipment it contains, what attributes you want to give to each server, cage, module, etc.

Here's an example of a rack with couple servers and other equipment in cages, showing all possible options. The rack definition goes inside a <advrack> ... </advrack> tag.

[
    {
        "options": {
            "index": 1,
            "height": "42U",
            "width": "19in",
            "label": "rack # 1",
            "tooltip": {
                "content": {
                    "title": "test rack",
                    "text": "rack contains test equipment!"
                }
            }
        },
        "servers": [
            {
                "index": 1,
                "height": "1U",
                "label": "fuse panel",
                "fill-color": "lightblue",
                "tooltip": {
                    "content": {
                        "title": "DC Atca Fuse Panel",
                        "text": "DC mains: 2x50Amps breaker for each side, A & B"
                    },
                    "position": {
                        "my": "bottom left",
                        "at": "top right",
                        "target": "mouse"
                    },
                    "style": {
                        "classes": "qtip-light qtip-shadow qtip-rounded"
                    }
                }
            },
            {
                "index": 2,
                "height": "2U",
                "label": "prod server",
                "tooltip": {
                    "content": {
                        "title": "Production Server",
                        "text": "server 2"
                    },
                    "position": {
                        "my": "bottom left",
                        "at": "top right",
                        "target": "mouse"
                    },
                    "style": {
                        "classes": "qtip-light qtip-shadow qtip-rounded"
                    }
                }
            }
        ],
        "cages": [
            {
                "index": 6,
                "height": "12u",
                "label": "reserved for project X",
                "decks": [
                    {
                        "height": "1U",
                        "type": "block",
                        "label": "separate fuse panel"
                    }
                ]
            },
            {
                "index": 30,
                "height": "10U",
                "tooltip": {
                    "content": {
                        "title": "CC1",
                        "text": "Main Process Distributor"
                    }
                },
                "decks": [
                    {
                        "type": "block",
                        "height": "1U",
                        "tooltip": {
                            "content": {
                                "title": "Power Supply Deck",
                                "text": "Dual DC Power Supply Units"
                            },
                            "position": {
                                "my": "bottom left",
                                "at": "top right",
                                "target": "mouse"
                            },
                            "style": {
                                "classes": "qtip-light qtip-shadow qtip-rounded"
                            }
                        },
                        "blocks": [
                            {
                                "label": "Primary System Board",
                                "fill-color": "olive"
                            },
                            {
                                "label": "Backup System Board",
                                "fill-color": "orange"
                            }
                        ]
                    },
                    {
                        "type": "block",
                        "height": "1U",
                        "tooltip": {
                            "content": {
                                "title": "High Speed Fan Modules",
                                "text": "6K RPM multi-speed fan + sensors"
                            },
                            "position": {
                                "my": "bottom left",
                                "at": "top right",
                                "target": "mouse"
                            },
                            "style": {
                                "classes": "qtip-light qtip-shadow qtip-rounded"
                            }
                        },
                        "blocks": [
                            {
                                "label": "A",
                                "fill-color": "lightblue"
                            },
                            {
                                "label": "B",
                                "fill-color": "fuchsia"
                            },
                            {
                                "label": "C",
                                "fill-color": "aqua"
                            },
                            {
                                "label": "D",
                                "fill-color": "lime"
                            },
                            {
                                "label": "E",
                                "fill-color": "red",
                                "tooltip": {
                                    "content": {
                                        "title": "Status",
                                        "text": "Faulty - pending management approval to buy new unit"
                                    }
                                }
                            }
                        ]
                    },
                    {
                        "type": "blade",
                        "height": "6U",
                        "blades": [
                            {
                                "label": "blade#1",
                                "fill-color": "yellow",
                                "tooltip": {
                                    "content": {
                                        "title": "App Blade",
                                        "text": "Main Process"
                                    }
                                }
                            },
                            {
                                "label": "blade#2"
                            },
                            {
                                "label": "blade#3"
                            },
                            {
                                "label": "blade#4"
                            },
                            {
                                "label": "blade#5"
                            },
                            {
                                "label": "blade#6"
                            },
                            {
                                "label": "blade#7"
                            },
                            {
                                "label": "blade#8"
                            },
                            {
                                "label": "blade#9"
                            },
                            {
                                "label": "blade#10"
                            },
                            {
                                "label": "blade#11"
                            },
                            {
                                "label": "blade#12"
                            }
                        ]
                    },
                    {
                        "type": "block",
                        "height": "2U",
                        "tooltip": {
                            "content": {
                                "title": "DC Battery",
                                "text": "Backup #1"
                            }
                        },
                        "blocks": [
                            {
                                "label": "Battery #1",
                                "fill-color": "lightblue"
                            },
                            {
                                "label": "Battery #2",
                                "fill-color": "lightgreen",
                                "tooltip": {
                                    "content": {
                                        "title": "DC Battery",
                                        "text": "Backup #2"
                                    }
                                }
                            },
                            {
                                "label": "Battery #3",
                                "fill-color": "lightyellow"
                            }
                        ]
                    }
                ]
            }
        ]
    }
]

Please note that labels and tooltips are optional while server and cage indexs are mandatory and they dictate the equipment position in the rack, starting at index 1 from the top of the rack.

Tooltip, on the other hand, can be set on any equipment or module. Module tooltip will take precedence and overwrite the equipment tooltip over the context of the module itself only. This allows for creating a generic tooltip that applies to all modules which you don't want to specify a tooltip for but give you the option to set a tooltip on specific ones that might need a bit more details. The tooltip takes qTip2's options, so you can simply refer to the qTip2 documentation and configure your tooltips however you see fit.

Credit

This plugin was inspired by the Callflow DokuWiki plugin which I used as a guide to creating ADVRack.

Also, thanks to Remmel for I have used his answer on how to customize rounded corners in Raphael.