https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114758
Revision: 114758
Author: laner
Date: 2012-04-06 02:51:03 +0000 (Fri, 06 Apr 2012)
Log Message:
-----------
* Remove position from puppet groups, classes, and variables. It's confusing
and it's easier and better to just sort alphabetically.
* Add indexes for unindexed queries
* Fix issue with global puppet groups where project specific groups were being
added as global groups and global groups were being added as non-global groups.
Modified Paths:
--------------
trunk/extensions/OpenStackManager/OpenStackManager.php
trunk/extensions/OpenStackManager/OpenStackNovaPuppetGroup.php
trunk/extensions/OpenStackManager/openstack.sql
trunk/extensions/OpenStackManager/special/SpecialNovaPuppetGroup.php
Added Paths:
-----------
trunk/extensions/OpenStackManager/schema-changes/openstack_add_name_indexes.sql
trunk/extensions/OpenStackManager/schema-changes/openstack_drop_positions.sql
Modified: trunk/extensions/OpenStackManager/OpenStackManager.php
===================================================================
--- trunk/extensions/OpenStackManager/OpenStackManager.php 2012-04-06
01:17:05 UTC (rev 114757)
+++ trunk/extensions/OpenStackManager/OpenStackManager.php 2012-04-06
02:51:03 UTC (rev 114758)
@@ -178,6 +178,13 @@
$updater->addExtensionTable( 'openstack_puppet_classes',
"$base/openstack.sql" );
$updater->addExtensionUpdate( array( 'addField',
'openstack_puppet_groups', 'group_project',
"$base/schema-changes/openstack_project_field.sql", true ) );
$updater->addExtensionUpdate( array( 'addField',
'openstack_puppet_groups', 'group_is_global',
"$base/schema-changes/openstack_group_is_global_field.sql", true ) );
+ $updater->addExtensionUpdate( array( 'dropField',
'openstack_puppet_groups', 'group_position',
"$base/schema-changes/openstack_drop_positions.sql", true ) );
+ $updater->addExtensionUpdate( array( 'dropField',
'openstack_puppet_vars', 'var_position',
"$base/schema-changes/openstack_drop_positions.sql", true ) );
+ $updater->addExtensionUpdate( array( 'dropField',
'openstack_puppet_classes', 'class_position',
"$base/schema-changes/openstack_drop_positions.sql", true ) );
+ $updater->addExtensionUpdate( array( 'addIndex',
'openstack_puppet_vars', 'var_name',
"$base/schema-changes/openstack_add_name_indexes.sql", true ) );
+ $updater->addExtensionUpdate( array( 'addIndex',
'openstack_puppet_vars', 'var_group_id',
"$base/schema-changes/openstack_add_name_indexes.sql", true ) );
+ $updater->addExtensionUpdate( array( 'addIndex',
'openstack_puppet_classes', 'class_name',
"$base/schema-changes/openstack_add_name_indexes.sql", true ) );
+ $updater->addExtensionUpdate( array( 'addIndex',
'openstack_puppet_classes', 'class_group_id',
"$base/schema-changes/openstack_add_name_indexes.sql", true ) );
break;
}
return true;
Modified: trunk/extensions/OpenStackManager/OpenStackNovaPuppetGroup.php
===================================================================
--- trunk/extensions/OpenStackManager/OpenStackNovaPuppetGroup.php
2012-04-06 01:17:05 UTC (rev 114757)
+++ trunk/extensions/OpenStackManager/OpenStackNovaPuppetGroup.php
2012-04-06 02:51:03 UTC (rev 114758)
@@ -9,7 +9,7 @@
class OpenStackNovaPuppetGroup {
- private $id, $name, $position, $vars, $classes;
+ private $id, $name, $is_global, $vars, $classes;
/**
* Constructor. Can't be called directly. Call one of the static
NewFrom* methods
@@ -18,10 +18,10 @@
* @param $position int
* @param $project string|null
*/
- public function __construct( $id, $name, $position, $project=null ) {
+ public function __construct( $id, $name, $is_global, $project=null ) {
$this->id = $id;
$this->name = $name;
- $this->position = $position;
+ $this->is_global = $is_global;
$this->project = $project;
$this->loadVars( $id );
$this->loadClasses( $id );
@@ -35,17 +35,17 @@
}
/**
- * @return Int
+ * @return Boolean
*/
- public function getId() {
- return $this->id;
+ public function getIsGlobal() {
+ return $this->is_global;
}
/**
- * @return int
+ * @return Int
*/
- public function getPosition() {
- return $this->position;
+ public function getId() {
+ return $this->id;
}
public function getVars() {
@@ -73,7 +73,6 @@
'openstack_puppet_groups',
array( 'group_id',
'group_name',
- 'group_position',
'group_project',
'group_is_global' ),
array( 'group_name' => $name,
@@ -98,8 +97,6 @@
array(
'group_id',
'group_name',
- 'group_position',
- 'group_project',
'group_is_global' ),
array( 'group_id' => intval( $id ) ),
__METHOD__ );
@@ -155,7 +152,7 @@
return new OpenStackNovaPuppetGroup(
intval( $row->group_id ),
$row->group_name,
- $row->group_position,
+ $row->group_is_global,
$row->group_project
);
}
@@ -175,12 +172,11 @@
'openstack_puppet_groups',
array( 'group_id',
'group_name',
- 'group_position',
'group_project',
'group_is_global' ),
$condition,
__METHOD__,
- array( 'ORDER BY' => 'group_position ASC' ) // FIXME:
Unindexed
+ array( 'ORDER BY' => 'group_name ASC' )
);
$groups = array();
foreach ( $rows as $row ) {
@@ -197,11 +193,10 @@
$rows = $dbr->select(
'openstack_puppet_vars',
array( 'var_id',
- 'var_name',
- 'var_position' ),
- array( 'var_group_id' => $groupid ), // FIXME:
Unindexed query
+ 'var_name' ),
+ array( 'var_group_id' => $groupid ),
__METHOD__,
- array( 'ORDER BY' => 'var_position ASC' ) // FIXME:
Unindexed
+ array( 'ORDER BY' => 'var_name ASC' )
);
$this->vars = array();
@@ -210,7 +205,6 @@
$this->vars[] = array(
"name" => $row->var_name,
"id" => intval( $row->var_id ),
- "position" => intval(
$row->var_position )
);
}
}
@@ -224,11 +218,10 @@
$rows = $dbr->select(
'openstack_puppet_classes',
array( 'class_id',
- 'class_name',
- 'class_position' ),
- array( 'class_group_id' => $groupid ), // FIXME:
Unindexed query
+ 'class_name' ),
+ array( 'class_group_id' => $groupid ),
__METHOD__,
- array( 'ORDER BY' => 'class_position ASC' ) // FIXME:
Unindexed
+ array( 'ORDER BY' => 'class_name ASC' )
);
$this->classes = array();
@@ -237,7 +230,6 @@
$this->classes[] = array(
"name" => $row->class_name,
"id" => intval( $row->class_id ),
- "position" => intval(
$row->class_position )
);
}
}
@@ -245,20 +237,18 @@
/**
* @param $name string
- * @param $position int
* @return bool
*/
- public static function addGroup( $name, $position, $project='' ) {
+ public static function addGroup( $name, $project='' ) {
if ( $project ) {
- $group_is_global = true;
- } else {
$group_is_global = false;
+ } else {
+ $group_is_global = true;
}
$dbw = wfGetDB( DB_MASTER );
return $dbw->insert(
'openstack_puppet_groups',
array( 'group_name' => $name,
- 'group_position' => $position,
'group_project' => $project,
'group_is_global' => $group_is_global,
),
@@ -266,24 +256,22 @@
);
}
- public static function addVar( $name, $position, $groupid ) {
+ public static function addVar( $name, $groupid ) {
$dbw = wfGetDB( DB_MASTER );
return $dbw->insert(
'openstack_puppet_vars',
array( 'var_name' => $name,
- 'var_position' => $position,
'var_group_id' => $groupid
),
__METHOD__
);
}
- public static function addClass( $name, $position, $groupid ) {
+ public static function addClass( $name, $groupid ) {
$dbw = wfGetDB( DB_MASTER );
return $dbw->insert(
'openstack_puppet_classes',
array( 'class_name' => $name,
- 'class_position' => $position,
'class_group_id' => $groupid
),
__METHOD__
@@ -340,12 +328,12 @@
);
}
- public static function updateVar( $id, $groupid, $position ) {
+ # TODO: add ability to update name
+ public static function updateVar( $id, $groupid ) {
$dbw = wfGetDB( DB_MASTER );
return $dbw->update(
'openstack_puppet_vars',
array(
- 'var_position' => $position,
'var_group_id' => $groupid
),
array( 'var_id' => $id ),
@@ -353,12 +341,12 @@
);
}
- public static function updateClass( $id, $groupid, $position ) {
+ # TODO: add ability to update name
+ public static function updateClass( $id, $groupid ) {
$dbw = wfGetDB( DB_MASTER );
return $dbw->update(
'openstack_puppet_classes',
array(
- 'class_position' => $position,
'class_group_id' => $groupid
),
array( 'class_id' => $id ),
@@ -366,18 +354,4 @@
);
}
- public static function updateGroupPosition( $id, $position ) {
- $dbw = wfGetDB( DB_MASTER );
- return $dbw->update(
- 'openstack_puppet_groups',
- array(
- 'group_position' => $position,
- ),
- array(
- 'group_id' => $id,
- ),
- __METHOD__
- );
- }
-
}
Modified: trunk/extensions/OpenStackManager/openstack.sql
===================================================================
--- trunk/extensions/OpenStackManager/openstack.sql 2012-04-06 01:17:05 UTC
(rev 114757)
+++ trunk/extensions/OpenStackManager/openstack.sql 2012-04-06 02:51:03 UTC
(rev 114758)
@@ -6,9 +6,6 @@
-- User-presentable name of the group
group_name varchar(255) binary not null,
- -- Position of group when displayed
- group_position int not null,
-
-- OpenStack project to which this group belongs, if any
group_project varchar(255) binary,
@@ -29,11 +26,11 @@
-- Group to which this variable belongs
var_group_id int not null,
- -- Position of variable inside its group
- var_position int not null
-
) /*$wgDBTableOptions*/;
+CREATE INDEX /*i*/var_name on /*_*/openstack_puppet_vars (var_name);
+CREATE INDEX /*i*/var_group_id on /*_*/openstack_puppet_vars (var_group_id);
+
CREATE TABLE /*_*/openstack_puppet_classes (
-- IF for puppet class
class_id int not null primary key auto_increment,
@@ -44,7 +41,7 @@
-- Group to which this class belongs
class_group_id int not null,
- -- Position of class inside its group
- class_position int not null
-
) /*$wgDBTableOptions*/;
+
+CREATE INDEX /*i*/class_name on /*_*/openstack_puppet_classes (class_name);
+CREATE INDEX /*i*/class_group_id on /*_*/openstack_puppet_classes
(class_group_id);
Added:
trunk/extensions/OpenStackManager/schema-changes/openstack_add_name_indexes.sql
===================================================================
---
trunk/extensions/OpenStackManager/schema-changes/openstack_add_name_indexes.sql
(rev 0)
+++
trunk/extensions/OpenStackManager/schema-changes/openstack_add_name_indexes.sql
2012-04-06 02:51:03 UTC (rev 114758)
@@ -0,0 +1,11 @@
+ALTER TABLE /*_*/openstack_puppet_vars
+ ADD INDEX (var_name);
+
+ALTER TABLE /*_*/openstack_puppet_vars
+ ADD INDEX (var_group_id);
+
+ALTER TABLE /*_*/openstack_puppet_classes
+ ADD INDEX (class_name);
+
+ALTER TABLE /*_*/openstack_puppet_classes
+ ADD INDEX (class_group_id);
Added:
trunk/extensions/OpenStackManager/schema-changes/openstack_drop_positions.sql
===================================================================
---
trunk/extensions/OpenStackManager/schema-changes/openstack_drop_positions.sql
(rev 0)
+++
trunk/extensions/OpenStackManager/schema-changes/openstack_drop_positions.sql
2012-04-06 02:51:03 UTC (rev 114758)
@@ -0,0 +1,8 @@
+ALTER TABLE /*_*/openstack_puppet_groups
+ DROP COLUMN group_position;
+
+ALTER TABLE /*_*/openstack_puppet_vars
+ DROP COLUMN var_position;
+
+ALTER TABLE /*_*/openstack_puppet_classes
+ DROP COLUMN class_position;
Modified: trunk/extensions/OpenStackManager/special/SpecialNovaPuppetGroup.php
===================================================================
--- trunk/extensions/OpenStackManager/special/SpecialNovaPuppetGroup.php
2012-04-06 01:17:05 UTC (rev 114757)
+++ trunk/extensions/OpenStackManager/special/SpecialNovaPuppetGroup.php
2012-04-06 02:51:03 UTC (rev 114758)
@@ -40,8 +40,8 @@
$this->modifyPuppetClass();
} elseif ( $action == "modifyvar" ) {
$this->modifyPuppetVar();
- } elseif ( $action == "modify" ) {
- $this->modifyPuppetGroup();
+ //} elseif ( $action == "modify" ) {
+ // $this->modifyPuppetGroup();
} else {
$this->listPuppetGroups();
}
@@ -76,12 +76,6 @@
'default' => '',
'name' => 'puppetgroupname',
);
- $puppetGroupInfo['puppetgroupposition'] = array(
- 'type' => 'int',
- 'label-message' =>
'openstackmanager-puppetgroupposition',
- 'default' => '',
- 'name' => 'puppetgroupposition',
- );
$puppetGroupInfo['project'] = array(
'type' => 'hidden',
'default' => $project,
@@ -136,11 +130,6 @@
'default' => '',
'name' => 'puppetclassname',
);
- $puppetGroupInfo['puppetclassposition'] = array(
- 'type' => 'int',
- 'label-message' =>
'openstackmanager-puppetclassposition',
- 'name' => 'puppetclassposition',
- );
$puppetGroupInfo['project'] = array(
'type' => 'hidden',
'default' => $project,
@@ -251,11 +240,6 @@
'default' => '',
'name' => 'puppetvarname',
);
- $puppetGroupInfo['puppetvarposition'] = array(
- 'type' => 'int',
- 'label-message' => 'openstackmanager-puppetvarposition',
- 'name' => 'puppetvarposition',
- );
$puppetGroupInfo['puppetgroupid'] = array(
'type' => 'hidden',
'default' => $puppetGroupId,
@@ -425,19 +409,12 @@
}
}
- $puppetClassPosition = $this->getRequest()->getInt(
'puppetclassposition' );
$puppetGroupInfo = array();
$puppetGroupInfo['puppetclassid'] = array(
'type' => 'hidden',
'default' => $puppetClassId,
'name' => 'puppetclassid',
);
- $puppetGroupInfo['puppetclassposition'] = array(
- 'type' => 'int',
- 'label-message' =>
'openstackmanager-puppetclassposition',
- 'default' => $puppetClassPosition,
- 'name' => 'puppetclassposition',
- );
$groups = OpenStackNovaPuppetGroup::getGroupList();
$groupKeys = array();
foreach ( $groups as $group ) {
@@ -509,19 +486,12 @@
}
}
- $puppetVarPosition = $this->getRequest()->getInt(
'puppetvarposition' );
$puppetGroupInfo = array();
$puppetGroupInfo['puppetvarid'] = array(
'type' => 'hidden',
'default' => $puppetVarId,
'name' => 'puppetvarid',
);
- $puppetGroupInfo['puppetvarposition'] = array(
- 'type' => 'int',
- 'label-message' => 'openstackmanager-puppetvarposition',
- 'default' => $puppetVarPosition,
- 'name' => 'puppetvarposition',
- );
$groups = OpenStackNovaPuppetGroup::getGroupList();
$groupKeys = array();
foreach ( $groups as $group ) {
@@ -562,6 +532,7 @@
$this->getOutput()->addWikiMsg(
'openstackmanager-nonexistentresource' );
return false;
}
+ $puppetGroupName = $group->getName();
$project = $group->getProject();
if ( $project ) {
// Project specific
@@ -577,18 +548,16 @@
}
}
- $puppetGroupPosition = $this->getRequest()->getInt(
'puppetgroupposition' );
$puppetGroupInfo = array();
$puppetGroupInfo['puppetgroupid'] = array(
'type' => 'hidden',
'default' => $puppetGroupId,
'name' => 'puppetgroupid',
);
- $puppetGroupInfo['puppetgroupposition'] = array(
- 'type' => 'int',
- 'label-message' =>
'openstackmanager-puppetgroupposition',
- 'default' => $puppetGroupPosition,
- 'name' => 'puppetgroupposition',
+ $puppetGroupInfo['puppetgroupname'] = array(
+ 'type' => 'hidden',
+ 'default' => $puppetGroupName,
+ 'name' => 'puppetgroupname',
);
$puppetGroupInfo['action'] = array(
'type' => 'hidden',
@@ -662,14 +631,14 @@
$puppetGroupProject = '';
}
$puppetGroupId = $puppetGroup->getId();
- $puppetGroupPosition = $puppetGroup->getPosition();
$puppetGroupName = $puppetGroup->getName();
- $puppetGroupName = "[$puppetGroupPosition] " .
htmlentities( $puppetGroupName );
+ $puppetGroupName = htmlentities( $puppetGroupName );
$specialPuppetGroupTitle = Title::newFromText(
'Special:NovaPuppetGroup' );
if ( $showlinks ) {
- $modify = $this->createActionLink(
'openstackmanager-modify', array( 'action' => 'modify', 'puppetgroupid' =>
$puppetGroupId, 'puppetgroupposition' => $puppetGroupPosition, 'returnto' =>
'Special:NovaPuppetGroup' ) );
+ //$modify = $this->createActionLink(
'openstackmanager-modify', array( 'action' => 'modify', 'puppetgroupid' =>
$puppetGroupId, 'returnto' => 'Special:NovaPuppetGroup' ) );
$delete = $this->createActionLink(
'openstackmanager-delete', array( 'action' => 'delete', 'puppetgroupid' =>
$puppetGroupId, 'returnto' => 'Special:NovaPuppetGroup' ) );
- $action = Html::rawElement( 'span', array( 'id'
=> 'novaaction' ), "[$modify, $delete]" );
+ //$action = Html::rawElement( 'span', array(
'id' => 'novaaction' ), "[$modify, $delete]" );
+ $action = Html::rawElement( 'span', array( 'id'
=> 'novaaction' ), "[$delete]" );
$out .= Html::rawElement( 'h3', array(),
"$puppetGroupName $action" );
}
$action = '';
@@ -684,9 +653,9 @@
if ( $puppetGroupClasses ) {
$classes = Array();
foreach ( $puppetGroupClasses as
$puppetGroupClass ) {
- $classname = '[' .
$puppetGroupClass["position"] . '] ' . htmlentities( $puppetGroupClass["name"]
);
+ $classname = htmlentities(
$puppetGroupClass["name"] );
if ( $showlinks ) {
- $modify =
$this->createActionLink( 'openstackmanager-modify', array( 'action' =>
'modifyclass', 'puppetclassid' => $puppetGroupClass["id"],
'puppetclassposition' => $puppetGroupClass["position"], 'puppetgroupid' =>
$puppetGroupId, 'returnto' => 'Special:NovaPuppetGroup' ) );
+ $modify =
$this->createActionLink( 'openstackmanager-modify', array( 'action' =>
'modifyclass', 'puppetclassid' => $puppetGroupClass["id"], 'puppetgroupid' =>
$puppetGroupId, 'returnto' => 'Special:NovaPuppetGroup' ) );
$delete =
$this->createActionLink( 'openstackmanager-delete', array( 'action' =>
'deleteclass', 'puppetclassid' => $puppetGroupClass["id"], 'returnto' =>
'Special:NovaPuppetGroup' ) );
$classname .=
Html::rawElement( 'span', array( 'id' => 'novaaction' ), " [$modify, $delete]"
);
}
@@ -705,9 +674,9 @@
if ( $puppetGroupVars ) {
$vars = Array();
foreach ( $puppetGroupVars as $puppetGroupVar )
{
- $varname = '[' .
$puppetGroupVar["position"] . '] ' . htmlentities( $puppetGroupVar["name"] );
+ $varname = htmlentities(
$puppetGroupVar["name"] );
if ( $showlinks ) {
- $modify =
$this->createActionLink( 'openstackmanager-modify', array( 'action' =>
'modifyvar', 'puppetvarid' => $puppetGroupVar["id"], 'puppetvarposition' =>
$puppetGroupVar["position"], 'puppetgroupid' => $puppetGroupId, 'returnto' =>
'Special:NovaPuppetGroup' ) );
+ $modify =
$this->createActionLink( 'openstackmanager-modify', array( 'action' =>
'modifyvar', 'puppetvarid' => $puppetGroupVar["id"], 'puppetgroupid' =>
$puppetGroupId, 'returnto' => 'Special:NovaPuppetGroup' ) );
$delete =
$this->createActionLink( 'openstackmanager-delete', array( 'action' =>
'deletevar', 'puppetvarid' => $puppetGroupVar["id"], 'returnto' =>
'Special:NovaPuppetGroup' ) );
$varname .= Html::rawElement(
'span', array( 'id' => 'novaaction' ), " [$modify, $delete]" );
}
@@ -725,7 +694,7 @@
* @return bool
*/
function tryCreateSubmit( $formData, $entryPoint = 'internal' ) {
- $success = OpenStackNovaPuppetGroup::addGroup(
$formData['puppetgroupname'], $formData['puppetgroupposition'],
$formData['project'] );
+ $success = OpenStackNovaPuppetGroup::addGroup(
$formData['puppetgroupname'], $formData['project'] );
if ( $success ) {
$this->getOutput()->addWikiMsg(
'openstackmanager-createdpuppetgroup' );
} else {
@@ -765,7 +734,7 @@
* @return bool
*/
function tryAddClassSubmit( $formData, $entryPoint = 'internal' ) {
- $success = OpenStackNovaPuppetGroup::addClass(
$formData['puppetclassname'], $formData['puppetclassposition'],
$formData['puppetgroupid'], $formData['project'] );
+ $success = OpenStackNovaPuppetGroup::addClass(
$formData['puppetclassname'], $formData['puppetgroupid'], $formData['project']
);
if ( $success ) {
$this->getOutput()->addWikiMsg(
'openstackmanager-addedpuppetclass' );
} else {
@@ -805,7 +774,7 @@
* @return bool
*/
function tryAddVarSubmit( $formData, $entryPoint = 'internal' ) {
- $success = OpenStackNovaPuppetGroup::addVar(
$formData['puppetvarname'], $formData['puppetvarposition'],
$formData['puppetgroupid'], $formData['project'] );
+ $success = OpenStackNovaPuppetGroup::addVar(
$formData['puppetvarname'], $formData['puppetgroupid'], $formData['project'] );
if ( $success ) {
$this->getOutput()->addWikiMsg(
'openstackmanager-addedpuppetvar' );
} else {
@@ -845,7 +814,7 @@
* @return bool
*/
function tryModifyClassSubmit( $formData, $entryPoint = 'internal' ) {
- $success = OpenStackNovaPuppetGroup::updateClass(
$formData['puppetclassid'], $formData['puppetgroupid'],
$formData['puppetclassposition'] );
+ $success = OpenStackNovaPuppetGroup::updateClass(
$formData['puppetclassid'], $formData['puppetgroupid'] );
if ( $success ) {
$this->getOutput()->addWikiMsg(
'openstackmanager-modifiedpuppetclass' );
} else {
@@ -865,7 +834,7 @@
* @return bool
*/
function tryModifyVarSubmit( $formData, $entryPoint = 'internal' ) {
- $success = OpenStackNovaPuppetGroup::updateVar(
$formData['puppetvarid'], $formData['puppetgroupid'],
$formData['puppetvarposition'] );
+ $success = OpenStackNovaPuppetGroup::updateVar(
$formData['puppetvarid'], $formData['puppetgroupid'] );
if ( $success ) {
$this->getOutput()->addWikiMsg(
'openstackmanager-modifiedpuppetvar' );
} else {
@@ -885,7 +854,7 @@
* @return bool
*/
function tryModifyGroupSubmit( $formData, $entryPoint = 'internal' ) {
- $success = OpenStackNovaPuppetGroup::updateGroupPosition(
$formData['puppetgroupid'], $formData['puppetgroupposition'] );
+ $success = OpenStackNovaPuppetGroup::updateGroupName(
$formData['puppetgroupid'], $formData['puppetgroupname'] );
if ( $success ) {
$this->getOutput()->addWikiMsg(
'openstackmanager-modifiedpuppetgroup' );
} else {
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs