Andrew Bogott has uploaded a new change for review. https://gerrit.wikimedia.org/r/217416
Change subject: Remove ldap host-entry creation and deletion from OSM. ...................................................................... Remove ldap host-entry creation and deletion from OSM. Bug: T97163 Change-Id: If99c38829cdfe41b9a76d2e609c7038f005716be --- M OpenStackManager.php M api/ApiNovaInstance.php D nova/OpenStackNovaHostDeleteJob.php D nova/OpenStackNovaHostJob.php M special/SpecialNovaInstance.php 5 files changed, 0 insertions(+), 188 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/OpenStackManager refs/changes/16/217416/1 diff --git a/OpenStackManager.php b/OpenStackManager.php index 405b0db..b48c162 100644 --- a/OpenStackManager.php +++ b/OpenStackManager.php @@ -187,8 +187,6 @@ $wgAutoloadClasses['OpenStackNovaSudoer'] = $dir . 'nova/OpenStackNovaSudoer.php'; $wgAutoloadClasses['OpenStackNovaProxy'] = $dir . 'nova/OpenStackNovaProxy.php'; $wgAutoloadClasses['OpenStackNovaArticle'] = $dir . 'nova/OpenStackNovaArticle.php'; -$wgAutoloadClasses['OpenStackNovaHostJob'] = $dir . 'nova/OpenStackNovaHostJob.php'; -$wgAutoloadClasses['OpenStackNovaHostDeleteJob'] = $dir . 'nova/OpenStackNovaHostDeleteJob.php'; $wgAutoloadClasses['OpenStackNovaPuppetGroup'] = $dir . 'nova/OpenStackNovaPuppetGroup.php'; $wgAutoloadClasses['OpenStackNovaLdapConnection'] = $dir . 'nova/OpenStackNovaLdapConnection.php'; $wgAutoloadClasses['OpenStackNovaProject'] = $dir . 'nova/OpenStackNovaProject.php'; @@ -240,8 +238,6 @@ $wgSpecialPageGroups['NovaSudoer'] = 'nova'; $wgSpecialPages['NovaProxy'] = 'SpecialNovaProxy'; $wgSpecialPageGroups['NovaProxy'] = 'nova'; -$wgJobClasses['addDNSHostToLDAP'] = 'OpenStackNovaHostJob'; -$wgJobClasses['deleteDNSHostFromLDAP'] = 'OpenStackNovaHostDeleteJob'; $wgSpecialPageGroups['NovaPuppetGroup'] = 'nova'; $wgSpecialPages['NovaPuppetGroup'] = 'SpecialNovaPuppetGroup'; $wgSpecialPageGroups['NovaResources'] = 'nova'; diff --git a/api/ApiNovaInstance.php b/api/ApiNovaInstance.php index 1528a75..f6f080e 100644 --- a/api/ApiNovaInstance.php +++ b/api/ApiNovaInstance.php @@ -53,12 +53,6 @@ $this->dieUsage( 'Failed to delete the instance.', 'openstackmanager-deleteinstancefailed' ); } - $title = Title::newMainPage(); - $params = array( 'instancename' => $instancename, 'project' => $instance->getProject(), 'region' => $this->params['region'], - 'user' => $wgUser->getName() ); - $job = new OpenStackNovaHostDeleteJob( $title, $params ); - JobQueueGroup::singleton()->push( $job ); - break; } } diff --git a/nova/OpenStackNovaHostDeleteJob.php b/nova/OpenStackNovaHostDeleteJob.php deleted file mode 100644 index b0cefde..0000000 --- a/nova/OpenStackNovaHostDeleteJob.php +++ /dev/null @@ -1,72 +0,0 @@ -<?php - -/** - * todo comment me - * - * @file - * @ingroup Extensions - */ - -class OpenStackNovaHostDeleteJob extends Job { - - /** - * @param Title $title - * @param array $params - */ - public function __construct( $title, $params ) { - // Replace synchroniseThreadArticleData with the an identifier for your job. - parent::__construct( 'deleteDNSHostFromLDAP', $title, $params ); - } - - /** - * Execute the job. Delete the selected record... if deletion fails, - * resubmit. - * - * @return bool - */ - public function run() { - global $wgAuth; - global $wgUser; - - if ( array_key_exists( 'count', $this->params ) ) { - $this->params['count'] += 1; - } else { - $this->params['count'] = 0; - } - - $instancename = $this->params['instancename']; - $project = $this->params['project']; - - if ( $this->params['count'] > 8 ) { - $wgAuth->printDebug( "DNS delete job for $instanceid failed many times, giving up.", NONSENSITIVE ); - return true; - } - - $user = isset( $this->params['user'] ) - ? User::newFromName( $this->params['user'] ) - : User::newFromName( 'OpenStackManager Extension' ); - if ( !$user instanceof User ) { - $user = User::newFromName( 'OpenStackManager Extension' ); - } - $wgUser = $user; - - $count = $this->params['count']; - $region = $this->params['region']; - $wgAuth->printDebug( "Running DNS delete job for $instanceid, attempt number $count", NONSENSITIVE ); - - $host = OpenStackNovaHost::getHostByNameAndProject( $instancename, $project, $region ); - if ( ! $host ) { - $wgAuth->printDebug( "Host entry doesn't exist for $instanceid", NONSENSITIVE ); - return true; - } - $success = $host->deleteHost(); - if ( !$success ) { - # re-add to queue - $wgAuth->printDebug( "Readding host deletion job for $instanceid", NONSENSITIVE ); - $job = new OpenStackNovaHostDeleteJob( $this->title, $this->params ); - JobQueueGroup::singleton()->push( $job ); - } - - return true; - } -} diff --git a/nova/OpenStackNovaHostJob.php b/nova/OpenStackNovaHostJob.php deleted file mode 100644 index 614273f..0000000 --- a/nova/OpenStackNovaHostJob.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php - -/** - * todo comment me - * - * @file - * @ingroup Extensions - */ - -class OpenStackNovaHostJob extends Job { - - /** - * @param Title $title - * @param array $params - */ - public function __construct( $title, $params ) { - // Replace synchroniseThreadArticleData with the an identifier for your job. - parent::__construct( 'addDNSHostToLDAP', $title, $params ); - } - - /** - * Execute the job. Add an IP address to a DNS record when it is available - * on the instance. If the instance does not exist, or it has not been - * assigned an IP address, re-add the job. - * - * Upon successfully adding the host, this job will also add an Article for the - * instance. - * - * @return bool - */ - public function run() { - global $wgUser; - global $wgOpenStackManagerLDAPUsername; - global $wgOpenStackManagerLDAPUserPassword; - $auth = $this->params['auth']; - - $user = isset( $this->params['user'] ) - ? User::newFromName( $this->params['user'] ) - : User::newFromName( 'OpenStackManager Extension' ); - if ( !$user instanceof User ) { - $user = User::newFromName( 'OpenStackManager Extension' ); - } - $wgUser = $user; - - $instancename = $this->params['instancename']; - $instanceosid = $this->params['instanceosid']; - $project = $this->params['project']; - $region = $this->params['region']; - $auth->printDebug( "Running DNS job for $instanceosid", NONSENSITIVE ); - - $user = new OpenStackNovaUser( $wgOpenStackManagerLDAPUsername ); - $userNova = OpenStackNovaController::newFromUser( $user ); - $userNova->setProject( $project ); - $userNova->setRegion( $region ); - $userNova->authenticate( $wgOpenStackManagerLDAPUsername, $wgOpenStackManagerLDAPUserPassword ); - $instance = $userNova->getInstance( $instanceosid ); - if ( ! $instance ) { - $auth->printDebug( "Instance doesn't exist for $instanceosid", NONSENSITIVE ); - # Instance no longer exists - return true; - } - $ip = $instance->getInstancePrivateIPs(); - $ip = $ip[0]; - if ( trim( $ip ) === '' ) { - # IP hasn't been assigned yet - # re-add to queue - $auth->printDebug( "Readding job for $instanceosid", NONSENSITIVE ); - $job = new OpenStackNovaHostJob( $this->title, $this->params ); - $job->insert(); - return true; - } - $host = OpenStackNovaHost::getHostByNameAndProject( $instancename, $project, $region ); - if ( ! $host ) { - $auth->printDebug( "Host record doesn't exist for $instancename in $project", NONSENSITIVE ); - return true; - } - $host->setARecord( $ip ); - $instance->editArticle( $userNova ); - - return true; - } -} diff --git a/special/SpecialNovaInstance.php b/special/SpecialNovaInstance.php index 738f71d..657421f 100644 --- a/special/SpecialNovaInstance.php +++ b/special/SpecialNovaInstance.php @@ -662,27 +662,6 @@ $instanceId = $instance->getInstanceOSId(); $instance = $this->userNova->getInstance( $instanceId ); } - if ( $instance ) { - $host = OpenStackNovaHost::addHostFromInstance( $instance, $domain, $this->getPuppetInfo( $formData ) ); - - if ( $host ) { - $instance->setHost( $host ); - OpenStackManagerEvent::storeEventInfo( 'build', $this->getUser(), $instance, $project ); - $title = Title::newFromText( $this->getOutput()->getPageTitle() ); - $job = new OpenStackNovaHostJob( $title, array( 'instancename' => $instance->getInstanceName(), 'instanceosid' => $instance->getInstanceOSId(), 'project' => $project, 'region' => $region, 'user' => $wgUser->getName(), 'auth' => $wgAuth ) ); - $job->insert(); - $image = $this->userNova->getImage( $instance->getImageId() ); - $imageName = $image->getImageName(); - $this->getOutput()->addWikiMsg( 'openstackmanager-createdinstance', $instance->getInstanceID(), - $imageName, $host->getFullyQualifiedHostName() ); - } else { - $instance->deleteInstance( $this->userNova ); - $this->getOutput()->addWikiMsg( 'openstackmanager-createfailedldap' ); - } - # TODO: also add puppet - } else { - $this->getOutput()->addWikiMsg( 'openstackmanager-createinstancefailed' ); - } $out = '<br />'; $out .= Linker::link( @@ -710,9 +689,6 @@ $instanceid = $instance->getInstanceId(); $result = $instance->deleteInstance( $this->userNova ); if ( $result ) { - $title = Title::newFromText( $this->getOutput()->getPageTitle() ); - $job = new OpenStackNovaHostDeleteJob( $title, array( 'instancename' => $instancename, 'project' => $instance->getProject(), 'region' => $formData['region'], 'user' => $wgUser->getName() ) ); - JobQueueGroup::singleton()->push( $job ); $this->getOutput()->addWikiMsg( 'openstackmanager-deletedinstance', $instanceid, $instancename ); } else { $this->getOutput()->addWikiMsg( 'openstackmanager-deleteinstancefailed', $instanceid, $instancename ); -- To view, visit https://gerrit.wikimedia.org/r/217416 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If99c38829cdfe41b9a76d2e609c7038f005716be Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/OpenStackManager Gerrit-Branch: master Gerrit-Owner: Andrew Bogott <abog...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits