Modified: vcl/trunk/mysql/vcl.sql URL: http://svn.apache.org/viewvc/vcl/trunk/mysql/vcl.sql?rev=1635628&r1=1635627&r2=1635628&view=diff ============================================================================== --- vcl/trunk/mysql/vcl.sql (original) +++ vcl/trunk/mysql/vcl.sql Thu Oct 30 22:06:00 2014 @@ -18,6 +18,10 @@ SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- +-- Version: 2.4 +-- + +-- -- Database: `vcl` -- @@ -201,6 +205,7 @@ CREATE TABLE IF NOT EXISTS `computer` ( `ownerid` mediumint(8) unsigned default '1', `platformid` tinyint(3) unsigned NOT NULL default '1', `scheduleid` tinyint(3) unsigned default NULL, + `vmhostid` smallint(5) unsigned default NULL, `currentimageid` smallint(5) unsigned NOT NULL default '1', `nextimageid` smallint(5) unsigned NOT NULL default '1', `imagerevisionid` mediumint(8) unsigned NOT NULL default '1', @@ -227,7 +232,6 @@ CREATE TABLE IF NOT EXISTS `computer` ( `rsapub` mediumtext, `host` blob, `hostpub` mediumtext, - `vmhostid` smallint(5) unsigned default NULL, `vmtypeid` tinyint(3) unsigned default NULL, `predictivemoduleid` smallint(5) unsigned NOT NULL default '1', PRIMARY KEY (`id`), @@ -1122,7 +1126,7 @@ CREATE TABLE IF NOT EXISTS `state` ( -- Table structure for table `statgraphcache` -- -CREATE TABLE `statgraphcache` ( +CREATE TABLE IF NOT EXISTS `statgraphcache` ( `graphtype` enum('totalres','concurres','concurblade','concurvm') NOT NULL, `statdate` date NOT NULL, `affiliationid` mediumint(8) unsigned NOT NULL, @@ -1435,7 +1439,7 @@ CREATE TABLE IF NOT EXISTS `xmlrpcLog` ( -- Dumping data for table `adminlevel` -- -INSERT INTO `adminlevel` (`id`, `name`) VALUES +INSERT IGNORE INTO `adminlevel` (`id`, `name`) VALUES (3, 'developer'), (2, 'full'), (1, 'none'); @@ -1444,14 +1448,14 @@ INSERT INTO `adminlevel` (`id`, `name`) -- Dumping data for table `affiliation` -- -INSERT INTO `affiliation` (`id`, `name`, `dataUpdateText`, `theme`) VALUES +INSERT IGNORE INTO `affiliation` (`id`, `name`, `dataUpdateText`, `theme`) VALUES (1, 'Local', '', 'default'), (2, 'Global', '', 'default'); -- -- Dumping data for table `computerloadflow` -- -INSERT INTO `computerloadflow` (`computerloadstateid`, `nextstateid`, `type`) VALUES +INSERT IGNORE INTO `computerloadflow` (`computerloadstateid`, `nextstateid`, `type`) VALUES (4, 22, 'blade'), (6, 15, 'blade'), (9, 43, 'blade'), @@ -1476,7 +1480,7 @@ INSERT INTO `computerloadflow` (`compute -- Dumping data for table `computerloadstate` -- -INSERT INTO `computerloadstate` (`id`, `loadstatename`, `prettyname`, `est`) VALUES +INSERT IGNORE INTO `computerloadstate` (`id`, `loadstatename`, `prettyname`, `est`) VALUES (1, 'info', 'info', 2), (2, 'loadimageblade', 'must reload computer', 0), (3, 'loadimagevmware', 'loadimagevmware', 1), @@ -1532,17 +1536,16 @@ INSERT INTO `computerloadstate` (`id`, ` -- Dumping data for table `connectmethod` -- -INSERT INTO `connectmethod` (`id`, `name`, `description`, `connecttext`, `servicename`, `startupscript`) VALUES +INSERT IGNORE INTO `connectmethod` (`id`, `name`, `description`, `connecttext`, `servicename`, `startupscript`) VALUES (1, 'ssh', 'ssh on port 22', 'You will need to have an X server running on your local computer and use an ssh client to connect to the system. If you did not click on the <b>Connect!</b> button from the computer you will be using to access the VCL system, you will need to return to the <strong>Current Reservations</strong> page and click the <strong>Connect!</strong> button from a web browser running on the same computer from which you will be connecting to the VCL system. Otherwise, you may be denied access to the remote computer.<br><br>\r\nUse the following information when you are ready to connect:<br>\r\n<UL>\r\n<LI><b>Remote Computer</b>: #connectIP#</LI>\r\n<LI><b>User ID</b>: #userid#</LI>\r\n<LI><b>Password</b>: #password#<br></LI>\r\n</UL>\r\n<b>NOTE</b>: The given password is for <i>this reservation only</i>. You will be given a different password for any other reservations.<br>\r\n<strong><big>NOTE:</big> You cannot use the Windows Remote Desktop Connection to connect to this computer. You must use an ssh client.</strong>', 'ext_sshd', '/etc/init.d/ext_sshd'), (2, 'RDP', 'Remote Desktop', 'You will need to use a Remote Desktop program to connect to the system. If you did not click on the <b>Connect!</b> button from the computer you will be using to access the VCL system, you will need to return to the <strong>Current Reservations</strong> page and click the <strong>Connect!</strong> button from a web browser running on the same computer from which you will be connecting to the VCL system. Otherwise, you may be denied access to the remote computer.<br><br>\r\n\r\nUse the following information when you are ready to connect:<br>\r\n<UL>\r\n<LI><b>Remote Computer</b>: #connectIP#</LI>\r\n<LI><b>User ID</b>: #userid#</LI>\r\n<LI><b>Password</b>: #password#<br></LI>\r\n</UL>\r\n<b>NOTE</b>: The given password is for <i>this reservation only</i>. You will be given a different password for any other reservations.<br>\r\n<br>\r\nFor automatic connection, you can download an RDP file that can be opened by the Remote Desktop Connection program.<br>< br>\r\n', 'TermService', NULL), (3, 'iRAPP RDP', 'Remote Desktop for OS X', 'You will need to use a Remote Desktop program to connect to the system. If you did not click on the <b>Connect!</b> button from the computer you will be using to access the VCL system, you will need to return to the <strong>Current Reservations</strong> page and click the <strong>Connect!</strong> button from a web browser running on the same computer from which you will be connecting to the VCL system. Otherwise, you may be denied access to the remote computer.<br><br>\r\n\r\nUse the following information when you are ready to connect:<br>\r\n<UL>\r\n<LI><b>Remote Computer</b>: #connectIP#</LI>\r\n<LI><b>User ID</b>: #userid#</LI>\r\n<LI><b>Password</b>: #password#<br></LI>\r\n</UL>\r\n<b>NOTE</b>: The given password is for <i>this reservation only</i>. You will be given a different password for any other reservations.<br>\r\n<br>\r\nFor automatic connection, you can download an RDP file that can be opened by the Remote Desktop Connectio n program.<br><br>\r\n', NULL, NULL); - -- -- Dumping data for table `connectmethodmap` -- -INSERT INTO `connectmethodmap` (`connectmethodid`, `OStypeid`, `OSid`, `imagerevisionid`, `disabled`, `autoprovisioned`) VALUES +INSERT IGNORE INTO `connectmethodmap` (`connectmethodid`, `OStypeid`, `OSid`, `imagerevisionid`, `disabled`, `autoprovisioned`) VALUES (1, 2, NULL, NULL, 0, 1), (1, 3, NULL, NULL, 0, 1), (2, 1, NULL, NULL, 0, 1), @@ -1556,7 +1559,7 @@ INSERT INTO `connectmethodmap` (`connect -- Dumping data for table `documentation` -- -INSERT INTO `documentation` (`name`, `title`, `data`) VALUES +INSERT IGNORE INTO `documentation` (`name`, `title`, `data`) VALUES ('GrantingAccesstoaNewImageEnvironment1', 'Granting Access to a New Image/Environment', '<div id="docbullets">\r\n<h2>Overview</h2>\r\n<p>Once you have created a new image, there are a few things you have to do to allow other people to use it. If you don''t have access to do any of the following steps, you will need to get a VCL administrator to do them for you.</p>\r\n<p>When you create a new image, it is only available to you, and it is only allowed to be run on a few computers that have been set aside for the testing of new images.</p>\r\n<h2>Step 1: Image Mapping</h2>\r\n<p>Images are mapped to be run on a set of computers. See the documentation on <a href="index.php?mode=viewdocs&item=Resources"><span style="color: rgb(255, 0, 0);"><b>Resources</b></span></a> to learn more about why this is done. For your new image to be able to run on more computers than just those designated for testing, you need to map it to a set of computers. There are a few steps to this process :</p>\r\n<ol>\r\n <li>You need to make your image a member of an image group\r\n <ul>\r\n <li>Select <span style="color: rgb(0, 0, 255);">Manage Images</span>-><span style="color: rgb(0, 0, 255);">Edit Image Grouping</span></li>\r\n <li>Select your image from the drop down box and click <span style="color: rgb(0, 0, 255);">Get Groups</span></li>\r\n <li>Choose one or more image groups to which you would like to add the image from the box on the right</li>\r\n <li>Click <span style="color: rgb(0, 0, 255);"><-Add</span> to make the image a member of the group(s)</li>\r\n </ul>\r\n </li>\r\n <li>You need to map the image group(s) you selected in step 1 to one or more computer groups\r\n <ul>\r\n <li>Select <span style="color: rgb(0, 0, 255);">Manage Images</span>-><span style="color: rgb(0, 0, 255);">Edit Image Mapping</span></li>\r\n <li>Do the following for each group from step 1:<br />\r\n <ul>\r\n <li>Select the image group from the drop down box and click <span style="color: rgb(0, 0, 255);">Get Computer Groups</span></li>\r\n <li>Choose one or more computer groups to which you would like to map the image group from the box on the right</li>\r\n <li>click <span style="color: rgb(0, 0, 255);"><-Add</span> to make map the image group to the computer group(s)</li>\r\n </ul>\r\n </li>\r\n <li>Note: there is an assumption here that the computer groups you selected already have computers that are in those groups</li>\r\n </ul>\r\n </li>\r\n</ol>\r\n<h2>Step 2: Privileges</h2>\r\n<p>Now, you need to grant access to use the image to a user or group of users under the Privileges section of the site. Here are the steps involved:</p>\r\n<ol>\r\n <li>Select <span style="color: rgb(0, 0, 255);">Privileges</span></li>\r\n <li>Choose an existing node or create a new node in the tree structure in the upper portion of the page where you would like to assign the user(s) access</li>\r\n <li>Now, you need to grant the user <span style="color: rgb(0, 0, 255);">imageCheckOut</span> at the node. You can do this for an individual user or a group of users.\r\n <ul>\r\n <li>Individual User:\r\n <ul>\r\n <li>Click <span style="color: rgb(0, 0, 255);">Add User</span></li>\r\n <li>Enter the user''s id in the text box and select the <span style="color: rgb(0, 0, 255);">imageCheckOut</span> checkbox</li>\r\n <li>Click <span style="color: rgb(0, 0, 255);">Submit New User</span></li>\r\n </ul>\r\n </li>\r\n <li>User Group:\r\n <ul>\r\n <li>Click <span style="color: rgb(0, 0, 255);">Add Group</span></li>\r\n <li>Select the user group from the drop-down box and select the <span style="color: rgb(0, 0, 255);">imageCheckOut</span> checkbox</li>\r\n <li>Click <span style="color: rgb(0, 0, 255);">Submit New User Group</span></li>\r\n </ul>\r\n </li>\r\n </ul>\r\n </li>\r\n <li>Next, you need to make sure the image group in which you placed the image in step 1 of <b>Image Mapping</b> is available at this node. If it is, go on to the next step, if not:\r\n <ul>\r\n <li>Click <span style="color: rgb(0, 0, 255);">Add Resource Group</span></li>\r\n <li>Select the image group from the drop-down box and select the <span style="color: rgb(0, 0, 255);">available</span> checkbox</li>\r\n <li>Click <span style="color: rgb(0, 0, 255);">Submit New Resource Group</span></li>\r\n </ul>\r\n </li>\r\n <li>Finally, you need to make sure the computer group(s) selected in step 2 of <b>Image Mapping</b> are also available here. If so, you are finished. If not:\r\n <ul>\r\n <li>Click <span style="color: rgb(0, 0, 255);">Add Resource Group</span></li>\r\n <li>Select the computer group from the drop-down box and select the <span st yle="color: rgb(0, 0, 255);">available</span> checkbox</li>\r\n <li>Click <span style="color: rgb(0, 0, 255);">Submit New Resource Group</span></li>\r\n </ul>\r\n </li>\r\n</ol>\r\n<p>Now, the user or user groups you have added to this node will be able to make reservations for the new image.</p>\r\n</div>'), ('OverviewofPrivileges-Whatpermissionsarerequiredtoaccesspartsofthesite', 'Overview of Privileges - What permissions are required to access parts of the site', '<p>These are the privileges a user needs to access various parts of the VCL site. Unless specifically specified, a user must have both the <span style="color: rgb(0, 0, 255);">user<span style="color: rgb(0, 0, 0);"> and the <span style="color: rgb(255, 102, 0);">resource</span> permissions granted at the same node in the privilege tree.</span></span> "<span style="color: rgb(0, 0, 255);">user</span>" refers to privileges granted on the Privileges page either specifically to a user or to a group of which a user is a member. "<span style="color: rgb(255, 102, 0);">resource</span>" refers to privileges granted on the Privileges page to a resource group. Privileges can only be granted to resource groups; there is no way to grant privileges to a specific resource (image, computer, etc).</p>\r\n<h2>New Reservat ion</h2>\r\n<p style="margin-left: 40px;">This shows up for everyone, but the following privileges must be granted to be able to actually make a reservation:</p>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user<span style="color: rgb(0, 0, 0);"> - imageCheckOut</span></span><br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - image group: available, computer group: available</p>\r\n<h2>Manage Groups</h2>\r\n<p style="margin-left: 40px;"><span style="color: rgb(0, 0, 255);">user <span style="color: rgb(0, 0, 0);">- groupAdmin is required to make this link show up</span></span></p>\r\n<h3 style="margin-left: 40px;">User Groups</h3>\r\n<p style="margin-left: 80px;">Groups a user owns and groups that are editable by groups a user is a member of show up in this section.</p>\r\n<h3 style="margin-left: 40px;">Resource Groups</h3>\r\n<p style="margin-left: 80px;">Groups owned by user groups a user is a member of show up here. More groups show up when the following attribute is granted for a resource group:</p>\r\n<p style="margin-left: 80px;"><span style="color: rgb(255, 102, 0);">resource<span style="color: rgb(0, 0, 0);"> - (any type) manageGroup</span></span></p>\r\n<h2>Manage Images</h2>\r\n<p style="margin-left: 40px;"><span style="color: rgb(0, 0, 255);">user</span> - imageAdmin is required to make this link show up</p>\r\n<h3 style="margin-left: 40px;">Edit Image Information</h3>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - imageAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - image group: administer</p>\r\n<h3 style="margin-left: 40px;">View Image Grouping</h3>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - imageAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - image group: manageGroup</p>\r\n<h3 style="margin-left: 40px;">View Image Mapping</h3>\r\n<p style="margin-left: 80px;"><span style="colo r: rgb(0, 0, 255);">user</span> - imageAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - image group: manageGroup</p>\r\n<p style="margin-left: 80px;">at same or different node:</p>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - computerAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - computer group: manageGroup</p>\r\n<h3 style="margin-left: 40px;">Create New Image</h3>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - imageAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - image group: available, computer group: available</p>\r\n<h2>Manage Schedules</h2>\r\n<p style="margin-left: 40px;"><span style="color: rgb(0, 0, 255);">user</span> - scheduleAdmin is required to make this link show up</p>\r\n<p style="margin-left: 40px;">All schedules owned by a user will show up by default.</p>\r\n<p style="margin-left: 40px;">To edit schedule information for other schedules, these permissions are required:</p>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - scheduleAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - schedule group: administer</p>\r\n<h3 style="margin-left: 40px;">Schedule Grouping</h3>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - scheduleAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - schedule group: manageGroup</p>\r\n<h2>Manage Computers</h2>\r\n<p style="margin-left: 40px;"><span style="color: rgb(0, 0, 255);">user</span> - computerAdmin is required to make this link show up</p>\r\n<p style="margin-left: 40px;">Selection boxes for platforms and schedules only show up if a user has access to more than one platform or schedule.</p>\r\n<h3 style="margin-left: 40px;">Edit Computer Grouping</h3>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - computerAdmin<br />\r\n<sp an style="color: rgb(255, 102, 0);">resource</span> - computer group: manageGroup</p>\r\n<h3 style="margin-left: 40px;">Computer Utilities</h3>\r\n<h4 style="margin-left: 80px;">Reload computers with image</h4>\r\n<p style="margin-left: 120px;"><span style="color: rgb(0, 0, 255);">user</span> - computerAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - computer group: administer</p>\r\n<p style="margin-left: 120px;">and at same or different node:</p>\r\n<p style="margin-left: 120px;"><span style="color: rgb(0, 0, 255);">user</span> - imageCheckOut or imageAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - image group: available</p>\r\n<h4 style="margin-left: 80px;">Change state of computers</h4>\r\n<p style="margin-left: 120px;"><span style="color: rgb(0, 0, 255);">user</span> - computerAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - computer group: administer</p>\r\n<h4 style="margin-left: 80px;">Change schedule of c omputers</h4>\r\n<p style="margin-left: 120px;"><span style="color: rgb(0, 0, 255);">user</span> - computerAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - computer group: administer</p>\r\n<p style="margin-left: 120px;">and at same or different node:</p>\r\n<p style="margin-left: 120px;"><span style="color: rgb(0, 0, 255);">user</span> - scheduleAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - schedule group: manageGroup</p>\r\n<h3 style="margin-left: 40px;">Edit Computer Information</h3>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - computerAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - computer group: administer</p>\r\n<p style="margin-left: 80px;">and at same or different node:</p>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - scheduleAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - schedule group: manageGroup</ p>\r\n<p style="margin-left: 80px;"> </p>\r\n<h2>Management Nodes</h2>\r\n<p style="margin-left: 40px;"><span style="color: rgb(0, 0, 255);">user</span> - mgmtNodeAdmin is required to make this link show up</p>\r\n<h3 style="margin-left: 40px;">Edit Management Node Information</h3>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - mgmtNodeAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - management node group: administer</p>\r\n<h3 style="margin-left: 40px;">Edit Management Node Grouping</h3>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - mgmtNodeAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - management node group: manageGroup</p>\r\n<h3 style="margin-left: 40px;">Edit Management Node Mapping</h3>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - mgmtNodeAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - man agement node group: manageGroup</p>\r\n<p style="margin-left: 80px;">at same or different node:</p>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - computerAdmin<br />\r\n<span style="color: rgb(255, 102, 0);">resource</span> - computer group: manageGroup</p>\r\n<h2>Privileges</h2>\r\n<p style="margin-left: 40px;"><span style="color: rgb(0, 0, 255);">user</span> - nodeAdmin, userGrant, or resourceGrant is required to make this link show up</p>\r\n<h3 style="margin-left: 40px;">Add Child / Delete Node and Children</h3>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - nodeAdmin</p>\r\n<h3 style="margin-left: 40px;">Add User / modify user privileges</h3>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - userGrant</p>\r\n<h3 style="margin-left: 40px;">Add Group / modify user group privileges</h3>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - user Grant</p>\r\n<h3 style="margin-left: 40px;">Add Resource Group / modify resource group privileges</h3>\r\n<p style="margin-left: 80px;"><span style="color: rgb(0, 0, 255);">user</span> - resourceGrant</p>\r\n<p> </p>'), ('Resources', 'Resources', '<h2>Overview</h2>\r\n<p>Computers, images, management nodes, and schedules have some very similar characteristics in how they are handled within the VCL site. Therefore, there are times where it is easier to refer to them all together as <b><span style="color: rgb(255, 0, 0);">resources</span></b>. Here are some similarities between them:</p>\r\n<ul>\r\n <li>They are all managed by adding them to <span style="color: rgb(255, 0, 0);"><b>resource groups</b></span>. All resource groups have a type associated with them such that only <span style="color: rgb(0, 0, 255);">images</span> can be part of an <span style="color: rgb(0, 0, 255);">image group</span>, only <span style="color: rgb(0, 0, 255);">computers</span> can be part of a <span style="color: rgb(0, 0, 255);">computer group</span>, etc.</li>\r\n <li>Resources of one type can be related to resources of certain other types through <span style="color: rgb(255, 0, 0);"><b>resource mapping</b> </span>. <span style="color: rgb(0, 0, 255);">Image groups</span> and <span style="color: rgb(0, 0, 255);">computer groups</span> can be mapped together, and <span style="color: rgb(0, 0, 255);">management node</span><span style="color: rgb(0, 0, 255);"> groups</span> and <span style="color: rgb(0, 0, 255);">computer</span><span style="color: rgb(0, 0, 255);"> groups</span> can be mapped together.</li>\r\n <li>Privileges over resources are only granted through resource groups. Privileges cannot be granted directly to a resource.</li>\r\n <li>There is an <span style="color: rgb(255, 0, 0);"><b>Admin</b></span> privilege that can be granted to users for each type of resource: computerAdmin, imageAdmin, mgmtNodeAdmin, and scheduleAdmin</li>\r\n</ul>\r\n<h2>Grouping</h2>\r\n<p>The amount of images and computers that become part of a VCL install can grow very rappidly. Because of this, it is much easier to deal with them in groups rather than individually. The amount of schedules and management nodes does not typically grow very large. However, due to other similarities as resources, they are handled in groups as well.</p>\r\n<h2>Mapping</h2>\r\n<p>Mapping allows for tight control over how resources can be used together. Through image to computer mapping, one has tight control over which computers an image could end up being run. This can be used to control things like platform dependencies, to ensure only vm images get run on the correct type of vm computer, and to ensure an image containing software purchased by a specific group only gets run on computers owned by the same group (this can be handled with resource privileges as well).</p>\r\n<p>Through management node to computer mapping, assignment of which management nodes control which computers is accomplished. One can quickly switch which management node is in control of a group of computers. Additionally, when management node redundancy is fully implemented, this is how management nodes will be able to control overlapping groups of computers.</p>\r\n<h2>Resource Privileges</h2>\r\n<p>There are three privileges that can be assigned to resource groups:</p>\r\n<ul>\r\n <li>available</li>\r\n <li>administer</li>\r\n <li>manageGroup</li>\r\n</ul>\r\n<p><span style="color: rgb(0, 0, 255);">available</span> is only used for image and computer groups. If it is assigned to a schedule or management node group, it is simply ignored. This privilege correspondes to these user group privileges: imageCheckOut and imageAdmin. When a user has one of these two privileges at a node along with an image group or a computer group having the available privilege at the same node, then the user will have access to make a reservations for the images in the group (imageCheckOut) or make a new images based off of images in the group (imageAdmin). Note that both an image group and a computer group must have the available permission where a user has imageCheckOut for the user to make a res ervation for an image in the image group. This is used to determine which computers are available at the node to go along with which images are also available at the node.</p>\r\n<p><span style="color: rgb(0, 0, 255);">administer</span> is used for all types of resources, and thus corresponds to all of the *Admin user privileges (computerAdmin, imageAdmin, mgmtNodeAdmin, and scheduleAdmin). Administer generally grants access to manage specific <i>characteristics</i> of resources in a group, but not to manage any grouping information. For example, if a user has the imageAdmin privilege at a node where an image group has the administer privilege, the user would then have access to modify <i>characteristics</i> of images in that group (name, owner, minimum specs required by the image, etc), but would <b>not</b> have access to edit which images are <i>in the group</i>.</p>\r\n<p><span style="color: rgb(0, 0, 255);">manageGroup</span> is also used for all types of resources. It grants ac cess to a few different things. One is the ability to modify information about a group under <span style="color: rgb(0, 0, 255);">Manage Groups </span>(if a user also has the groupAdmin privilege). Another is the ability to manage membership of a group. Finally, it provides access for mapping one type of group to another (for this, manageGroup must be granted for both types of resources). Additionally, there is an extra way manageGroup is used specifically related to computer groups: a user must have scheduleAdmin and manageGroup over a schedule group to be able to change the schedule of a computer (both through Manage Computers->Edit Computer Information and Manage Computers->Computer Utilities->Change schedule of computers).</p>'); @@ -1565,21 +1568,21 @@ INSERT INTO `documentation` (`name`, `ti -- Dumping data for table `image` -- -INSERT INTO `image` (`id`, `name`, `prettyname`, `ownerid`, `imagetypeid`, `platformid`, `OSid`, `imagemetaid`, `minram`, `minprocnumber`, `minprocspeed`, `minnetwork`, `maxconcurrent`, `reloadtime`, `deleted`, `test`, `lastupdate`, `forcheckout`, `maxinitialtime`, `project`, `size`) VALUES +INSERT IGNORE INTO `image` (`id`, `name`, `prettyname`, `ownerid`, `imagetypeid`, `platformid`, `OSid`, `imagemetaid`, `minram`, `minprocnumber`, `minprocspeed`, `minnetwork`, `maxconcurrent`, `reloadtime`, `deleted`, `test`, `lastupdate`, `forcheckout`, `maxinitialtime`, `project`, `size`) VALUES (1, 'noimage', 'No Image', 1, 1, 1, 2, NULL, 0, 1, 0, 10, NULL, 0, 0, 0, NULL, 0, 0, 'vcl', 1450); -- -- Dumping data for table `imagerevision` -- -INSERT INTO `imagerevision` (`id`, `imageid`, `revision`, `userid`, `datecreated`, `deleted`, `production`, `comments`, `imagename`) VALUES +INSERT IGNORE INTO `imagerevision` (`id`, `imageid`, `revision`, `userid`, `datecreated`, `deleted`, `production`, `comments`, `imagename`) VALUES (1, 1, 0, 1, '1980-01-01 00:00:00', 0, 1, NULL, 'noimage'); -- -- Dumping data for table `imagetype` -- -INSERT INTO `imagetype` (`id`, `name`) VALUES +INSERT IGNORE INTO `imagetype` (`id`, `name`) VALUES (1, 'none'), (2, 'partimage'), (3, 'partimage-ng'), @@ -1593,23 +1596,15 @@ INSERT INTO `imagetype` (`id`, `name`) V -- Dumping data for table `IMtype` -- -INSERT INTO `IMtype` (`id`, `name`) VALUES +INSERT IGNORE INTO `IMtype` (`id`, `name`) VALUES (2, 'jabber'), (1, 'none'); -- --- Dumping data for table `localauth` --- - -INSERT INTO `localauth` (`userid`, `passhash`, `salt`, `lastupdated`, `lockedout`) VALUES -(1, 'd8c730cc269d3d6b6147a416fb49c2be1a70aefc', 'QwkCHLpY', '2007-05-17 09:56:01', 0), -(3, 'da60188ee483aa16eeb82d4969a0f79d0d177d99', '8ht2Pa55', '2007-05-17 09:56:01', 0); - --- -- Dumping data for table `module` -- -INSERT INTO `module` (`id`, `name`, `prettyname`, `description`, `perlpackage`) VALUES +INSERT IGNORE INTO `module` (`id`, `name`, `prettyname`, `description`, `perlpackage`) VALUES (1, 'provisioning_xcat_13', 'xCAT 1.3 Provisioning Module', '', 'VCL::Module::Provisioning::xCAT'), (3, 'provisioning_lab', 'Computing Lab Provisioning Module', '', 'VCL::Module::Provisioning::Lab'), (4, 'os_windows', 'Windows OS Module', '', 'VCL::Module::OS::Windows'), @@ -1639,10 +1634,20 @@ INSERT INTO `module` (`id`, `name`, `pre (31, 'predictive_level_2', 'Predictive Loading Module Level 2', 'Power off computer. If a virtual machine, it will be also destroyed.', 'VCL::Module::Predictive::Level_2'); -- +-- Dumping data for table `OStype` +-- + +INSERT IGNORE INTO `OStype` (`id`, `name`) VALUES +(2, 'linux'), +(3, 'unix'), +(1, 'windows'), +(4, 'osx'); + +-- -- Dumping data for table `OS` -- -INSERT INTO `OS` (`id`, `name`, `prettyname`, `type`, `installtype`, `sourcepath`, `moduleid`) VALUES +INSERT IGNORE INTO `OS` (`id`, `name`, `prettyname`, `type`, `installtype`, `sourcepath`, `moduleid`) VALUES (2, 'sun4x_58', 'Solaris 5.8 (Lab)', 'unix', 'none', NULL, 15), (3, 'win2k', 'Windows 2000 (Bare Metal)', 'windows', 'partimage', 'image', 4), (6, 'rhel3', 'Red Hat Enterprise Linux 3 (Kickstart)', 'linux', 'kickstart', 'rhas3', 5), @@ -1693,7 +1698,7 @@ INSERT INTO `OS` (`id`, `name`, `prettyn -- Dumping data for table `OSinstalltype` -- -INSERT INTO `OSinstalltype` (`id`, `name`) VALUES +INSERT IGNORE INTO `OSinstalltype` (`id`, `name`) VALUES (2, 'kickstart'), (3, 'none'), (1, 'partimage'), @@ -1701,20 +1706,10 @@ INSERT INTO `OSinstalltype` (`id`, `name (5, 'vbox'); -- --- Dumping data for table `OStype` --- - -INSERT INTO `OStype` (`id`, `name`) VALUES -(2, 'linux'), -(3, 'unix'), -(1, 'windows'), -(4, 'osx'); - --- -- Dumping data for table `platform` -- -INSERT INTO `platform` (`id`, `name`) VALUES +INSERT IGNORE INTO `platform` (`id`, `name`) VALUES (1, 'i386'), (4, 'i386_lab'), (3, 'ultrasparc'); @@ -1723,7 +1718,7 @@ INSERT INTO `platform` (`id`, `name`) VA -- Dumping data for table `privnode` -- -INSERT INTO `privnode` (`id`, `parent`, `name`) VALUES +INSERT IGNORE INTO `privnode` (`id`, `parent`, `name`) VALUES (2, 1, 'Developer'), (1, 1, 'Root'), (3, 2, 'VCL'), @@ -1734,7 +1729,7 @@ INSERT INTO `privnode` (`id`, `parent`, -- Dumping data for table `privisioning` -- -INSERT INTO `provisioning` (`id`, `name`, `prettyname`, `moduleid`) VALUES +INSERT IGNORE INTO `provisioning` (`id`, `name`, `prettyname`, `moduleid`) VALUES (1, 'xcat_13', 'xCAT 1.3', 1), (3, 'lab', 'Computing Lab', 3), (5, 'xcat_21', 'xCAT 2.1', 11), @@ -1757,10 +1752,21 @@ INSERT IGNORE provisioningOSinstalltype INSERT IGNORE provisioningOSinstalltype (provisioningid, OSinstalltypeid) SELECT provisioning.id, OSinstalltype.id FROM provisioning, OSinstalltype WHERE provisioning.name LIKE '%libvirt%' AND OSinstalltype.name = 'vmware'; -- +-- Dumping data for table `resourcetype` +-- + +INSERT IGNORE INTO `resourcetype` (`id`, `name`) VALUES +(12, 'computer'), +(13, 'image'), +(16, 'managementnode'), +(15, 'schedule'), +(17, 'serverprofile'); + +-- -- Dumping data for table `resource` -- -INSERT INTO `resource` (`id`, `resourcetypeid`, `subid`) VALUES +INSERT IGNORE INTO `resource` (`id`, `resourcetypeid`, `subid`) VALUES (4, 13, 1), (8, 15, 1); @@ -1768,7 +1774,7 @@ INSERT INTO `resource` (`id`, `resourcet -- Dumping data for table `resourcegroup` -- -INSERT INTO `resourcegroup` (`id`, `name`, `ownerusergroupid`, `resourcetypeid`) VALUES +INSERT IGNORE INTO `resourcegroup` (`id`, `name`, `ownerusergroupid`, `resourcetypeid`) VALUES (1, 'allComputers', 3, 12), (2, 'allImages', 3, 13), (3, 'allManagementNodes', 3, 16), @@ -1783,14 +1789,14 @@ INSERT INTO `resourcegroup` (`id`, `name -- Dumping data for table `resourcegroupmembers` -- -INSERT INTO `resourcegroupmembers` (`resourceid`, `resourcegroupid`) VALUES +INSERT IGNORE INTO `resourcegroupmembers` (`resourceid`, `resourcegroupid`) VALUES (8, 4); -- -- Dumping data for table `resourcemap` -- -INSERT INTO `resourcemap` (`resourcegroupid1`, `resourcetypeid1`, `resourcegroupid2`, `resourcetypeid2`) VALUES +INSERT IGNORE INTO `resourcemap` (`resourcegroupid1`, `resourcetypeid1`, `resourcegroupid2`, `resourcetypeid2`) VALUES (2, 13, 1, 12), (3, 16, 1, 12), (10, 13, 5, 12), @@ -1802,7 +1808,7 @@ INSERT INTO `resourcemap` (`resourcegrou -- Dumping data for table `resourcepriv` -- -INSERT INTO `resourcepriv` (`id`, `resourcegroupid`, `privnodeid`, `type`) VALUES +INSERT IGNORE INTO `resourcepriv` (`id`, `resourcegroupid`, `privnodeid`, `type`) VALUES (1, 1, 4, 'available'), (2, 1, 4, 'administer'), (3, 1, 4, 'manageGroup'), @@ -1835,35 +1841,24 @@ INSERT INTO `resourcepriv` (`id`, `resou (32, 11, 4, 'manageMapping'); -- --- Dumping data for table `resourcetype` --- - -INSERT INTO `resourcetype` (`id`, `name`) VALUES -(12, 'computer'), -(13, 'image'), -(16, 'managementnode'), -(15, 'schedule'), -(17, 'serverprofile'); - --- -- Dumping data for table `schedule` -- -INSERT INTO `schedule` (`id`, `name`, `ownerid`) VALUES +INSERT IGNORE INTO `schedule` (`id`, `name`, `ownerid`) VALUES (1, 'VCL 24x7', 1); -- -- Dumping data for table `scheduletimes` -- -INSERT INTO `scheduletimes` (`scheduleid`, `start`, `end`) VALUES +INSERT IGNORE INTO `scheduletimes` (`scheduleid`, `start`, `end`) VALUES (1, 0, 10080); -- -- Dumping data for table `state` -- -INSERT INTO `state` (`id`, `name`) VALUES +INSERT IGNORE INTO `state` (`id`, `name`) VALUES (2, 'available'), (4, 'classreserved'), (9, 'cleaning'), @@ -1898,16 +1893,24 @@ INSERT INTO `state` (`id`, `name`) VALUE -- Dumping data for table `user` -- -INSERT INTO `user` (`id`, `uid`, `unityid`, `affiliationid`, `firstname`, `lastname`, `preferredname`, `email`, `emailnotices`, `IMtypeid`, `IMid`, `adminlevelid`, `width`, `height`, `bpp`, `audiomode`, `mapdrives`, `mapprinters`, `mapserial`, `showallgroups`, `lastupdated`) VALUES +INSERT IGNORE INTO `user` (`id`, `uid`, `unityid`, `affiliationid`, `firstname`, `lastname`, `preferredname`, `email`, `emailnotices`, `IMtypeid`, `IMid`, `adminlevelid`, `width`, `height`, `bpp`, `audiomode`, `mapdrives`, `mapprinters`, `mapserial`, `showallgroups`, `lastupdated`) VALUES (1, 101, 'admin', 1, 'vcl', 'admin', '', 'root@localhost', 0, 1, NULL, 3, 1024, 768, 16, 'local', 1, 1, 1, 1, '2007-05-17 09:58:39'), (2, NULL, 'vclreload', 1, 'vcl', 'reload', NULL, '', 0, 1, NULL, 1, 1024, 768, 16, 'local', 1, 1, 0, 0, '0000-00-00 00:00:00'), (3, NULL, 'vclsystem', 1, 'vcl', 'system', NULL, '', 0, 1, NULL, 1, 1024, 768, 16, 'local', 1, 1, 0, 0, '0000-00-00 00:00:00'); -- +-- Dumping data for table `localauth` +-- + +INSERT IGNORE INTO `localauth` (`userid`, `passhash`, `salt`, `lastupdated`, `lockedout`) VALUES +(1, 'd8c730cc269d3d6b6147a416fb49c2be1a70aefc', 'QwkCHLpY', '2007-05-17 09:56:01', 0), +(3, 'da60188ee483aa16eeb82d4969a0f79d0d177d99', '8ht2Pa55', '2007-05-17 09:56:01', 0); + +-- -- Dumping data for table `usergroup` -- -INSERT INTO `usergroup` (`id`, `name`, `affiliationid`, `ownerid`, `editusergroupid`, `custom`, `courseroll`, `initialmaxtime`, `totalmaxtime`, `maxextendtime`, `overlapResCount`) VALUES +INSERT IGNORE INTO `usergroup` (`id`, `name`, `affiliationid`, `ownerid`, `editusergroupid`, `custom`, `courseroll`, `initialmaxtime`, `totalmaxtime`, `maxextendtime`, `overlapResCount`) VALUES (1, 'global', 1, 1, 1, 1, 0, 240, 360, 30, 0), (3, 'adminUsers', 1, 1, 1, 1, 0, 480, 600, 180, 50), (4, 'manageNewImages', 1, 1, 3, 1, 0, 240, 360, 30, 0), @@ -1918,7 +1921,7 @@ INSERT INTO `usergroup` (`id`, `name`, ` -- Dumping data for table `usergroupmembers` -- -INSERT INTO `usergroupmembers` (`userid`, `usergroupid`) VALUES +INSERT IGNORE INTO `usergroupmembers` (`userid`, `usergroupid`) VALUES (1, 1), (1, 3), (1, 4), @@ -1926,28 +1929,10 @@ INSERT INTO `usergroupmembers` (`userid` (1, 6); -- --- Dumping data for table `usergrouppriv` --- - -INSERT INTO `usergrouppriv` (`usergroupid`, `userprivtypeid`) VALUES -(3, 1), -(3, 2), -(3, 3), -(3, 4), -(3, 5), -(3, 6), -(3, 7), -(3, 8), -(3, 9), -(3, 10), -(3, 11), -(3, 12); - --- -- Dumping data for table `usergroupprivtype` -- -INSERT INTO `usergroupprivtype` (`id`, `name`, `help`) VALUES +INSERT IGNORE INTO `usergroupprivtype` (`id`, `name`, `help`) VALUES (1, 'Manage Additional User Group Permissions', 'This gives users in the group access to this portion of the site.'), (2, 'Manage Block Allocations (global)', 'Grants the ability to create, accept, and reject block allocations for any affiliation.'), (3, 'Set Overlapping Reservation Count', 'Grants the ability to control how many overlapping reservations users in a given user group can make.'), @@ -1967,10 +1952,47 @@ INSERT INTO `usergroupprivtype` (`id`, ` (17, 'Site Configuration (affiliation only)', 'Grants the ability to view the Site Configuration part of the site to manage site settings specific to the user''s own affiliation.'); -- +-- Dumping data for table `usergrouppriv` +-- + +INSERT IGNORE INTO `usergrouppriv` (`usergroupid`, `userprivtypeid`) VALUES +(3, 1), +(3, 2), +(3, 3), +(3, 4), +(3, 5), +(3, 6), +(3, 7), +(3, 8), +(3, 9), +(3, 10), +(3, 11), +(3, 12); + +-- +-- Dumping data for table `userprivtype` +-- + +INSERT IGNORE INTO `userprivtype` (`id`, `name`) VALUES +(1, 'block'), +(2, 'cascade'), +(4, 'computerAdmin'), +(11, 'groupAdmin'), +(5, 'imageAdmin'), +(6, 'imageCheckOut'), +(13, 'mgmtNodeAdmin'), +(3, 'nodeAdmin'), +(10, 'resourceGrant'), +(12, 'scheduleAdmin'), +(8, 'serverCheckOut'), +(9, 'serverProfileAdmin'), +(7, 'userGrant'); + +-- -- Dumping data for table `userpriv` -- -INSERT INTO `userpriv` (`id`, `userid`, `usergroupid`, `privnodeid`, `userprivtypeid`) VALUES +INSERT IGNORE INTO `userpriv` (`id`, `userid`, `usergroupid`, `privnodeid`, `userprivtypeid`) VALUES (24, NULL, 3, 3, 2), (16, NULL, 3, 3, 3), (11, NULL, 3, 3, 4), @@ -1997,29 +2019,10 @@ INSERT INTO `userpriv` (`id`, `userid`, (10, 1, NULL, 3, 13); -- --- Dumping data for table `userprivtype` --- - -INSERT INTO `userprivtype` (`id`, `name`) VALUES -(1, 'block'), -(2, 'cascade'), -(4, 'computerAdmin'), -(11, 'groupAdmin'), -(5, 'imageAdmin'), -(6, 'imageCheckOut'), -(13, 'mgmtNodeAdmin'), -(3, 'nodeAdmin'), -(10, 'resourceGrant'), -(12, 'scheduleAdmin'), -(8, 'serverCheckOut'), -(9, 'serverProfileAdmin'), -(7, 'userGrant'); - --- -- Dumping data for table `variable` -- -INSERT INTO `variable` (`name`, `serialization`, `value`) VALUES +INSERT IGNORE INTO `variable` (`name`, `serialization`, `value`) VALUES ('schema-version', 'none', '1'), ('timesource|global', 'none','time.nist.gov,time-a.nist.gov,time-b.nist.gov,time.windows.com'), ('acknowledgetimeout', 'none', '900'), @@ -2037,7 +2040,7 @@ INSERT INTO `variable` (`name`, `seriali -- Dumping data for table `vmprofile` -- -INSERT INTO `vmprofile` (`profilename`, `imageid`, `resourcepath`, `repositorypath`, `repositoryimagetypeid`, `datastorepath`, `datastoreimagetypeid`, `vmpath`, `virtualswitch0`, `virtualswitch1`, `vmdisk`, `username`, `password`) VALUES +INSERT IGNORE INTO `vmprofile` (`profilename`, `imageid`, `resourcepath`, `repositorypath`, `repositoryimagetypeid`, `datastorepath`, `datastoreimagetypeid`, `vmpath`, `virtualswitch0`, `virtualswitch1`, `vmdisk`, `username`, `password`) VALUES ('VMware ESXi - local storage', (SELECT `id` FROM `image` WHERE `name` = 'noimage'), NULL, NULL, (SELECT `id` FROM `imagetype` WHERE `name` = 'none'), 'datastore1', (SELECT `id` FROM `imagetype` WHERE `name` = 'vmdk'), 'datastore1', 'Private', 'Public', 'localdisk', NULL, NULL), ('VMware ESXi - network storage', (SELECT `id` FROM `image` WHERE `name` = 'noimage'), NULL, NULL, (SELECT `id` FROM `imagetype` WHERE `name` = 'none'), 'nfs-datastore', (SELECT `id` FROM `imagetype` WHERE `name` = 'vmdk'), 'nfs-datastore', 'Private', 'Public', 'networkdisk', NULL, NULL), ('VMware ESXi - local & network storage', (SELECT `id` FROM `image` WHERE `name` = 'noimage'), NULL, NULL, (SELECT `id` FROM `imagetype` WHERE `name` = 'none'), 'nfs-datastore', (SELECT `id` FROM `imagetype` WHERE `name` = 'vmdk'), 'datastore1', 'Private', 'Public', 'networkdisk', NULL, NULL), @@ -2048,7 +2051,7 @@ INSERT INTO `vmprofile` (`profilename`, -- Dumping data for table `vmtype` -- -INSERT INTO `vmtype` (`id`, `name`) VALUES +INSERT IGNORE INTO `vmtype` (`id`, `name`) VALUES (1, 'vmware'), (2, 'xen'), (3, 'vmwareGSX'), @@ -2362,3 +2365,72 @@ ALTER TABLE `winKMS` -- ALTER TABLE `winProductKey` ADD CONSTRAINT `winProductKey_ibfk_1` FOREIGN KEY (`affiliationid`) REFERENCES `affiliation` (`id`) ON UPDATE CASCADE; + +-- +-- Legacy columns to drop +-- + +ALTER TABLE `computer` ADD `deptid` bit(1) NULL default NULL; +ALTER TABLE `computer` DROP `deptid`; + +ALTER TABLE `computer` ADD `preferredimageid` bit(1) NULL default NULL; +ALTER TABLE `computer` DROP `preferredimageid`; + +ALTER TABLE `connectmethod` ADD `protocol` bit(1) NULL default NULL; +ALTER TABLE `connectmethod` DROP `protocol`; + +ALTER TABLE `connectmethod` ADD `port` bit(1) NULL default NULL; +ALTER TABLE `connectmethod` DROP `port`; + +ALTER TABLE `image` ADD `deptid` bit(1) NULL default NULL; +ALTER TABLE `image` DROP `deptid`; + +ALTER TABLE `imagemeta` ADD `usergroupid` bit(1) NULL default NULL; +ALTER TABLE `imagemeta` DROP `usergroupid`; + +ALTER TABLE `managementnode` ADD `predictivemoduleid` bit(1) NULL default NULL; +ALTER TABLE `managementnode` DROP `predictivemoduleid`; + +ALTER TABLE `request` ADD `reservationid` bit(1) NULL default NULL; +ALTER TABLE `request` DROP `reservationid`; + +ALTER TABLE `request` ADD `imageid` bit(1) NULL default NULL; +ALTER TABLE `request` DROP `imageid`; + +ALTER TABLE `reservation` ADD `daterequested` bit(1) NULL default NULL; +ALTER TABLE `reservation` DROP `daterequested`; + +ALTER TABLE `reservation` ADD `datemodified` bit(1) NULL default NULL; +ALTER TABLE `reservation` DROP `datemodified`; + +ALTER TABLE `reservation` ADD `end` bit(1) NULL default NULL; +ALTER TABLE `reservation` DROP `end`; + +ALTER TABLE `reservation` ADD `start` bit(1) NULL default NULL; +ALTER TABLE `reservation` DROP `start`; + +ALTER TABLE `user` ADD `curriculumid` bit(1) NULL default NULL; +ALTER TABLE `user` DROP `curriculumid`; + +ALTER TABLE `user` ADD `middlename` bit(1) NULL default NULL; +ALTER TABLE `user` DROP `middlename`; + +ALTER TABLE `vmhost` ADD `vmwaredisk` bit(1) NULL default NULL; +ALTER TABLE `vmhost` DROP `vmwaredisk`; + +ALTER TABLE `vmhost` ADD `vmkernalnic` bit(1) NULL default NULL; +ALTER TABLE `vmhost` DROP `vmkernalnic`; + +ALTER TABLE `vmprofile` ADD `vmtypeid` bit(1) NULL default NULL; +ALTER TABLE `vmprofile` DROP `vmtypeid`; + +ALTER TABLE `vmprofile` ADD `nasshare` bit(1) NULL default NULL; +ALTER TABLE `vmprofile` DROP `nasshare`; + +-- +-- Legacy tables to drop +-- + +DROP TABLE IF EXISTS `xmlrpcKey`; +DROP TABLE IF EXISTS `curriculum`; +DROP TABLE IF EXISTS `dept`;
