Gets the list of allowed services for this tenant
public listServices ( ) : array | ||
return | array | Returns the list of allowed services for this tenant |
private function getOpenStackDetails($platform) { $params = array(); $params["{$platform}.is_enabled"] = true; $params[OpenstackPlatformModule::KEYSTONE_URL] = $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::KEYSTONE_URL); $params[OpenstackPlatformModule::SSL_VERIFYPEER] = $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::SSL_VERIFYPEER); $params[OpenstackPlatformModule::USERNAME] = $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::USERNAME); $params[OpenstackPlatformModule::PASSWORD] = $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::PASSWORD) != '' ? '******' : ''; $params[OpenstackPlatformModule::API_KEY] = $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::API_KEY); if ($platform == SERVER_PLATFORMS::ECS) { $params[OpenstackPlatformModule::TENANT_NAME] = $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::TENANT_NAME) != '' ? '******' : ''; } else { $params[OpenstackPlatformModule::TENANT_NAME] = $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::TENANT_NAME); } $params['features'] = array(); /* @var $config Yaml */ $config = $this->env->getContainer()->config; if (isset($platform) && $config->defined("scalr.{$platform}.use_proxy") && $config("scalr.{$platform}.use_proxy") && in_array($config('scalr.connections.proxy.use_on'), ['both', 'scalr'])) { $params['proxySettings'] = $config('scalr.connections.proxy'); } else { $params['proxySettings'] = null; } if ($params[OpenstackPlatformModule::KEYSTONE_URL]) { try { $os = new OpenStack(new OpenStackConfig($params[OpenstackPlatformModule::USERNAME], $params[OpenstackPlatformModule::KEYSTONE_URL], 'fake-region', $params[OpenstackPlatformModule::API_KEY], null, null, $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::PASSWORD), $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::TENANT_NAME), null, $params['proxySettings'])); //$os->setDebug(true); $params['regions'] = $os->listZones(); foreach ($params['regions'] as $region) { try { $cloudLocation = $region->name; $os = new OpenStack(new OpenStackConfig($params[OpenstackPlatformModule::USERNAME], $params[OpenstackPlatformModule::KEYSTONE_URL], $cloudLocation, $params[OpenstackPlatformModule::API_KEY], null, null, $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::PASSWORD), $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::TENANT_NAME), null, $params['proxySettings'])); $params['features'][$cloudLocation] = array('Volumes (Cinder)' => $os->hasService('volume'), 'Security groups (Nova)' => $os->servers->isExtensionSupported(ServersExtension::securityGroups()), 'Networking (Neutron)' => $os->hasService('network'), 'Load balancing (Neutron LBaaS)' => !in_array($platform, array(SERVER_PLATFORMS::RACKSPACENG_US, SERVER_PLATFORMS::RACKSPACENG_UK)) && $os->hasService('network') ? $os->network->isExtensionSupported('lbaas') : false, 'Floating IPs (Nova)' => $os->servers->isExtensionSupported(ServersExtension::floatingIps()), 'Objects store (Swift)' => $os->hasService('object-store')); $params['info'][$cloudLocation] = array('services' => $os->listServices(), 'nova_extensions' => $os->servers->listExtensions()); if ($os->hasService('network')) { $params['info'][$cloudLocation]['neutron_url'] = $os->network->getEndpointUrl(); $params['info'][$cloudLocation]['neutron_extensions'] = $os->network->listExtensions(); } } catch (Exception $e) { $params['info'][$cloudLocation]['exception'] = $e->getMessage(); } } } catch (Exception $e) { //TODO: Show in UI $params['info']['exception'] = $e->getMessage(); } } return $params; }
private function getOpenStackDetails($platform) { $params = []; $cloudCredentials = $this->env->keychain($platform); $ccProps = $cloudCredentials->properties; $params["{$platform}.is_enabled"] = true; $params[Entity\CloudCredentialsProperty::OPENSTACK_KEYSTONE_URL] = $ccProps[Entity\CloudCredentialsProperty::OPENSTACK_KEYSTONE_URL]; $params[Entity\CloudCredentialsProperty::OPENSTACK_SSL_VERIFYPEER] = $ccProps[Entity\CloudCredentialsProperty::OPENSTACK_SSL_VERIFYPEER]; $params[Entity\CloudCredentialsProperty::OPENSTACK_USERNAME] = $ccProps[Entity\CloudCredentialsProperty::OPENSTACK_USERNAME]; $params[Entity\CloudCredentialsProperty::OPENSTACK_PASSWORD] = $ccProps[Entity\CloudCredentialsProperty::OPENSTACK_PASSWORD] != '' ? '******' : ''; $params[Entity\CloudCredentialsProperty::OPENSTACK_API_KEY] = $ccProps[Entity\CloudCredentialsProperty::OPENSTACK_API_KEY]; $params[Entity\CloudCredentialsProperty::OPENSTACK_TENANT_NAME] = $ccProps[Entity\CloudCredentialsProperty::OPENSTACK_TENANT_NAME]; $params[Entity\CloudCredentialsProperty::OPENSTACK_DOMAIN_NAME] = $ccProps[Entity\CloudCredentialsProperty::OPENSTACK_DOMAIN_NAME]; $params['features'] = []; /* @var $config Yaml */ $config = $this->env->getContainer()->config; if (isset($platform) && $config->defined("scalr.{$platform}.use_proxy") && $config("scalr.{$platform}.use_proxy") && in_array($config('scalr.connections.proxy.use_on'), ['both', 'scalr'])) { $params['proxySettings'] = $config('scalr.connections.proxy'); } else { $params['proxySettings'] = null; } if ($params[Entity\CloudCredentialsProperty::OPENSTACK_KEYSTONE_URL]) { try { $openstackConfig = new OpenStackConfig($params[Entity\CloudCredentialsProperty::OPENSTACK_USERNAME], $params[Entity\CloudCredentialsProperty::OPENSTACK_KEYSTONE_URL], 'fake-region', $params[Entity\CloudCredentialsProperty::OPENSTACK_API_KEY], null, null, $ccProps[Entity\CloudCredentialsProperty::OPENSTACK_PASSWORD], $ccProps[Entity\CloudCredentialsProperty::OPENSTACK_TENANT_NAME], $ccProps[Entity\CloudCredentialsProperty::OPENSTACK_DOMAIN_NAME], null, $params['proxySettings'], 5); $os = new OpenStack($openstackConfig); $params['regions'] = $os->listZones(); foreach ($params['regions'] as $region) { $cloudLocation = $region->name; $osConfig = clone $openstackConfig; $osConfig->setRegion($cloudLocation); try { $os = new OpenStack($osConfig); $params['features'][$cloudLocation] = ['Volumes (Cinder)' => $os->hasService('volume'), 'Security groups (Nova)' => $os->servers->isExtensionSupported(ServersExtension::securityGroups()), 'Networking (Neutron)' => $os->hasService('network'), 'Load balancing (Neutron LBaaS)' => !in_array($platform, [SERVER_PLATFORMS::RACKSPACENG_US, SERVER_PLATFORMS::RACKSPACENG_UK]) && $os->hasService('network') ? $os->network->isExtensionSupported('lbaas') : false, 'Floating IPs (Nova)' => $os->servers->isExtensionSupported(ServersExtension::floatingIps()), 'Objects store (Swift)' => $os->hasService('object-store')]; $params['info'][$cloudLocation] = ['services' => $os->listServices(), 'nova_extensions' => $os->servers->listExtensions()]; if ($os->hasService('network')) { $params['info'][$cloudLocation]['neutron_url'] = $os->network->getEndpointUrl(); $params['info'][$cloudLocation]['neutron_extensions'] = $os->network->listExtensions(); } } catch (Exception $e) { $params['features'][$cloudLocation] = $e->getMessage(); } } } catch (Exception $e) { $params['info']['exception'] = $e->getMessage(); } } return $params; }
private function getOpenStackDetails($platform) { $params = array(); $params["{$platform}.is_enabled"] = true; $params[OpenstackPlatformModule::KEYSTONE_URL] = $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::KEYSTONE_URL); $params[OpenstackPlatformModule::SSL_VERIFYPEER] = $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::SSL_VERIFYPEER); $params[OpenstackPlatformModule::USERNAME] = $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::USERNAME); $params[OpenstackPlatformModule::PASSWORD] = $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::PASSWORD) != '' ? '******' : ''; $params[OpenstackPlatformModule::API_KEY] = $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::API_KEY); if ($platform == SERVER_PLATFORMS::ECS) { $params[OpenstackPlatformModule::TENANT_NAME] = $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::TENANT_NAME) != '' ? '******' : ''; } else { $params[OpenstackPlatformModule::TENANT_NAME] = $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::TENANT_NAME); } $params['features'] = array(); if ($params[OpenstackPlatformModule::KEYSTONE_URL]) { try { $os = new OpenStack(new OpenStackConfig($params[OpenstackPlatformModule::USERNAME], $params[OpenstackPlatformModule::KEYSTONE_URL], 'fake-region', $params[OpenstackPlatformModule::API_KEY], null, null, $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::PASSWORD), $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::TENANT_NAME))); //$os->setDebug(true); $params['regions'] = $os->listZones(); foreach ($params['regions'] as $region) { $cloudLocation = $region->name; $os = new OpenStack(new OpenStackConfig($params[OpenstackPlatformModule::USERNAME], $params[OpenstackPlatformModule::KEYSTONE_URL], $cloudLocation, $params[OpenstackPlatformModule::API_KEY], null, null, $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::PASSWORD), $this->env->getPlatformConfigValue("{$platform}." . OpenstackPlatformModule::TENANT_NAME))); $params['features'][$cloudLocation] = array('Volumes (Cinder)' => $os->hasService('volume'), 'Security groups (Nova)' => $os->servers->isExtensionSupported(ServersExtension::securityGroups()), 'Networking (Neutron)' => $os->hasService('network'), 'Load balancing (Neutron LBaaS)' => $os->hasService('network') ? $os->network->isExtensionSupported('lbaas') : false, 'Floating IPs (Nova)' => $os->servers->isExtensionSupported(ServersExtension::floatingIps()), 'Objects store (Swift)' => $os->hasService('object-store')); $params['info'][$cloudLocation] = array('services' => $os->listServices(), 'nova_extensions' => $os->servers->listExtensions()); if ($os->hasService('network')) { $params['info'][$cloudLocation]['neutron_extensions'] = $os->network->listExtensions(); } } } catch (Exception $e) { //TODO: Show in UI } } return $params; }