Developer's Guide

  • Docs Home
  • Community Home

3. Add a Device Organizer

If you wish to create a device organizer so that it's easy to differentiate between other types of devices and the type that you're adding, feel free to do so. In the case of AIX, there are a couple of types of setups:

Generic AIX Definitions

Standalone

This describes the case where the entire pSeries server is dedicated to running one instance of AIX.

Logical PARtition (LPAR)

Some AIX pSeries servers are capable of running multiple instances of AIX. An AIX instance (LPAR in IBM speak) is equivalent to a VMware image.

Frames

AIX LPARs are hosted on physical hardware (ie a pSeries server), which is referred to as a frame. These frames are capable of being run as either a standalone server or as a bunch of LPARs. The frame is like a VMware host.

Virtual IO (VIO) Server

A VIO server is a special LPAR that allows you to consolidate IO hardware (eg Ethernet, Fibre Channel cards) and share virtualized hardware with other LPARs. This is one of the key technologies required in order to perform VMotion-style activities for AIX LPARs.

A separate server (called a Hardware Management Console (HMC)) is used to manage standalone devices, frames and LPARs (including VIO servers). The HMC is actually a Linux server with a custom configuration to support AIX. In this example, we'll just add the AIX parts and ignore the HMC.

Add a device class for AIX in the /Devices/Server/AIX class. From the navigation bar at the left-hand side, go to the Classes section and select Devices. Then click on Server, which shows you the Sub-Devices screen. From the Sub-Devices table menu, select Add New Organizer. Provide an id (ie AIX) and click OK.

Under the newly created /Server/AIX organizer, create the LPAR class. Under that class, create a VIO class.

In this newly created scheme, we're intending on putting standalone servers and frames in the /Server/AIX class, any LPARs in the /Server/AIX/LPAR class, and any VIO servers (which are a special type of LPAR) under the /Server/AIX/LPAR/VIO class. If we wanted to have each frame contain its own tab showing the LPARs that it hosts, we would need to create new ZenModel objects (complete with relations), instantiate them at the base of /Server/AIX and then write more ZPTs to handle our custom behaviours.

Another situation where we might be forced to write our own device class Python code is where we want to add properties that don't exist in other devices. For instance, we may want to record whether or not a Fibre Channel device supports N-Port ID Virtualization (NPIV). This extra property would need to be subclassed from the ZenModel class and the object initialized from within our ZenPack's __init__.py file.