public function ucloudAction() { $params = array(); if (in_array(SERVER_PLATFORMS::UCLOUD, $this->env->getEnabledPlatforms())) { $params = $this->getCloudStackDetails(SERVER_PLATFORMS::UCLOUD); } $this->response->page('ui/account2/environments/platform/cloudstack.js', array('env' => array('id' => $this->env->id, 'name' => $this->env->name), 'params' => $params, 'platformName' => 'KT uCloud', 'platform' => 'ucloud')); }
private function getCloudParams($platform) { $params = []; if (in_array($platform, $this->env->getEnabledPlatforms()) || $platform == SERVER_PLATFORMS::AZURE) { $cloudCredentials = $this->env->keychain($platform); $ccProps = $cloudCredentials->properties; switch ($platform) { case SERVER_PLATFORMS::EC2: $params[SERVER_PLATFORMS::EC2 . '.is_enabled'] = true; $params[Entity\CloudCredentialsProperty::AWS_ACCOUNT_ID] = $ccProps[Entity\CloudCredentialsProperty::AWS_ACCOUNT_ID]; $params[Entity\CloudCredentialsProperty::AWS_ACCOUNT_TYPE] = $ccProps[Entity\CloudCredentialsProperty::AWS_ACCOUNT_TYPE]; $params[Entity\CloudCredentialsProperty::AWS_ACCESS_KEY] = $ccProps[Entity\CloudCredentialsProperty::AWS_ACCESS_KEY]; $params[Entity\CloudCredentialsProperty::AWS_SECRET_KEY] = $ccProps[Entity\CloudCredentialsProperty::AWS_SECRET_KEY] != '' ? '******' : ''; $params[Entity\CloudCredentialsProperty::AWS_PRIVATE_KEY] = $ccProps[Entity\CloudCredentialsProperty::AWS_PRIVATE_KEY] != '' ? 'Uploaded' : ''; $params[Entity\CloudCredentialsProperty::AWS_CERTIFICATE] = $ccProps[Entity\CloudCredentialsProperty::AWS_CERTIFICATE] != '' ? 'Uploaded' : ''; $params[Entity\CloudCredentialsProperty::AWS_DETAILED_BILLING_BUCKET] = $ccProps[Entity\CloudCredentialsProperty::AWS_DETAILED_BILLING_BUCKET]; $params[Entity\CloudCredentialsProperty::AWS_DETAILED_BILLING_ENABLED] = $ccProps[Entity\CloudCredentialsProperty::AWS_DETAILED_BILLING_ENABLED]; $params[Entity\CloudCredentialsProperty::AWS_DETAILED_BILLING_PAYER_ACCOUNT] = $ccProps[Entity\CloudCredentialsProperty::AWS_DETAILED_BILLING_PAYER_ACCOUNT]; $params[Entity\CloudCredentialsProperty::AWS_DETAILED_BILLING_REGION] = $ccProps[Entity\CloudCredentialsProperty::AWS_DETAILED_BILLING_REGION]; try { if ($params[Entity\CloudCredentialsProperty::AWS_ACCOUNT_TYPE] == Entity\CloudCredentialsProperty::AWS_ACCOUNT_TYPE_CN_CLOUD) { $params['arn'] = $this->env->aws('cn-north-1')->getUserArn(); } elseif ($params[Entity\CloudCredentialsProperty::AWS_ACCOUNT_TYPE] == Entity\CloudCredentialsProperty::AWS_ACCOUNT_TYPE_GOV_CLOUD) { $params['arn'] = $this->env->aws('us-gov-west-1')->getUserArn(); } else { $params['arn'] = $this->env->aws('us-east-1')->getUserArn(); } //$params['username'] = $this->env->aws('us-east-1')->getUsername(); } catch (Exception $e) { } break; case SERVER_PLATFORMS::GCE: $params[SERVER_PLATFORMS::GCE . '.is_enabled'] = true; $params[Entity\CloudCredentialsProperty::GCE_PROJECT_ID] = $ccProps[Entity\CloudCredentialsProperty::GCE_PROJECT_ID]; $jsonKey = $ccProps[Entity\CloudCredentialsProperty::GCE_JSON_KEY]; if (!empty($jsonKey)) { $params[Entity\CloudCredentialsProperty::GCE_JSON_KEY] = 'Uploaded'; } else { $params[Entity\CloudCredentialsProperty::GCE_CLIENT_ID] = $ccProps[Entity\CloudCredentialsProperty::GCE_CLIENT_ID]; $params[Entity\CloudCredentialsProperty::GCE_SERVICE_ACCOUNT_NAME] = $ccProps[Entity\CloudCredentialsProperty::GCE_SERVICE_ACCOUNT_NAME]; $params[Entity\CloudCredentialsProperty::GCE_KEY] = $ccProps[Entity\CloudCredentialsProperty::GCE_KEY] != '' ? 'Uploaded' : ''; } break; case SERVER_PLATFORMS::CLOUDSTACK: case SERVER_PLATFORMS::IDCF: $params = $this->getCloudStackDetails($platform); break; case SERVER_PLATFORMS::OPENSTACK: case SERVER_PLATFORMS::RACKSPACENG_UK: case SERVER_PLATFORMS::RACKSPACENG_US: case SERVER_PLATFORMS::OCS: case SERVER_PLATFORMS::NEBULA: case SERVER_PLATFORMS::MIRANTIS: case SERVER_PLATFORMS::VIO: case SERVER_PLATFORMS::VERIZON: case SERVER_PLATFORMS::CISCO: case SERVER_PLATFORMS::HPCLOUD: $params = $this->getOpenStackDetails($platform); break; case SERVER_PLATFORMS::AZURE: $params[SERVER_PLATFORMS::AZURE . '.is_enabled'] = $cloudCredentials->isEnabled(); $params[Entity\CloudCredentialsProperty::AZURE_TENANT_NAME] = $ccProps[Entity\CloudCredentialsProperty::AZURE_TENANT_NAME]; $params[Entity\CloudCredentialsProperty::AZURE_AUTH_STEP] = $ccProps[Entity\CloudCredentialsProperty::AZURE_AUTH_STEP] ?: 0; $params[Entity\CloudCredentialsProperty::AZURE_SUBSCRIPTION_ID] = $ccProps[Entity\CloudCredentialsProperty::AZURE_SUBSCRIPTION_ID]; $params['subscriptions'] = []; if ($params[Entity\CloudCredentialsProperty::AZURE_AUTH_STEP] > 1) { $subscriptionList = []; try { $subscriptions = $this->env->azure()->getSubscriptionsList(); foreach ($subscriptions as $subscription) { if ($subscription->state == 'Enabled') { $subscriptionList[] = ['displayName' => $subscription->displayName, 'subscriptionId' => $subscription->subscriptionId]; } } } catch (Exception $e) { if (strpos($e->getMessage(), 'Error validating credentials') !== false || strpos($e->getMessage(), 'Refresh token is expired or not exists') !== false) { $cloudCredentials->delete(); $cloudCredentials->release(); $params[Entity\CloudCredentialsProperty::AZURE_AUTH_STEP] = 0; $params[Entity\CloudCredentialsProperty::AZURE_SUBSCRIPTION_ID] = null; } $params['errorMessage'] = $e->getMessage(); break; } if (empty($subscriptionList)) { $params['errorMessage'] = sprintf("There are no active subscriptions available for the '%s' tenant", $params[Entity\CloudCredentialsProperty::AZURE_TENANT_NAME]); } $params['subscriptions'] = $subscriptionList; } break; } } if ($platform == SERVER_PLATFORMS::EC2) { $platformModule = PlatformFactory::NewPlatform($platform); /* @var $platformModule Ec2PlatformModule */ $params['cloudLocations'] = [Entity\CloudCredentialsProperty::AWS_ACCOUNT_TYPE_REGULAR => array_keys($platformModule->getLocationsByAccountType(Entity\CloudCredentialsProperty::AWS_ACCOUNT_TYPE_REGULAR)), Entity\CloudCredentialsProperty::AWS_ACCOUNT_TYPE_GOV_CLOUD => array_keys($platformModule->getLocationsByAccountType(Entity\CloudCredentialsProperty::AWS_ACCOUNT_TYPE_GOV_CLOUD)), Entity\CloudCredentialsProperty::AWS_ACCOUNT_TYPE_CN_CLOUD => array_keys($platformModule->getLocationsByAccountType(Entity\CloudCredentialsProperty::AWS_ACCOUNT_TYPE_CN_CLOUD))]; } return $params; }
private function getCloudParams($platform) { $params = array(); if (in_array($platform, $this->env->getEnabledPlatforms())) { switch ($platform) { case SERVER_PLATFORMS::EC2: $params[SERVER_PLATFORMS::EC2 . '.is_enabled'] = true; $params[Ec2PlatformModule::ACCOUNT_ID] = $this->env->getPlatformConfigValue(Ec2PlatformModule::ACCOUNT_ID); $params[Ec2PlatformModule::ACCOUNT_TYPE] = $this->env->getPlatformConfigValue(Ec2PlatformModule::ACCOUNT_TYPE); $params[Ec2PlatformModule::ACCESS_KEY] = $this->env->getPlatformConfigValue(Ec2PlatformModule::ACCESS_KEY); $params[Ec2PlatformModule::SECRET_KEY] = $this->env->getPlatformConfigValue(Ec2PlatformModule::SECRET_KEY) != '' ? '******' : ''; $params[Ec2PlatformModule::PRIVATE_KEY] = $this->env->getPlatformConfigValue(Ec2PlatformModule::PRIVATE_KEY) != '' ? 'Uploaded' : ''; $params[Ec2PlatformModule::CERTIFICATE] = $this->env->getPlatformConfigValue(Ec2PlatformModule::CERTIFICATE) != '' ? 'Uploaded' : ''; $params[Ec2PlatformModule::DETAILED_BILLING_BUCKET] = $this->env->getPlatformConfigValue(Ec2PlatformModule::DETAILED_BILLING_BUCKET); $params[Ec2PlatformModule::DETAILED_BILLING_ENABLED] = $this->env->getPlatformConfigValue(Ec2PlatformModule::DETAILED_BILLING_ENABLED); try { if ($params[Ec2PlatformModule::ACCOUNT_TYPE] == Ec2PlatformModule::ACCOUNT_TYPE_CN_CLOUD) { $params['arn'] = $this->env->aws('cn-north-1')->getUserArn(); } elseif ($params[Ec2PlatformModule::ACCOUNT_TYPE] == Ec2PlatformModule::ACCOUNT_TYPE_GOV_CLOUD) { $params['arn'] = $this->env->aws('us-gov-west-1')->getUserArn(); } else { $params['arn'] = $this->env->aws('us-east-1')->getUserArn(); } //$params['username'] = $this->env->aws('us-east-1')->getUsername(); } catch (Exception $e) { } break; case SERVER_PLATFORMS::GCE: $params[SERVER_PLATFORMS::GCE . '.is_enabled'] = true; $params[GoogleCEPlatformModule::PROJECT_ID] = $this->env->getPlatformConfigValue(GoogleCEPlatformModule::PROJECT_ID); $jsonKey = $this->env->getPlatformConfigValue(GoogleCEPlatformModule::JSON_KEY); if (!empty($jsonKey)) { $params[GoogleCEPlatformModule::JSON_KEY] = 'Uploaded'; } else { $params[GoogleCEPlatformModule::CLIENT_ID] = $this->env->getPlatformConfigValue(GoogleCEPlatformModule::CLIENT_ID); $params[GoogleCEPlatformModule::SERVICE_ACCOUNT_NAME] = $this->env->getPlatformConfigValue(GoogleCEPlatformModule::SERVICE_ACCOUNT_NAME); $params[GoogleCEPlatformModule::KEY] = $this->env->getPlatformConfigValue(GoogleCEPlatformModule::KEY) != '' ? 'Uploaded' : ''; } break; case SERVER_PLATFORMS::CLOUDSTACK: case SERVER_PLATFORMS::IDCF: $params = $this->getCloudStackDetails($platform); break; case SERVER_PLATFORMS::OPENSTACK: case SERVER_PLATFORMS::RACKSPACENG_UK: case SERVER_PLATFORMS::RACKSPACENG_US: case SERVER_PLATFORMS::ECS: case SERVER_PLATFORMS::OCS: case SERVER_PLATFORMS::NEBULA: case SERVER_PLATFORMS::MIRANTIS: case SERVER_PLATFORMS::VIO: case SERVER_PLATFORMS::VERIZON: case SERVER_PLATFORMS::CISCO: case SERVER_PLATFORMS::HPCLOUD: $params = $this->getOpenStackDetails($platform); break; case SERVER_PLATFORMS::RACKSPACE: $rows = $this->db->GetAll('SELECT * FROM client_environment_properties WHERE env_id = ? AND name LIKE "rackspace.%" AND `group` != "" GROUP BY `group`', $this->env->id); $params[SERVER_PLATFORMS::RACKSPACE . '.is_enabled'] = true; foreach ($rows as $value) { $cloud = $value['group']; $params[$cloud] = array(RackspacePlatformModule::USERNAME => $this->env->getPlatformConfigValue(RackspacePlatformModule::USERNAME, true, $cloud), RackspacePlatformModule::API_KEY => $this->env->getPlatformConfigValue(RackspacePlatformModule::API_KEY, true, $cloud), RackspacePlatformModule::IS_MANAGED => $this->env->getPlatformConfigValue(RackspacePlatformModule::IS_MANAGED, true, $cloud)); } break; case SERVER_PLATFORMS::EUCALYPTUS: $rows = $this->db->GetAll('SELECT * FROM client_environment_properties WHERE env_id = ? AND name LIKE "eucalyptus.%" AND `group` != "" GROUP BY `group`', $this->env->id); $params[SERVER_PLATFORMS::EUCALYPTUS . '.is_enabled'] = true; $params['locations'] = array(); foreach ($rows as $value) { $cloud = $value['group']; $params['locations'][$cloud] = array(EucalyptusPlatformModule::ACCOUNT_ID => $this->env->getPlatformConfigValue(EucalyptusPlatformModule::ACCOUNT_ID, true, $cloud), EucalyptusPlatformModule::ACCESS_KEY => $this->env->getPlatformConfigValue(EucalyptusPlatformModule::ACCESS_KEY, true, $cloud), EucalyptusPlatformModule::EC2_URL => $this->env->getPlatformConfigValue(EucalyptusPlatformModule::EC2_URL, true, $cloud), EucalyptusPlatformModule::S3_URL => $this->env->getPlatformConfigValue(EucalyptusPlatformModule::S3_URL, true, $cloud), EucalyptusPlatformModule::SECRET_KEY => $this->env->getPlatformConfigValue(EucalyptusPlatformModule::SECRET_KEY, true, $cloud) != '' ? '******' : false, EucalyptusPlatformModule::PRIVATE_KEY => $this->env->getPlatformConfigValue(EucalyptusPlatformModule::PRIVATE_KEY, true, $cloud) != '' ? 'Uploaded' : '', EucalyptusPlatformModule::CLOUD_CERTIFICATE => $this->env->getPlatformConfigValue(EucalyptusPlatformModule::CLOUD_CERTIFICATE, true, $cloud) != '' ? 'Uploaded' : '', EucalyptusPlatformModule::CERTIFICATE => $this->env->getPlatformConfigValue(EucalyptusPlatformModule::CERTIFICATE, true, $cloud) != '' ? 'Uploaded' : ''); } break; } } return $params; }
private function getCloudParams($platform) { $params = array(); if (in_array($platform, $this->env->getEnabledPlatforms())) { switch ($platform) { case SERVER_PLATFORMS::EC2: $params[SERVER_PLATFORMS::EC2 . '.is_enabled'] = true; $params[Ec2PlatformModule::ACCOUNT_ID] = $this->env->getPlatformConfigValue(Ec2PlatformModule::ACCOUNT_ID); $params[Ec2PlatformModule::ACCOUNT_TYPE] = $this->env->getPlatformConfigValue(Ec2PlatformModule::ACCOUNT_TYPE); $params[Ec2PlatformModule::ACCESS_KEY] = $this->env->getPlatformConfigValue(Ec2PlatformModule::ACCESS_KEY); $params[Ec2PlatformModule::SECRET_KEY] = $this->env->getPlatformConfigValue(Ec2PlatformModule::SECRET_KEY) != '' ? '******' : ''; $params[Ec2PlatformModule::PRIVATE_KEY] = $this->env->getPlatformConfigValue(Ec2PlatformModule::PRIVATE_KEY) != '' ? 'Uploaded' : ''; $params[Ec2PlatformModule::CERTIFICATE] = $this->env->getPlatformConfigValue(Ec2PlatformModule::CERTIFICATE) != '' ? 'Uploaded' : ''; try { $params['arn'] = $this->env->aws('us-east-1')->getUserArn(); //$params['username'] = $this->env->aws('us-east-1')->getUsername(); } catch (Exception $e) { } break; case SERVER_PLATFORMS::GCE: $params[SERVER_PLATFORMS::GCE . '.is_enabled'] = true; $params[GoogleCEPlatformModule::CLIENT_ID] = $this->env->getPlatformConfigValue(GoogleCEPlatformModule::CLIENT_ID); $params[GoogleCEPlatformModule::PROJECT_ID] = $this->env->getPlatformConfigValue(GoogleCEPlatformModule::PROJECT_ID); $params[GoogleCEPlatformModule::SERVICE_ACCOUNT_NAME] = $this->env->getPlatformConfigValue(GoogleCEPlatformModule::SERVICE_ACCOUNT_NAME); $params[GoogleCEPlatformModule::KEY] = $this->env->getPlatformConfigValue(GoogleCEPlatformModule::KEY) != '' ? 'Uploaded' : ''; break; case SERVER_PLATFORMS::CLOUDSTACK: case SERVER_PLATFORMS::IDCF: case SERVER_PLATFORMS::UCLOUD: $params = $this->getCloudStackDetails($platform); break; case SERVER_PLATFORMS::OPENSTACK: case SERVER_PLATFORMS::RACKSPACENG_UK: case SERVER_PLATFORMS::RACKSPACENG_US: case SERVER_PLATFORMS::ECS: case SERVER_PLATFORMS::CONTRAIL: case SERVER_PLATFORMS::OCS: case SERVER_PLATFORMS::NEBULA: $params = $this->getOpenStackDetails($platform); break; case SERVER_PLATFORMS::NIMBULA: $params[SERVER_PLATFORMS::NIMBULA . '.is_enabled'] = true; $params[NimbulaPlatformModule::API_URL] = $this->env->getPlatformConfigValue(NimbulaPlatformModule::API_URL); $params[NimbulaPlatformModule::USERNAME] = $this->env->getPlatformConfigValue(NimbulaPlatformModule::USERNAME); $params[NimbulaPlatformModule::PASSWORD] = $this->env->getPlatformConfigValue(NimbulaPlatformModule::PASSWORD); break; case SERVER_PLATFORMS::RACKSPACE: $rows = $this->db->GetAll('SELECT * FROM client_environment_properties WHERE env_id = ? AND name LIKE "rackspace.%" AND `group` != "" GROUP BY `group`', $this->env->id); $params[SERVER_PLATFORMS::RACKSPACE . '.is_enabled'] = true; foreach ($rows as $value) { $cloud = $value['group']; $params[$cloud] = array(RackspacePlatformModule::USERNAME => $this->env->getPlatformConfigValue(RackspacePlatformModule::USERNAME, true, $cloud), RackspacePlatformModule::API_KEY => $this->env->getPlatformConfigValue(RackspacePlatformModule::API_KEY, true, $cloud), RackspacePlatformModule::IS_MANAGED => $this->env->getPlatformConfigValue(RackspacePlatformModule::IS_MANAGED, true, $cloud)); } break; case SERVER_PLATFORMS::EUCALYPTUS: $rows = $this->db->GetAll('SELECT * FROM client_environment_properties WHERE env_id = ? AND name LIKE "eucalyptus.%" AND `group` != "" GROUP BY `group`', $this->env->id); $params[SERVER_PLATFORMS::EUCALYPTUS . '.is_enabled'] = true; $params['locations'] = array(); foreach ($rows as $value) { $cloud = $value['group']; $params['locations'][$cloud] = array(EucalyptusPlatformModule::ACCOUNT_ID => $this->env->getPlatformConfigValue(EucalyptusPlatformModule::ACCOUNT_ID, true, $cloud), EucalyptusPlatformModule::ACCESS_KEY => $this->env->getPlatformConfigValue(EucalyptusPlatformModule::ACCESS_KEY, true, $cloud), EucalyptusPlatformModule::EC2_URL => $this->env->getPlatformConfigValue(EucalyptusPlatformModule::EC2_URL, true, $cloud), EucalyptusPlatformModule::S3_URL => $this->env->getPlatformConfigValue(EucalyptusPlatformModule::S3_URL, true, $cloud), EucalyptusPlatformModule::SECRET_KEY => $this->env->getPlatformConfigValue(EucalyptusPlatformModule::SECRET_KEY, true, $cloud) != '' ? '******' : false, EucalyptusPlatformModule::PRIVATE_KEY => $this->env->getPlatformConfigValue(EucalyptusPlatformModule::PRIVATE_KEY, true, $cloud) != '' ? 'Uploaded' : '', EucalyptusPlatformModule::CLOUD_CERTIFICATE => $this->env->getPlatformConfigValue(EucalyptusPlatformModule::CLOUD_CERTIFICATE, true, $cloud) != '' ? 'Uploaded' : '', EucalyptusPlatformModule::CERTIFICATE => $this->env->getPlatformConfigValue(EucalyptusPlatformModule::CERTIFICATE, true, $cloud) != '' ? 'Uploaded' : ''); } break; } } return $params; }