Sebastian Marcet df46bd5a0d [smarcet]
* ss3 migration fixes.

Conflicts:

	marketplace/code/model/consultants/ISpokenLanguage.php
2014-11-24 14:05:12 -03:00

648 lines
22 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* Copyright 2014 Openstack Foundation
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
class Deployment extends DataObject
{
private static $db = array(
// Section 2
'Label' => 'Text',
'IsPublic' => 'Boolean',
'DeploymentType' => 'Text',
'ProjectsUsed' => 'Text',
'CurrentReleases' => 'Text',
'DeploymentStage' => 'Text',
'NumCloudUsers' => 'Text',
'WorkloadsDescription' => 'Text',
'OtherWorkloadsDescription' => 'Text',
// Section 3
'APIFormats' => "Text",
'Hypervisors' => "Text",
'OtherHypervisor' => 'Text',
'BlockStorageDrivers' => 'Text',
'OtherBlockStorageDriver' => 'Text',
'NetworkDrivers' => 'Text',
'OtherNetworkDriver' => 'Text',
'WhyNovaNetwork' => 'Text',
'OtherWhyNovaNetwork' => 'Text',
'IdentityDrivers' => 'Text',
'OtherIndentityDriver' => 'Text',
'SupportedFeatures' => 'Text',
'DeploymentTools' => 'Text',
'OtherDeploymentTools' => 'Text',
'OperatingSystems' => 'Text',
'OtherOperatingSystems' => 'Text',
'ComputeNodes' => 'Text',
'ComputeCores' => 'Text',
'ComputeInstances' => 'Text',
'BlockStorageTotalSize' => 'Text',
'ObjectStorageSize' => 'Text',
'ObjectStorageNumObjects' => 'Text',
'NetworkNumIPs' => 'Text',
//control fields
'SendDigest' => 'Boolean',// SendDigest = 1 SENT, SendDigest = 0 to be send
'UpdateDate' => 'SS_Datetime',
'SwiftGlobalDistributionFeatures' => 'Text',
'SwiftGlobalDistributionFeaturesUsesCases' => 'Text',
'OtherSwiftGlobalDistributionFeaturesUsesCases' => 'Text',
'Plans2UseSwiftStoragePolicies' => 'Text',
'OtherPlans2UseSwiftStoragePolicies' => 'Text',
'UsedDBForOpenStackComponents' => 'Text',
'OtherUsedDBForOpenStackComponents' => 'Text',
'ToolsUsedForYourUsers' => 'Text',
'OtherToolsUsedForYourUsers' => 'Text',
'Reason2Move2Ceilometer' => 'Text',
);
private static $has_one = array(
'DeploymentSurvey' => 'DeploymentSurvey',
'Org' => 'Org'
);
private static $summary_fields = array(
'Label' => 'Label',
'Org.Name' => 'Organization'
);
private static $singular_name = 'Deployment';
private static $plural_name = 'Deployments';
protected function onBeforeWrite()
{
parent::onBeforeWrite();
$this->UpdateDate = SS_Datetime::now()->Rfc2822();
}
function getCMSFields()
{
$fields = new FieldList(
$rootTab = new TabSet("Root",
$tabContent = new TabSet('Content',
new Tab('Main'),
new Tab('Details')
))
);
$fields->addFieldsToTab('Root.Main',
array(
new TextField('Label', 'Deployment Name'),
new OptionSetField(
'IsPublic',
'Would you like to keep this information confidential or allow the Foundation to share information about this deployment publicly?',
array('1' => '<strong>Willing to share:</strong> The information on this page may be shared for this deployment',
'0' => '<strong>Confidential:</strong> All details provided should be kept confidential to the OpenStack Foundation'),
1
),
new DropdownField('OrgID', 'Organization', DataObject::get('Org', '', 'Org.Name ASC')->map("ID", "Name", "-- Please choose an Organization --")),
new DropdownField('DeploymentType', 'Deployment Type', Deployment::$deployment_type_options),
new CheckboxSetField('ProjectsUsed', 'Projects Used', Deployment::$projects_used_options),
new CheckboxSetField('CurrentReleases', 'What releases are you currently using?', Deployment::$current_release_options),
new CheckboxSetField(
'DeploymentStage',
'In what stage is your OpenStack deployment? (make a new deployment profile for each type of deployment)',
Deployment::$stage_options
),
new TextAreaField('NumCloudUsers',
'What\'s the size of your cloud by number of users?'),
new CheckboxSetField(
'WorkloadsDescription',
'Describe the workloads or applications running in your Openstack environment. (choose any that apply)',
ArrayUtils::AlphaSort(Deployment::$workloads_description_options, null, array('Other' => 'Other (please specify)'))),
new TextAreaField(
'OtherWorkloadsDescription',
'Other workloads or applications running in your Openstack environment. (optional)'),
));
$fields->addFieldsToTab('Root.Details',
array(
new LiteralField('Break', '<p>The information below will help us better understand
the most common configuration and component choices OpenStack deployments are using.</p>'),
new CheckboxSetField(
'Hypervisors',
'If you are using OpenStack Compute, which hypervisors are you using?',
ArrayUtils::AlphaSort(Deployment::$hypervisors_options)
),
new TextField('OtherHypervisor', 'Other Hypervisor'),
new CheckboxSetField(
'NetworkDrivers',
'Do you use nova-network, or OpenStack Network (Neutron)? If you are using OpenStack Network (Neutron), which drivers are you using?',
ArrayUtils::AlphaSort(Deployment::$network_driver_options)
),
new TextField('OtherNetworkDriver', 'Other Network Driver'),
new CheckboxSetField(
'WhyNovaNetwork',
'If you are using nova-network and not OpenStack Networking (Neutron), what would allow you to migrate? (optional)',
ArrayUtils::AlphaSort(Deployment::$why_nova_network_options, null, array('Other (please specify)' => 'Other (please specify)'))),
new LiteralField('Break', '<br/>'),
new TextField('OtherWhyNovaNetwork', ''),
new CheckboxSetField(
'BlockStorageDrivers',
'If you are using OpenStack Block Storage, which drivers are you using?',
ArrayUtils::AlphaSort(Deployment::$block_storage_divers_options)
),
new TextField('OtherBlockStorageDriver', 'Other Block Storage Driver'),
new CheckboxSetField(
'IdentityDrivers',
'If you are using OpenStack Identity which OpenStack Identity drivers are you using?',
ArrayUtils::AlphaSort(Deployment::$identity_driver_options)
),
new TextField('OtherIndentityDriver', 'Other/Custom Identity Driver'),
new CheckboxSetField(
'SupportedFeatures',
'Which of the following compatibility APIs does/will your deployment support?',
ArrayUtils::AlphaSort(Deployment::$deployment_features_options_new)
),
new CheckboxSetField(
'DeploymentTools',
'What tools are you using to deploy/configure your cluster?',
ArrayUtils::AlphaSort(Deployment::$deployment_tools_options)
),
new TextField('OtherDeploymentTools', 'Other tools'),
new CheckboxSetField(
'OperatingSystems',
'What is the main Operating System you are using to run your OpenStack cloud?',
ArrayUtils::AlphaSort(Deployment::$operating_systems_options)
),
new TextField('OtherOperatingSystems', 'Other Operating System'),
new LiteralField('Break', '<p>Please provide the following information about the
size and scale of this OpenStack deployment. This information is optional, but will
be kept confidential and never published in connection with your organization.</p>'),
new LiteralField('Break', '<p><strong>If using OpenStack Compute, whats the size of your cloud?</strong></p>'),
new DropdownField(
'ComputeNodes',
'Physical compute nodes',
Deployment::$compute_nodes_options
),
new DropdownField(
'ComputeCores',
'Processor cores',
Deployment::$compute_cores_options
),
new DropdownField(
'ComputeInstances',
'Number of instances',
Deployment::$compute_instances_options
),
new DropdownField(
'BlockStorageTotalSize',
'If using OpenStack Block Storage, whats the size of your cloud by total storage in terabytes?',
Deployment::$storage_size_options
),
new LiteralField('Break', '<p><strong>If using OpenStack Object Storage, whats the size of your cloud?</strong></p>'),
new DropdownField(
'ObjectStorageSize',
'Total storage in terabytes',
Deployment::$storage_size_options
),
new DropdownField(
'ObjectStorageNumObjects',
'Total objects stored',
Deployment::$stoage_objects_options
),
new DropdownField(
'SwiftGlobalDistributionFeatures',
'Are you using Swift\'s global distribution features?',
ArrayUtils::AlphaSort(Deployment::$swift_global_distribution_features_options, array('unspecified' => '-- Select One --'))
),
new DropdownField(
'SwiftGlobalDistributionFeaturesUsesCases',
'If yes, what is your use case?',
ArrayUtils::AlphaSort(Deployment::$swift_global_distribution_features_uses_cases_options, array('unspecified' => '-- Select One --'))
),
new TextField('OtherSwiftGlobalDistributionFeaturesUsesCases', ''),
new DropdownField(
'Plans2UseSwiftStoragePolicies',
'Do you have plans to use Swift\'s storage policies or erasure codes in the next year?',
ArrayUtils::AlphaSort(Deployment::$plans_2_use_swift_storage_policies_options, array('unspecified' => '-- Select One --'))
),
new TextField('OtherPlans2UseSwiftStoragePolicies', ''),
new DropdownField(
'NetworkNumIPs',
'If using OpenStack Network, whats the size of your cloud by number of fixed/floating IPs?',
Deployment::$network_ip_options
),
new CheckboxSetField(
'UsedDBForOpenStackComponents',
'What database do you use for the components of your OpenStack cloud?',
ArrayUtils::AlphaSort(Deployment::$used_db_for_openstack_components_options, null, array('Other' => 'Other (Specify)'))
),
new TextField('OtherUsedDBForOpenStackComponents', ''),
new CheckboxSetField(
'ToolsUsedForYourUsers',
'What tools are you using charging or show-back for your users?',
ArrayUtils::AlphaSort(Deployment::$tools_used_for_your_users_options, null, array('Other' => 'Other (Specify)'))
),
new TextField('OtherToolsUsedForYourUsers', ''),
new TextareaField('Reason2Move2Ceilometer', 'If you are not using Ceilometer, what would allow you to move to it (optional free text)?')
)
);
return $fields;
}
function getCMSValidator()
{
return $this->getValidator();
}
function getValidator()
{
// Create Validators
$validator = new RequiredFields('Label',
'IsPublic',
'ProjectsUsed',
'NumCloudUsers',
'CurrentReleases',
'DeploymentStage',
'DeploymentType');
return $validator;
}
public function getCountry()
{
return $this->DeploymentSurvey()->PrimaryCountry;
}
public function getIndustry()
{
return $this->DeploymentSurvey()->Industry;
}
public function getMember()
{
return $this->DeploymentSurvey()->Member();
}
public function getOrg()
{
return $this->Org()->Name;
}
public function OrgAndLabel()
{
return $this->getOrg() . ' - ' . $this->Label;
}
public function hasUserStory()
{
$userStory = UserStory::get()->filter('DeploymentID', $this->ID)->first();
return ($userStory) ? true : false;
}
public function getUserStory()
{
if ($this->hasUserStory()) {
return UserStory::get()->filter('DeploymentID', $this->ID)->first();
}
return false;
}
/**
* @param int $batch_size
* @return mixed
*/
public function getNotDigestSent($batch_size)
{
Deployment::get()->filter('SendDigest', 0)->sort('UpdateDate', 'ASC')->limit($batch_size);
}
public static $deployment_type_options = array(
'unspecified' => '-- Select One --',
'On-Premise Private Cloud' => 'On-Premise Private Cloud',
'Hosted Private Cloud' => 'Hosted Private Cloud',
'Public Cloud' => 'Public Cloud',
'Hybrid Cloud' => 'Hybrid Cloud',
'Community Cloud' => 'Community Cloud'
);
public static $projects_used_options = array(
'Openstack Compute (Nova)' => 'Openstack Compute (Nova)',
'Openstack Block Storage (Cinder)' => 'Openstack Block Storage (Cinder)',
'Openstack Object Storage (Swift)' => 'Openstack Object Storage (Swift)',
'Openstack Network' => 'Openstack Network (Neutron)',
'Openstack Dashboard (Horizon)' => 'Openstack Dashboard (Horizon)',
'Openstack Identity Service (Keystone)' => 'Openstack Identity Service (Keystone)',
'Openstack Image Service (Glance)' => 'Openstack Image Service (Glance)',
'Heat' => 'OpenStack Orchestration (Heat)',
'Ceilometer' => 'OpenStack Telemetry (Ceilometer)',
'OpenStack Bare Metal (Ironic)' => 'OpenStack Bare Metal (Ironic)',
'OpenStack Database as a Service (Trove)' => 'OpenStack Database as a Service (Trove)',
'OpenStack Data Processing (Sahara)' => 'OpenStack Data Processing (Sahara)'
);
public static $current_release_options = array(
'Trunk' => 'Trunk / Continuous deployment',
'Icehouse (2014.1)' => 'Icehouse (2014.1)',
'Havana (2013.2)' => 'Havana (2013.2)',
'Grizzly' => 'Grizzly (2013.1)',
'Folsom (2012.2)' => 'Folsom (2012.2)',
'Essex (2012.1)' => 'Essex (2012.1)',
'Diablo (2011.3)' => 'Diablo (2011.3)',
'Cactus (2011.2)' => 'Cactus (2011.2)',
'Bexar (2011.1)' => 'Bexar (2011.1)',
'Austin (2010.1)' => 'Austin (2010.1)'
);
public static $stage_options = array(
'' => '-- Select One --',
'Proof of Concept' => 'Proof of Concept',
'Under development/in testing' => 'Under development/in testing',
'Production' => 'Production'
);
public static $num_cloud_users_options = array(
'Prefer not to say' => 'Prefer not to say',
'1-100 users' => '1-100 users',
'101-1,000 users' => '101-1,000 users',
'1,001-5,000 users' => '1,001-5,000 users',
'5,001-10,000 users' => '5,001-10,000 users',
'10,001-50,000 users' => '10,001-50,000 users',
'50,001-100,000 users' => '50,001-100,000 users',
'More than 100,000 users' => 'More than 100,000 users'
);
public static $workloads_description_options = array(
'Virtual Desktops' => 'Virtual Desktops',
'HPC' => 'High Throughput Computing/Batch System/HPC',
'Public Hosting' => 'Public Hosting',
'Web Services' => 'Web Services',
'Data Mining/Big Data/Hadoop' => 'Data Mining/Big Data/Hadoop',
'Storage/Backup' => 'Storage/Backup',
'QA/Test Environment' => 'QA/Test Environment',
'Continuous integration/Automated Testing workflows' => 'Continuous integration/Automated Testing workflows',
'Bio/Medical Applications' => 'Bio/Medical Applications',
'Mobile Applications' => 'Mobile Applications',
'Network Applications' => 'Network Applications',
'Geographical Information Systems (GIS)' => 'Geographical Information Systems (GIS)',
'File Sharing' => 'File Sharing',
'CDN/Video Streaming' => 'CDN/Video Streaming',
'Education/MOOC' => 'Education/MOOC',
'Enterprise Applications' => 'Enterprise Applications',
'Databases' => 'Databases',
'Benchmarks/Stress Testing' => 'Benchmarks/Stress Testing',
'Research' => 'Research',
'Management and Monitoring Systems' => 'Management and Monitoring Systems',
'Games/Online Games' => 'Games/Online Games',
'Up to the user' => 'Its up to the user',
);
public static $api_options = array(
'XML' => 'XML',
'JSON' => 'JSON'
);
public static $hypervisors_options = array(
'kvm' => 'KVM',
'xen' => 'Xen / XCP',
'xenserver' => 'Citrix XenServer',
'hyperv' => 'Microsoft HyperV',
'esx' => 'VMware ESX',
'lxc' => 'LXC',
'QEMU' => 'QEMU',
'PowerKVM' => 'PowerKVM',
'Bare Metal' => 'Bare Metal',
'OpenVZ' => 'OpenVZ',
'Docker' => 'Docker'
);
public static $block_storage_divers_options = array(
'Ceph RBD' => 'Ceph RBD',
'Coraid' => 'Coraid',
'Dell EqualLogic' => 'Dell EqualLogic',
'EMC' => 'EMC',
'GlusterFS' => 'GlusterFS',
'HDS' => 'HDS',
'HP 3PAR' => 'HP 3PAR',
'HP LeftHand' => 'HP LeftHand',
'Huawei' => 'Huawei',
'Storwize' => 'IBM Storwize',
'XIV' => 'IBM XIV/DS8000',
'IBM GPFS' => 'IBM GPFS',
'LVM' => 'LVM (default)',
'Mellanox' => 'Mellanox',
'NetApp' => 'NetApp',
'Nexenta' => 'Nexenta',
'NFS' => 'NFS',
'SAN/Solaris' => 'SAN/Solaris',
'Scality' => 'Scality',
'Sheepdog' => 'Sheepdog',
'SolidFire' => 'SolidFire',
'Windows' => 'Windows Server 2012',
'Xenapi' => 'Xenapi NFS',
'XenAPI Storage Manager' => 'XenAPI Storage Manager',
'Zadara' => 'Zadara',
'IBM NAS' => 'IBM NAS',
'ProphetStor' => 'ProphetStor',
'VMWare VMDK' => 'VMWare VMDK',
);
public static $network_driver_options = array(
'nova-network' => 'nova-network',
'Big Switch' => 'Big Switch',
'Brocade' => 'Brocade',
'Cisco' => 'Cisco UCS/Nexus',
'Embrane' => 'Embrane',
'Extreme Networks' => 'Extreme Networks',
'Hyper-V' => 'Hyper-V',
'Juniper' => 'Juniper',
'Linux Bridge' => 'Linux Bridge',
'Mellanox' => 'Mellanox',
'MidoNet' => 'MidoNet',
'Modular Layer 2 Plugin' => 'Modular Layer 2 Plugin (ML2)',
'NEC' => 'NEC OpenFLow',
'Nicira' => 'Nicira NVP',
'Open vSwitch' => 'Open vSwitch',
'PLUMgrid' => 'PLUMgrid',
'Ruijie Networks' => 'Ruijie Networks',
'Ryu' => 'Ryu OpenFlow Controller',
'A10 Networks' => 'A10 Networks',
'Arista' => 'Arista',
'IBM SDN-VE' => 'IBM SDN-VE',
'Meta Plugin' => 'Meta Plugin',
'Nuage Networks' => 'Nuage Networks',
'One Convergence NVSD' => 'One Convergence NVSD',
'OpenDaylight' => 'OpenDaylight',
'VMWare NSX (formerly Nicira NVP)' => 'VMWare NSX (formerly Nicira NVP)',
);
public static $identity_driver_options = array(
'LDAP' => 'LDAP',
'AD' => 'Active Directory',
'SQL' => 'SQL',
'PAM' => 'PAM',
'KVS' => 'KVS',
'Templated' => 'Templated'
);
public static $deployment_features_options = array(
'Dashboard' => 'Dashboard',
'Object storage' => 'Object storage',
'Live migration' => 'Live migration',
'Snapshotting to new images' => 'Snapshotting to new images',
'EC2 compatibility API' => 'EC2 compatibility API',
'S3 compatibility API' => 'S3 compatibility API',
'OCCI compatibility API' => 'OCCI compatibility API',
'GCE compatibility API' => 'GCE compatibility API'
);
public static $deployment_features_options_new = array(
'EC2 compatibility API' => 'EC2 compatibility API',
'S3 compatibility API' => 'S3 compatibility API',
'OCCI compatibility API' => 'OCCI compatibility API',
'GCE compatibility API' => 'GCE compatibility API'
);
public static $deployment_tools_options = array(
'DevStack' => 'DevStack',
'Chef' => 'Chef',
'Crowbar' => 'Crowbar',
'PackStack' => 'PackStack',
'Puppet' => 'Puppet',
'SaltStack' => 'SaltStack',
'Ansible' => 'Ansible',
'CFEngine' => 'CFEngine',
'Juju' => 'Juju',
);
public static $operating_systems_options = array(
'CentOS' => 'CentOS',
'Debian' => 'Debian',
'openSUSE' => 'openSUSE',
'Red Hat Enterprise Linux' => 'Red Hat Enterprise Linux',
'SUSE Linux Enterprise' => 'SUSE Linux Enterprise',
'Ubuntu' => 'Ubuntu',
'Windows' => 'Windows',
'Fedora' => 'Fedora',
'Scientific Linux' => 'Scientific Linux',
);
public static $compute_nodes_options = array(
'unspecified' => '-- Select One --',
'1-50 nodes' => '1-50 nodes',
'51-100 nodes' => '51-100 nodes',
'101-500 nodes' => '101-500 nodes',
'501-1,000 nodes' => '501-1,000 nodes',
'More than 1,000 nodes' => '1,001-5,000 nodes',
'More than 5,000 nodes' => 'More than 5,000 nodes'
);
public static $compute_cores_options = array(
'unspecified' => '-- Select One --',
'1-100 cores' => '1-100 cores',
'101-500 cores' => '101-500 cores',
'501-1,000 cores' => '501-1,000 cores',
'1,001-5,000 cores' => '1,001-5,000 cores',
'5,001-10,000 cores' => '5,001-10,000 cores',
'More than 10,000 cores' => '10,001-50,000 cores',
'More than 50,000 cores' => 'More than 50,000 cores'
);
public static $compute_instances_options = array(
'unspecified' => '-- Select One --',
'1-100 instances' => '1-100 instances',
'101-500 instances' => '101-500 instances',
'501-1,000 instances' => '501-1,000 instances',
'1,001-5,000 instances' => '1,001-5,000 instances',
'5,000-10,000 instances' => '5,000-10,000 instances',
'More than 10,000 instances' => 'More than 10,000 instances'
);
public static $storage_size_options = array(
'unspecified' => '-- Select One --',
'0-10 TB' => '0-10 TB',
'11-100 TB' => '11-100 TB',
'100-500 TB' => '100-500 TB',
'More than 500 TB' => '501-1,000 TB',
'1PB-5PB' => '1PB-5PB',
'5PB-20PB' => '5PB-20PB',
'over 20PB' => 'over 20PB',
);
public static $stoage_objects_options = array(
'unspecified' => '-- Select One --',
'1-10,000 objects' => '1-10,000 objects',
'10,001-100,000 objects' => '10,001-100,000 objects',
'100,001 to 1 million objects' => '100,001 to 1 million objects',
'1 million to 100 million objects' => '1 million to 100 million objects',
'100 million to 500 million objects' => '100 million to 500 million objects',
'More than 500 million objects' => 'More than 500 million objects'
);
public static $network_ip_options = array(
'unspecified' => '-- Select One --',
'less than 100' => 'less than 100',
'101 to 1,000' => '101 to 1,000',
'1,001 to 10,000' => '1,001 to 10,000',
'More than 10,000' => 'More than 10,000'
);
public static $why_nova_network_options = array(
'Complexity of Neutron' => 'Complexity of Neutron',
'Scalability, Performance' => 'Scalability, Performance',
'Migration effort' => 'Migration effort',
);
public static $swift_global_distribution_features_options = array(
'Yes, globally distributed clusters' => 'Yes, globally distributed clusters',
'Yes, container sync' => 'Yes, container sync',
'No, this Swift cluster is only in a single region' => 'No, this Swift cluster is only in a single region',
);
public static $swift_global_distribution_features_uses_cases_options = array(
'Disaster recovery, continuity of business, or regulatory reasons' => 'Disaster recovery, continuity of business, or regulatory reasons',
'Locality of access' => 'Locality of access',
'Other' => 'Other (specify)',
);
public static $plans_2_use_swift_storage_policies_options = array(
'Yes' => 'Yes',
'No' => 'No',
'Maybe. Please explain' => 'Maybe. Please explain',
);
public static $used_db_for_openstack_components_options = array(
'MySQL' => 'MySQL',
'Percona Server' => 'Percona Server',
'MariaDB' => 'MariaDB',
'MySQL with Galera' => 'MySQL with Galera',
'MySQL with DRBD' => 'MySQL with DRBD',
'Percona XtraDB Cluster' => 'Percona XtraDB Cluster',
'MariaDB Galera Cluster' => 'MariaDB Galera Cluster',
'PostgreSQL' => 'PostgreSQL',
'MongoDB' => 'MongoDB',
'SQLite' => 'SQLite',
);
public static $tools_used_for_your_users_options = array(
'None' => 'None',
'Home grown tools using ceilometer' => 'Home grown tools using ceilometer',
'Home grown tools using other OpenStack components than ceilometer' => 'Home grown tools using other OpenStack components than ceilometer',
'Cloud Kitty' => 'Cloud Kitty',
);
}