public static function deleteArticle( $titletext ) { if ( ! OpenStackNovaArticle::canCreatePages() ) { return; } $title = Title::newFromText( $titletext, NS_NOVA_RESOURCE ); $article = new Article( $title, 0 ); $article->doDeleteArticle( '' ); }
public static function deleteArticle($titletext, $namespace = NS_NOVA_RESOURCE) { if (!OpenStackNovaArticle::canCreatePages()) { return; } $title = Title::newFromText($titletext, $namespace); $article = WikiPage::factory($title); $article->doDeleteArticle(''); }
/** * Adds or edits an article for this instance * * @return void */ function editArticle() { global $wgOpenStackManagerNovaAdminKeys; if (!OpenStackNovaArticle::canCreatePages()) { return; } $format = <<<RESOURCEINFO {{Nova Resource |Resource Type=instance |Instance Name=%s |Reservation Id=%s |Instance Id=%s |Private IP=%s |Public IP=%s |Instance State=%s |Instance Host=%s |Instance Type=%s |RAM Size=%s |Number of CPUs=%s |Amount of Storage=%s |Image Id=%s |Project=%s |Availability Zone=%s |Region=%s |Security Group=%s |Launch Time=%s |FQDN=%s |Puppet Class=%s |Puppet Var=%s}} RESOURCEINFO; $host = $this->getHost(); $puppetinfo = $host->getPuppetConfiguration(); if ($puppetinfo['puppetclass']) { $puppetclasses = implode(',', $puppetinfo['puppetclass']); } else { $puppetclasses = ''; } $puppetvars = ''; if ($puppetinfo['puppetvar']) { foreach ($puppetinfo['puppetvar'] as $key => $val) { # Let's not leak user's email addresses; we know this # will be set, since we are setting it. if ($key == 'instancecreator_email') { continue; } $puppetvars .= $key . '=' . $val . ','; } } $adminNova = new OpenStackNovaController($wgOpenStackManagerNovaAdminKeys); $instanceType = $adminNova->getInstanceType($this->getInstanceType()); $text = sprintf($format, $this->getInstanceName(), $this->getReservationId(), $this->getInstanceId(), $this->getInstancePrivateIP(), $this->getInstancePublicIP(), $this->getInstanceState(), $this->getInstanceHost(), $this->getInstanceType(), $instanceType->getMemorySize(), $instanceType->getNumberOfCPUs(), $instanceType->getStorageSize(), $this->getImageId(), $this->getOwner(), $this->getAvailabilityZone(), $this->getRegion(), implode(',', $this->getSecurityGroups()), $this->getLaunchTime(), $host->getFullyQualifiedHostName(), $puppetclasses, $puppetvars); OpenStackNovaArticle::editArticle($this->getInstanceId(), $text); }
function editArticle() { global $wgOpenStackManagerCreateProjectSALPages; if (!OpenStackNovaArticle::canCreatePages()) { return; } $format = <<<RESOURCEINFO {{Nova Resource |Resource Type=project |Project Name=%s |Members=%s}} __NOEDITSECTION__ RESOURCEINFO; $rawmembers = $this->getMembers(); $members = array(); foreach ($rawmembers as $member) { array_push($members, 'User:'******',', $members)); OpenStackNovaArticle::editArticle($this->getProjectName(), $text); if ($wgOpenStackManagerCreateProjectSALPages) { $pagename = $this->getProjectName() . "/SAL"; $id = Title::newFromText($pagename, NS_NOVA_RESOURCE)->getArticleId(); $article = Article::newFromId($id); $content = ''; if ($article) { $content = $article->getRawText(); } $text = "{{SAL|Project Name=" . $this->getProjectName() . "}}"; if (!strstr($content, $text)) { OpenStackNovaArticle::editArticle($pagename, $text); } } }
/** * Adds or edits an article for this instance * * @param $userNova */ function editArticle($userNova) { if (!OpenStackNovaArticle::canCreatePages()) { return; } $host = $this->getHost(); // There might already be an autogenerated instance status on this page, // so set it aside in $instanceStatus. We'll re-insert it at // the start of the new page. $instanceStatus = ''; $oldtext = OpenStackNovaArticle::getText($host->getFullyQualifiedHostName()); if ($oldtext) { $startFlag = '<!-- autostatus begin -->'; $endFlag = '<!-- autostatus end -->'; $statusStart = strpos($oldtext, $startFlag); if ($statusStart !== false) { $statusEnd = strpos($oldtext, $endFlag, $statusStart); if ($statusEnd !== false) { $instanceStatus = substr($oldtext, $statusStart, $statusEnd - $statusStart + strlen($endFlag)); } } } $format = <<<RESOURCEINFO %s {{Nova Resource |Resource Type=instance |Instance Name=%s |Image Id=%s |Project=%s |Region=%s |FQDN=%s |Puppet Class=%s |Puppet Var=%s}} RESOURCEINFO; $puppetinfo = $host->getPuppetConfiguration(); if ($puppetinfo['puppetclass']) { $puppetclasses = implode(',', $puppetinfo['puppetclass']); } else { $puppetclasses = ''; } $puppetvars = ''; if ($puppetinfo['puppetvar']) { foreach ($puppetinfo['puppetvar'] as $key => $val) { $puppetvars .= $key . '=' . $val . ','; } } $image = $userNova->getImage($this->getImageId()); $text = sprintf($format, $instanceStatus, $this->getInstanceName(), $image->getImageName(), $this->getProject(), $this->getRegion(), $host->getFullyQualifiedHostName(), $puppetclasses, $puppetvars); OpenStackNovaArticle::editArticle($host->getFullyQualifiedHostName(), $text); }
function editArticle() { global $wgOpenStackManagerCreateProjectSALPages, $wgOpenStackManagerProjectNamespace; if (!OpenStackNovaArticle::canCreatePages()) { return; } $format = <<<RESOURCEINFO {{Nova Resource |Resource Type=project |Project Name=%s |Admins=%s |Members=%s}} __NOEDITSECTION__ RESOURCEINFO; $rawmembers = $this->getMembers(); $members = array(); foreach ($rawmembers as $member) { $members[] = 'User:'******'User:'******',', $admins), implode(',', $members)); OpenStackNovaArticle::editArticle($this->getProjectName(), $text, $wgOpenStackManagerProjectNamespace); if ($wgOpenStackManagerCreateProjectSALPages) { $pagename = $this->getProjectName() . "/SAL"; $id = Title::newFromText($pagename, $wgOpenStackManagerProjectNamespace)->getArticleId(); $article = Article::newFromId($id); $content = ''; if ($article) { $content = $article->getRawText(); } $text = "{{SAL|Project Name=" . $this->getProjectName() . "}}"; if (!strstr($content, $text)) { OpenStackNovaArticle::editArticle($pagename, $text, $wgOpenStackManagerProjectNamespace); } } }