public function GetPlatformAccessData(\Scalr_Environment $environment, DBServer $DBServer)
{
$ccProps = $environment->keychain($this->platform)->properties;
$accessData = new \stdClass();
$accessData->username = $ccProps[Entity\CloudCredentialsProperty::OPENSTACK_USERNAME];
$accessData->apiKey = $ccProps[Entity\CloudCredentialsProperty::OPENSTACK_API_KEY];
// We need regional keystone //
$os = $environment->openstack($this->platform, $DBServer->cloudLocation);
$os->listZones();
$url = $os->getConfig()->getIdentityEndpoint();
$accessData->keystoneUrl = $url;
$accessData->tenantName = $ccProps[Entity\CloudCredentialsProperty::OPENSTACK_TENANT_NAME];
$accessData->password = $ccProps[Entity\CloudCredentialsProperty::OPENSTACK_PASSWORD];
$accessData->cloudLocation = $DBServer->GetProperty(\OPENSTACK_SERVER_PROPERTIES::CLOUD_LOCATION);
$accessData->sslVerifyPeer = $ccProps[Entity\CloudCredentialsProperty::OPENSTACK_SSL_VERIFYPEER] ? 1 : 0;
if (isset($ccProps[Entity\CloudCredentialsProperty::OPENSTACK_DOMAIN_NAME])) {
$accessData->domainName = $ccProps[Entity\CloudCredentialsProperty::OPENSTACK_DOMAIN_NAME];
}
$config = \Scalr::getContainer()->config;
if ($config->defined("scalr.{$this->platform}.use_proxy") && $config("scalr.{$this->platform}.use_proxy") && in_array($config('scalr.connections.proxy.use_on'), ['both', 'instance'])) {
$proxySettings = $config('scalr.connections.proxy');
$accessData->proxy = new \stdClass();
$accessData->proxy->host = $proxySettings['host'];
$accessData->proxy->port = $proxySettings['port'];
$accessData->proxy->user = $proxySettings['user'];
$accessData->proxy->pass = $proxySettings['pass'];
$accessData->proxy->type = $proxySettings['type'];
$accessData->proxy->authtype = $proxySettings['authtype'];
}
return $accessData;
}