Skip to content
Snippets Groups Projects
Commit f5a3fb90 authored by Yutong Li's avatar Yutong Li Committed by Yas Naoi
Browse files

Issue #3246330 by yutong.li, yas: Fix the logic of $edit in Aws Cloud Admin Settings

parent 8de171cf
No related branches found
No related tags found
No related merge requests found
......@@ -31,71 +31,4 @@ trait AwsCloudFormTrait {
return '[A-Za-z0-9' . preg_quote(self::$awsCloudSecurityGroupDescriptionSpecialCharacters, NULL) . ']*';
}
/**
* Get the AWS Cloud service providers as an array.
*
* @return array
* An array of AWS Cloud service providers.
*/
protected function getCloudServiceProviderOptions(): array {
$entities = \Drupal::service('plugin.manager.cloud_config_plugin')->loadConfigEntities('aws_cloud');
$cloud_configs = [];
foreach ($entities ?: [] as $entity) {
$cloud_configs[] = $entity->getCloudContext();
}
return $cloud_configs;
}
/**
* Get all other criteria options on AWS Cloud Notifications.
*
* @return array
* Array of criteria.
*/
protected function getCriteriaOptions(): array {
return [30, 60, 90, 180, 365];
}
/**
* Get the frequency options on AWS Cloud Notifications.
*
* @return array
* Array of frequency.
*/
protected function getFrequencyOptions(): array {
return [86400, 604800, 2592000, 5184000, 7776000, 15552000, 31104000];
}
/**
* Get the items per page on Pager options, Views, AWS Cloud Settings.
*
* @return array
* Array of item per page.
*/
protected function getItemsPerPageOptions(): array {
return [10, 15, 20, 25, 50, 100];
}
/**
* Get the notification criteria options on AWS Cloud Notifications.
*
* @return array
* Array of notification criteria.
*/
protected function getNotificationCriteriaOptions(): array {
return [1, 30, 60, 90, 180, 365];
}
/**
* Get all period options on AWS Cloud Notifications.
*
* @return array
* Array of period.
*/
protected function getPeriodOptions(): array {
return ['4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14'];
}
}
......@@ -1528,6 +1528,73 @@ trait AwsCloudTestFormDataTrait {
return $tags;
}
/**
* Get the AWS Cloud service providers as an array.
*
* @return array
* An array of AWS Cloud service providers.
*/
protected function getCloudServiceProviderOptions(): array {
$entities = \Drupal::service('plugin.manager.cloud_config_plugin')->loadConfigEntities('aws_cloud');
$cloud_configs = [];
foreach ($entities ?: [] as $entity) {
$cloud_configs[] = $entity->getCloudContext();
}
return $cloud_configs;
}
/**
* Get all other criteria options on AWS Cloud Notifications.
*
* @return array
* Array of criteria.
*/
protected function getCriteriaOptions(): array {
return [30, 60, 90, 180, 365];
}
/**
* Get the frequency options on AWS Cloud Notifications.
*
* @return array
* Array of frequency.
*/
protected function getFrequencyOptions(): array {
return [86400, 604800, 2592000, 5184000, 7776000, 15552000, 31104000];
}
/**
* Get the items per page on Pager options, Views, AWS Cloud Settings.
*
* @return array
* Array of item per page.
*/
protected function getItemsPerPageOptions(): array {
return [10, 15, 20, 25, 50, 100];
}
/**
* Get the notification criteria options on AWS Cloud Notifications.
*
* @return array
* Array of notification criteria.
*/
protected function getNotificationCriteriaOptions(): array {
return [1, 30, 60, 90, 180, 365];
}
/**
* Get all period options on AWS Cloud Notifications.
*
* @return array
* Array of period.
*/
protected function getPeriodOptions(): array {
return ['4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14'];
}
/**
* Create an array of random input data for Locations.
*
......@@ -1540,13 +1607,13 @@ trait AwsCloudTestFormDataTrait {
$edit = [];
for ($i = 0; $i < $repeat_count; $i++) {
foreach (array_keys($regions) ?: [] as $region) {
$latitude = rand(-90, 90);
$longitude = rand(-180, 180);
array_push($edit,
["aws_cloud_region_locations[$region][city]" => $this->random->name(128, TRUE)],
["aws_cloud_region_locations[$region][latitude]" => $latitude],
["aws_cloud_region_locations[$region][longitude]" => $longitude]
);
$latitude = random_int(-90, 90);
$longitude = random_int(-180, 180);
$edit[] = [
"aws_cloud_region_locations[$region][city]" => $this->random->name(128, TRUE),
"aws_cloud_region_locations[$region][latitude]" => $latitude,
"aws_cloud_region_locations[$region][longitude]" => $longitude,
];
}
}
......@@ -1575,64 +1642,64 @@ trait AwsCloudTestFormDataTrait {
$edit = [];
for ($i = 0; $i < $repeat_count; $i++) {
$edit = [
['aws_cloud_notification_frequency' => $frequency_options[array_rand($frequency_options)]],
['aws_cloud_instance_notification_hour' => (string) $hour_options[array_rand($hour_options)]],
['aws_cloud_instance_notification_minutes' => (string) $minute_options[array_rand($minute_options)]],
['aws_cloud_long_running_instance_notification' => !$config->get('aws_cloud_long_running_instance_notification')],
['aws_cloud_long_running_instance_notify_owner' => !$config->get('aws_cloud_long_running_instance_notify_owner')],
['aws_cloud_long_running_instance_notification_criteria' => $notification_criteria_options[array_rand($notification_criteria_options)]],
['aws_cloud_long_running_instance_notification_emails' => $this->random->name(10, TRUE)],
['aws_cloud_long_running_instance_notification_subject' => $this->random->name(10, TRUE)],
['aws_cloud_long_running_instance_notification_msg' => $this->random->name(10, TRUE)],
['aws_cloud_long_running_instance_notification_instance_info' => $this->random->name(10, TRUE)],
['aws_cloud_low_utilization_instance_notification' => !$config->get('aws_cloud_low_utilization_instance_notification')],
['aws_cloud_low_utilization_instance_notify_owner' => !$config->get('aws_cloud_low_utilization_instance_notify_owner')],
['aws_cloud_low_utilization_instance_cpu_utilization_threshold' => rand(1, 100)],
['aws_cloud_low_utilization_instance_network_io_threshold' => rand(1, 1024)],
['aws_cloud_low_utilization_instance_period' => $period_options[array_rand($period_options)]],
['aws_cloud_low_utilization_instance_notification_emails' => $this->random->name(10, TRUE)],
['aws_cloud_low_utilization_instance_notification_subject' => $this->random->name(10, TRUE)],
['aws_cloud_low_utilization_instance_notification_msg' => $this->random->name(10, TRUE)],
['aws_cloud_low_utilization_instance_notification_instance_info' => $this->random->name(10, TRUE)],
['aws_cloud_volume_notification' => !$config->get('aws_cloud_volume_notification')],
['aws_cloud_volume_notify_owner' => !$config->get('aws_cloud_volume_notify_owner')],
['aws_cloud_volume_notification_frequency' => $frequency_options[array_rand($frequency_options)]],
['aws_cloud_unused_volume_criteria' => $criteria_options[array_rand($criteria_options)]],
['aws_cloud_volume_notification_hour' => (string) $hour_options[array_rand($hour_options)]],
['aws_cloud_volume_notification_minutes' => (string) $minute_options[array_rand($minute_options)]],
['aws_cloud_volume_notification_emails' => $this->random->name(10, TRUE)],
['aws_cloud_volume_notification_subject' => $this->random->name(10, TRUE)],
['aws_cloud_volume_notification_msg' => $this->random->name(10, TRUE)],
['aws_cloud_volume_notification_volume_info' => $this->random->name(10, TRUE)],
['aws_cloud_snapshot_notification' => !$config->get('aws_cloud_snapshot_notification')],
['aws_cloud_snapshot_notify_owner' => !$config->get('aws_cloud_snapshot_notify_owner')],
['aws_cloud_snapshot_notification_frequency' => $frequency_options[array_rand($frequency_options)]],
['aws_cloud_stale_snapshot_criteria' => $criteria_options[array_rand($criteria_options)]],
['aws_cloud_snapshot_notification_hour' => (string) $hour_options[array_rand($hour_options)]],
['aws_cloud_snapshot_notification_minutes' => (string) $minute_options[array_rand($minute_options)]],
['aws_cloud_snapshot_notification_emails' => $this->random->name(10, TRUE)],
['aws_cloud_snapshot_notification_subject' => $this->random->name(10, TRUE)],
['aws_cloud_snapshot_notification_msg' => $this->random->name(10, TRUE)],
['aws_cloud_snapshot_notification_snapshot_info' => $this->random->name(10, TRUE)],
['aws_cloud_elastic_ip_notification' => !$config->get('aws_cloud_elastic_ip_notification')],
['aws_cloud_elastic_ip_notify_owner' => !$config->get('aws_cloud_elastic_ip_notify_owner')],
['aws_cloud_elastic_ip_notification_frequency' => $frequency_options[array_rand($frequency_options)]],
['aws_cloud_elastic_ip_notification_hour' => (string) $hour_options[array_rand($hour_options)]],
['aws_cloud_elastic_ip_notification_minutes' => (string) $minute_options[array_rand($minute_options)]],
['aws_cloud_elastic_ip_notification_emails' => $this->random->name(10, TRUE)],
['aws_cloud_elastic_ip_notification_subject' => $this->random->name(10, TRUE)],
['aws_cloud_elastic_ip_notification_msg' => $this->random->name(10, TRUE)],
['aws_cloud_elastic_ip_notification_elastic_ip_info' => $this->random->name(10, TRUE)],
['aws_cloud_launch_template_notification_request_emails' => $this->random->name(10, TRUE)],
['aws_cloud_launch_template_notification_request_subject' => $this->random->name(10, TRUE)],
['aws_cloud_launch_template_notification_request_msg' => $this->random->name(10, TRUE)],
['aws_cloud_launch_template_notification_launch_template_request_info' => $this->random->name(10, TRUE)],
['aws_cloud_launch_template_notification_approved_subject' => $this->random->name(10, TRUE)],
['aws_cloud_launch_template_notification_approved_msg' => $this->random->name(10, TRUE)],
['aws_cloud_launch_template_notification_restore_subject' => $this->random->name(10, TRUE)],
['aws_cloud_launch_template_notification_restore_msg' => $this->random->name(10, TRUE)],
['aws_cloud_launch_template_notification_launch_template_info' => $this->random->name(10, TRUE)],
$edit[] = [
'aws_cloud_notification_frequency' => $frequency_options[array_rand($frequency_options)],
'aws_cloud_instance_notification_hour' => (string) $hour_options[array_rand($hour_options)],
'aws_cloud_instance_notification_minutes' => (string) $minute_options[array_rand($minute_options)],
'aws_cloud_long_running_instance_notification' => !$config->get('aws_cloud_long_running_instance_notification'),
'aws_cloud_long_running_instance_notify_owner' => !$config->get('aws_cloud_long_running_instance_notify_owner'),
'aws_cloud_long_running_instance_notification_criteria' => $notification_criteria_options[array_rand($notification_criteria_options)],
'aws_cloud_long_running_instance_notification_emails' => $this->random->name(10, TRUE),
'aws_cloud_long_running_instance_notification_subject' => $this->random->name(10, TRUE),
'aws_cloud_long_running_instance_notification_msg' => $this->random->name(10, TRUE),
'aws_cloud_long_running_instance_notification_instance_info' => $this->random->name(10, TRUE),
'aws_cloud_low_utilization_instance_notification' => !$config->get('aws_cloud_low_utilization_instance_notification'),
'aws_cloud_low_utilization_instance_notify_owner' => !$config->get('aws_cloud_low_utilization_instance_notify_owner'),
'aws_cloud_low_utilization_instance_cpu_utilization_threshold' => random_int(1, 100),
'aws_cloud_low_utilization_instance_network_io_threshold' => random_int(1, 1024),
'aws_cloud_low_utilization_instance_period' => $period_options[array_rand($period_options)],
'aws_cloud_low_utilization_instance_notification_emails' => $this->random->name(10, TRUE),
'aws_cloud_low_utilization_instance_notification_subject' => $this->random->name(10, TRUE),
'aws_cloud_low_utilization_instance_notification_msg' => $this->random->name(10, TRUE),
'aws_cloud_low_utilization_instance_notification_instance_info' => $this->random->name(10, TRUE),
'aws_cloud_volume_notification' => !$config->get('aws_cloud_volume_notification'),
'aws_cloud_volume_notify_owner' => !$config->get('aws_cloud_volume_notify_owner'),
'aws_cloud_volume_notification_frequency' => $frequency_options[array_rand($frequency_options)],
'aws_cloud_unused_volume_criteria' => $criteria_options[array_rand($criteria_options)],
'aws_cloud_volume_notification_hour' => (string) $hour_options[array_rand($hour_options)],
'aws_cloud_volume_notification_minutes' => (string) $minute_options[array_rand($minute_options)],
'aws_cloud_volume_notification_emails' => $this->random->name(10, TRUE),
'aws_cloud_volume_notification_subject' => $this->random->name(10, TRUE),
'aws_cloud_volume_notification_msg' => $this->random->name(10, TRUE),
'aws_cloud_volume_notification_volume_info' => $this->random->name(10, TRUE),
'aws_cloud_snapshot_notification' => !$config->get('aws_cloud_snapshot_notification'),
'aws_cloud_snapshot_notify_owner' => !$config->get('aws_cloud_snapshot_notify_owner'),
'aws_cloud_snapshot_notification_frequency' => $frequency_options[array_rand($frequency_options)],
'aws_cloud_stale_snapshot_criteria' => $criteria_options[array_rand($criteria_options)],
'aws_cloud_snapshot_notification_hour' => (string) $hour_options[array_rand($hour_options)],
'aws_cloud_snapshot_notification_minutes' => (string) $minute_options[array_rand($minute_options)],
'aws_cloud_snapshot_notification_emails' => $this->random->name(10, TRUE),
'aws_cloud_snapshot_notification_subject' => $this->random->name(10, TRUE),
'aws_cloud_snapshot_notification_msg' => $this->random->name(10, TRUE),
'aws_cloud_snapshot_notification_snapshot_info' => $this->random->name(10, TRUE),
'aws_cloud_elastic_ip_notification' => !$config->get('aws_cloud_elastic_ip_notification'),
'aws_cloud_elastic_ip_notify_owner' => !$config->get('aws_cloud_elastic_ip_notify_owner'),
'aws_cloud_elastic_ip_notification_frequency' => $frequency_options[array_rand($frequency_options)],
'aws_cloud_elastic_ip_notification_hour' => (string) $hour_options[array_rand($hour_options)],
'aws_cloud_elastic_ip_notification_minutes' => (string) $minute_options[array_rand($minute_options)],
'aws_cloud_elastic_ip_notification_emails' => $this->random->name(10, TRUE),
'aws_cloud_elastic_ip_notification_subject' => $this->random->name(10, TRUE),
'aws_cloud_elastic_ip_notification_msg' => $this->random->name(10, TRUE),
'aws_cloud_elastic_ip_notification_elastic_ip_info' => $this->random->name(10, TRUE),
'aws_cloud_launch_template_notification_request_emails' => $this->random->name(10, TRUE),
'aws_cloud_launch_template_notification_request_subject' => $this->random->name(10, TRUE),
'aws_cloud_launch_template_notification_request_msg' => $this->random->name(10, TRUE),
'aws_cloud_launch_template_notification_launch_template_request_info' => $this->random->name(10, TRUE),
'aws_cloud_launch_template_notification_approved_subject' => $this->random->name(10, TRUE),
'aws_cloud_launch_template_notification_approved_msg' => $this->random->name(10, TRUE),
'aws_cloud_launch_template_notification_restore_subject' => $this->random->name(10, TRUE),
'aws_cloud_launch_template_notification_restore_msg' => $this->random->name(10, TRUE),
'aws_cloud_launch_template_notification_launch_template_info' => $this->random->name(10, TRUE),
];
}
......@@ -1654,25 +1721,25 @@ trait AwsCloudTestFormDataTrait {
$edit = [];
for ($i = 0; $i < $repeat_count; $i++) {
$edit = [
['aws_cloud_test_mode' => !$config->get('aws_cloud_test_mode')],
['aws_cloud_view_refresh_interval' => rand(1, 9999)],
['aws_cloud_view_expose_items_per_page' => !$config->get('aws_cloud_view_expose_items_per_page')],
['aws_cloud_view_items_per_page' => $items_per_page[array_rand($items_per_page)]],
['aws_cloud_instance_terminate' => !$config->get('aws_cloud_instance_terminate')],
['aws_cloud_scheduler_tag' => $this->random->name(10, TRUE)],
['aws_cloud_scheduler_periods' => $this->random->name(10, TRUE)],
['aws_cloud_instance_type_prices' => !$config->get('aws_cloud_instance_type_prices')],
['aws_cloud_instance_type_prices_spreadsheet' => !$config->get('aws_cloud_instance_type_prices_spreadsheet')],
['aws_cloud_instance_type_cost' => !$config->get('aws_cloud_instance_type_cost')],
['aws_cloud_instance_type_cost_list' => !$config->get('aws_cloud_instance_type_cost_list')],
['aws_cloud_instance_list_cost_column' => !$config->get('aws_cloud_instance_list_cost_column')],
['aws_cloud_ec2_pricing_endpoint' => $this->random->name(10, TRUE)],
['aws_cloud_service_provider' => $cloud_service_providers[array_rand($cloud_service_providers)]],
['aws_cloud_price_rate_ec2' => rand(1, 100)],
['aws_cloud_monitor_refresh_interval' => rand(1, 9999)],
['aws_cloud_update_resources_queue_cron_time' => rand(1, 9999)],
['aws_cloud_queue_limit' => rand(1, 50)],
$edit[] = [
'aws_cloud_test_mode' => !$config->get('aws_cloud_test_mode'),
'aws_cloud_view_refresh_interval' => random_int(1, 9999),
'aws_cloud_view_expose_items_per_page' => !$config->get('aws_cloud_view_expose_items_per_page'),
'aws_cloud_view_items_per_page' => $items_per_page[array_rand($items_per_page)],
'aws_cloud_instance_terminate' => !$config->get('aws_cloud_instance_terminate'),
'aws_cloud_scheduler_tag' => $this->random->name(10, TRUE),
'aws_cloud_scheduler_periods' => $this->random->name(10, TRUE),
'aws_cloud_instance_type_prices' => !$config->get('aws_cloud_instance_type_prices'),
'aws_cloud_instance_type_prices_spreadsheet' => !$config->get('aws_cloud_instance_type_prices_spreadsheet'),
'aws_cloud_instance_type_cost' => !$config->get('aws_cloud_instance_type_cost'),
'aws_cloud_instance_type_cost_list' => !$config->get('aws_cloud_instance_type_cost_list'),
'aws_cloud_instance_list_cost_column' => !$config->get('aws_cloud_instance_list_cost_column'),
'aws_cloud_ec2_pricing_endpoint' => $this->random->name(10, TRUE),
'aws_cloud_service_provider' => $cloud_service_providers[array_rand($cloud_service_providers)],
'aws_cloud_price_rate_ec2' => random_int(1, 100),
'aws_cloud_monitor_refresh_interval' => random_int(1, 9999),
'aws_cloud_update_resources_queue_cron_time' => random_int(1, 9999),
'aws_cloud_queue_limit' => random_int(1, 50),
];
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment