/** * @param $formData * @param string $entryPoint * @return bool */ function tryCreateSubmit($formData, $entryPoint = 'internal') { $domain = OpenStackNovaDomain::getDomainByName($formData['domain']); if (!$domain) { $this->getOutput()->addWikiMsg('openstackmanager-invaliddomain'); return true; } $instance = $this->userNova->createInstance($formData['instancename'], $formData['imageType'], '', $formData['instanceType'], $formData['availabilityZone'], $formData['groups']); if ($instance) { $host = OpenStackNovaHost::addHost($instance, $domain, $this->getPuppetInfo($formData)); if ($host) { $title = Title::newFromText($this->getOutput()->getPageTitle()); $job = new OpenStackNovaHostJob($title, array('instanceid' => $instance->getInstanceId())); $job->insert(); $this->getOutput()->addWikiMsg('openstackmanager-createdinstance', $instance->getInstanceID(), $instance->getImageId(), $host->getFullyQualifiedHostName()); } else { $this->userNova->terminateInstance($instance->getInstanceId()); $this->getOutput()->addWikiMsg('openstackmanager-createfailedldap'); } # TODO: also add puppet } else { $this->getOutput()->addWikiMsg('openstackmanager-createinstancefailed'); } $out = '<br />'; $out .= Linker::link($this->getTitle(), wfMsgHtml('openstackmanager-backinstancelist')); $this->getOutput()->addHTML($out); return true; }