Apache VCL logo Apache Software Foundation logo
Apache current event

Database Schema

affiliation table

This table contains a list of affiliations that can access this VCL site.

blockComputers table

This table tracks which computers have been allocated to individual block allocation time slots.

blockRequest table

This table contains all of the block allocations that have been requested and their current state.

blockTimes table

This table contains all of the time slots associated with a block allocation that are active or have not yet been reached. Time slots are deleted after they are completed.

blockWebDate table

This table contains date related items associated with a block allocation so that they can more easily be retrieved when editing a block allocation.

blockWebTime table

This table contains time related items associated with a block allocation so that they can more easily be retrieved when editing a block allocation.

changelog table

This table logs changes made to reservations.

clickThroughs table

This table logs click through agreements users must agree to when they create images.

computer table

This table contains all information about compute nodes and VMs that VCL controls. All bare metal computers, virtual hosts, and virtual machines must have an entry in this table.

computerloadflow table

This table contains entries that establish a flow of states that are followed when a reservation is being deployed so that users can have feedback on the current reservations page about their reservations.

computerloadlog table

This table contains actual log entries for each state processed when a reservation is being deployed so that users can have feedback on the current reservations page about their reservations.

computerloadstate table

This table contains the load states that a reservation goes through when being deployed and their estimated time so that an estimate of how much longer the deploy will take can be generated.

connectlog table

This table contains information about users connecting to reservations.

connectmethod table

This table contains all of the connect methods available to be assigned to an image. Connect methods are things like RDP, ssh, VNC, etc.

connectmethodmap table

This table contains two types of information and can be somewhat confusing. It tracks which connect methods are mapped to which OS types, OSes, and image revisions. It also contains which methods can be assigned to which OS types and OSes. Entries that have autoprovisioned set to 0 or 1 are entries that tell whether or not the image can be assigned to that OS type or OS. Entries that have autoprovisioned set to NULL tell whether that method is enabled in addition to default methods for the image, or whether that method is a default one but disable for the image.

connectmethodport

This table contains the ports associated with a connectmethod. The ports were initially part of the connectmethod table, but separating them out allowed for multiple ports per connect method.

continuations table

This table contains “continuations” which are basically saved states that can then be submitted by the frontend to perform an action.

documentation table

This table is deprecated. At one time, there was a built in documentation wiki like part of the site.

image table

This table contains all information about the images available through VCL. It comes with a single required special image - “No image” that is used to signify when a computer is not loaded with anything.

imagemeta table

This table contains additional information about some images. It was added so that the extra information would not needed to be recorded for every image when most of them would not need it.

imagerevision table

This table contains an entry for every revision (including the initial one) of each image.

imagerevisioninfo

imagetype

This table is a list of all of the types of images VCL can handle. As of 2.4.2, these values are kickstart, lab, none, partimage, partimage-ng, qcow2, vdi, and vmdk.

IMtype table

This table never really got used. The idea was the people could be notified via IM in addition to or instead of via email.

localauth table

This table contains password hashes for local accounts.

log table

This table contains an entry for every reservation made in VCL except for those made by the special account ‘vclreload’.

loginlog table

This table contains a log of every authentication attempt.

managementnode table

This table contains information about each management node.

module table

This table contains information about the various perl modules that are part of vcld.

nathost

This table tracks which nodes are configured to be used as NAT hosts.

nathostcomputermap

This table maps compute nodes to nodes being used as a NAT host for them.

natlog

This table records relevant information about how NAT was configured for a reservation.

natport

This table tracks which ports are actively being forwarded on NAT hosts for which reservations.

openstackcomputermap

openstackimagerevision

OS table

This table contains information about OSes VCL knows about.

OSinstalltype table

This table is a list of the ways an image can be installed.

OStype table

This table contains a list of OS types VCL knows about - linux, unix, windows, etc.

platform table

This table contains a list of platforms VCL knows about - i386, i386_lab (special case for lab machines), and ultrasparc.

privnode table

This table contains all of the nodes that make up the Privilege Tree on the Privileges page.

provisioning table

This table contains all of the provisioning modules that are part of vcld.

provisioningOSinstalltype table

This table is a mapping of which provisioning methods can handle which OS install types.

querylog table

This table contains an entry for every query performed by the frontend that modifies the database (i.e. everything but SELECT statements).

request table

This table contains information about every current or future reservation. Only a single entry exists in this table for cluster reservations.

reservation table

This table contains information about every current or future reservation. There will be one entry in this table corresponding to each entry in the request table for normal reservations, and multiple entries (one for each node) in this one for each entry in the request table for cluster reservations.

reservationaccounts table

This table contains userids and passwords for additional accounts for server reservations. There is not an entry for the owner of the reservation. These correspond to the admin and login user groups.

resource table

This table contains an entry for every resource VCL knows about. Every resource has a unique id from this table, and a sub id from a resource specific table (computer, image, management node, etc).

resourcegroup table

This table contains all of the resource groups.

resourcegroupmembers table

This table contains a list of which resources are in which resource groups.

resourcemap table

This table contains which resource groups map to other resource groups.

resourcegroupid1 - reference to resourcegroup.id resourcetypeid1 - reference to resourcetype.id resourcegroupid2 - reference to resourcegroup.id resourcetypeid2 - reference to resourcetype.id

resourcepriv table

This table contains the attributes that can be granted to resource groups.

resourcetype table

This table contains a list of all the resource types.

schedule table

This table contains all of the schedules available.

scheduletimes table

This table contains all of the starts/ends of the time slots for each schedule. Schedules are what times during a week that computers are available. They run from midnight Sunday morning (0) to midnight Sunday morning one week later (10080).

semaphone table

This table is used by the frontend to manage semaphores for computers being considered for reservations. During normal network and CPU loads, entries in this table should only exist for fractions of a second.

serverprofile table

This table contains all of the server profiles.

serverrequest table

This table contains an entry for each server reservation.

shibauth table

This table contains authentication information related to shibboleth logins.

sitemaintenance table

This table contains an entry for any active or upcoming scheduled site maintenance windows.

state table

This table contains all of the states used in VCL. Not all states are used any place where states are used. For example, there are states used in the request table that are not used in the computer table.

statgraphcache table

This table contains cached values for the stat graphs. Some of the data points take enough computation time that it is prohibitive to calculate them for really long periods of time. This table allows historical points to computed once and then saved forever.

subimages table

This table contains a list of sub images associated with any clusters.

sublog table

This table contains an entry for each computer that was part of a log table entry. For normal reservations, this is a single entry; for cluster reservations, it is one entry for each subimage.

user table

This table contains an entry for every user that has every logged in to VCL.

usergroup table

This table contains all of the user groups.

usergroupmembers table

This table tracks which users are members of which user groups.

usergrouppriv table

This table is a list of which additional user group privileges have been assigned to which user groups.

usergroupprivtype table

This table contains additional privileges that can be associated with user groups that don’t make sense to have at any particular privilege node.

userpriv table

This table contains the user and user group privileges assigned in the privilege tree.

userprivtype table

This table contains all of the available user privileges.

variable table

This table is a place to store any generic data. It can be settings that stay around forever, or things that only need to be temporarily stored. It also provides for a place for the frontend and backend to share less structured information that what is in other tables.

vmhost table

This table contains an entry for each virtual host.

vmprofile table

This table contains an entry for each virtual host profile.

vmtype table

This table contains all of the virtual machine types.

winKMS table

This table contains Windows KMS licensing information.

winProductKey table

This table contains Windows product key information.

xmlrpcLog table

This table logs each XML RPC API call.