Scalr\Service\OpenStack\OpenStack::listZones PHP Méthode

listZones() public méthode

Gets the list of available zones for the current endpoint
public listZones ( ) : array
Résultat array Zones list looks like array(stdClass1, stdClass2, ...)
    public function listZones()
    {
        $cfg = $this->getConfig();
        $client = $this->getClient();
        if (!$cfg->getAuthToken() instanceof AuthToken) {
            $client->auth();
        }
        $ret = array();
        foreach ($cfg->getAuthToken()->getZones() as $regionName) {
            $obj = new \stdClass();
            $obj->name = $regionName;
            $ret[] = $obj;
            unset($obj);
        }
        return $ret;
    }

Usage Example

Exemple #1
0
     if ($_REQUEST['openstack_keystone_url']) {
         $pars[SERVER_PLATFORMS::ECS . "." . OpenstackPlatformModule::KEYSTONE_URL] = $_REQUEST['openstack_keystone_url'];
         $updateEnv = true;
     } else {
         $pars[SERVER_PLATFORMS::ECS . "." . OpenstackPlatformModule::KEYSTONE_URL] = $env->getPlatformConfigValue(SERVER_PLATFORMS::ECS . "." . OpenstackPlatformModule::KEYSTONE_URL);
     }
     $pars[SERVER_PLATFORMS::ECS . "." . OpenstackPlatformModule::USERNAME] = $env->getPlatformConfigValue(SERVER_PLATFORMS::ECS . "." . OpenstackPlatformModule::USERNAME);
     $pars[SERVER_PLATFORMS::ECS . "." . OpenstackPlatformModule::PASSWORD] = $env->getPlatformConfigValue(SERVER_PLATFORMS::ECS . "." . OpenstackPlatformModule::PASSWORD);
     $pars[SERVER_PLATFORMS::ECS . "." . OpenstackPlatformModule::TENANT_NAME] = $env->getPlatformConfigValue(SERVER_PLATFORMS::ECS . "." . OpenstackPlatformModule::TENANT_NAME);
 }
 if ($updateEnv) {
     $env->setPlatformConfig(array(SERVER_PLATFORMS::ECS . "." . OpenstackPlatformModule::AUTH_TOKEN => false));
 }
 //var_dump($pars);
 $os = new OpenStack(new OpenStackConfig($pars[SERVER_PLATFORMS::ECS . "." . OpenstackPlatformModule::USERNAME], $pars[SERVER_PLATFORMS::ECS . "." . OpenstackPlatformModule::KEYSTONE_URL], 'fake-region', null, null, null, $pars[SERVER_PLATFORMS::ECS . "." . OpenstackPlatformModule::PASSWORD], $pars[SERVER_PLATFORMS::ECS . "." . OpenstackPlatformModule::TENANT_NAME]));
 $zones = $os->listZones();
 if ($updateEnv) {
     $env->enablePlatform(SERVER_PLATFORMS::ECS, true);
     $env->setPlatformConfig($pars);
 }
 unset($env);
 $env = Scalr_Environment::init()->loadById($envId);
 \Scalr::getContainer()->environment = $env;
 $configSet = false;
 foreach ($zones as $zone) {
     $osClient = $env->openstack(SERVER_PLATFORMS::ECS, $zone->name);
     // Check SG Extension
     if (!$configSet) {
         $pars2 = array();
         $pars2[getOpenStackOption('EXT_SECURITYGROUPS_ENABLED')] = (int) $osClient->servers->isExtensionSupported(ServersExtension::securityGroups());
         // Check Floating Ips Extension
All Usage Examples Of Scalr\Service\OpenStack\OpenStack::listZones