/** * @param $formData * @param string $entryPoint * @return bool */ function tryRemoveHostSubmit( $formData, $entryPoint = 'internal' ) { $ip = $formData['ip']; $project = $formData['project']; $address = $this->adminNova->getAddress( $ip ); $outputPage = $this->getOutput(); if ( ! $address ) { $outputPage->addWikiMsg( 'openstackmanager-invalidaddress', $ip ); return true; } if ( $address->getProject() != $project ) { $outputPage->addWikiMsg( 'openstackmanager-invalidaddressforproject', $ip ); return true; } $hostname = $formData['hostname']; $domain = $formData['domain']; $domain = OpenStackNovaDomain::getDomainByName( $domain ); $host = OpenStackNovaHost::getHostByName( $hostname, $domain ); if ( $host ) { $fqdn = $hostname . '.' . $domain->getFullyQualifiedDomainName(); $records = $host->getAssociatedDomains(); if ( count( $records ) > 1 ) { # We need to keep the host, but remove the fqdn $success = $host->deleteAssociatedDomain( $fqdn ); if ( $success ) { $outputPage->addWikiMsg( 'openstackmanager-removedhost', $hostname, $ip ); } else { $outputPage->addWikiMsg( 'openstackmanager-removehostfailed', $ip, $hostname ); } } else { # We need to remove the host entry $success = OpenStackNovaHost::deleteHost( $hostname, $domain ); if ( $success ) { $outputPage->addWikiMsg( 'openstackmanager-removedhost', $hostname, $ip ); } else { $outputPage->addWikiMsg( 'openstackmanager-removehostfailed', $ip, $hostname ); } } } else { $outputPage->addWikiMsg( 'openstackmanager-nonexistenthost' ); } $out = '<br />'; $out .= Linker::link( $this->getTitle(), wfMsgHtml( 'openstackmanager-backaddresslist' ) ); $outputPage->addHTML( $out ); return true; }