Skip to content

Commit 376c04a

Browse files
committed
Define groups & subgroups for ConfigKey
1 parent 1730353 commit 376c04a

File tree

5 files changed

+74
-24
lines changed

5 files changed

+74
-24
lines changed

engine/schema/src/main/resources/META-INF/db/schema-42100to42200.sql

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,3 @@
2121

2222
-- Increase length of scripts_version column to 128 due to md5sum to sha512sum change
2323
CALL `cloud`.`IDEMPOTENT_CHANGE_COLUMN`('cloud.domain_router', 'scripts_version', 'scripts_version', 'VARCHAR(128)');
24-
25-
UPDATE `cloud`.`configuration`
26-
SET subgroup_id = (SELECT id FROM `cloud`.`configuration_subgroup` WHERE name = 'ConsoleProxyVM'),
27-
group_id = (SELECT id FROM `cloud`.`configuration_group` WHERE name = 'System VMs')
28-
WHERE name = 'consoleproxy.userdata';
29-
30-
UPDATE `cloud`.`configuration`
31-
SET subgroup_id = (SELECT id FROM `cloud`.`configuration_subgroup` WHERE name = 'SecStorageVM'),
32-
group_id = (SELECT id FROM `cloud`.`configuration_group` WHERE name = 'System VMs')
33-
WHERE name = 'secstorage.userdata';
34-
35-
UPDATE `cloud`.`configuration`
36-
SET subgroup_id = (SELECT id FROM `cloud`.`configuration_subgroup` WHERE name = 'VirtualRouter'),
37-
group_id = (SELECT id FROM `cloud`.`configuration_group` WHERE name = 'System VMs')
38-
WHERE name = 'router.userdata';

framework/config/src/main/java/org/apache/cloudstack/framework/config/ConfigKey.java

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,66 @@ public class ConfigKey<T> {
4141
public static final String CATEGORY_ADVANCED = "Advanced";
4242
public static final String CATEGORY_ALERT = "Alert";
4343
public static final String CATEGORY_NETWORK = "Network";
44-
public static final String CATEGORY_SYSTEM = "System";
4544
public static final String CATEGORY_SECURE = "Secure";
45+
public static final String CATEGORY_SYSTEM = "System";
46+
47+
// Configuration Groups to be used to define group for a config key
48+
// Group name, description, precedence
49+
public static final Ternary<String, String, Long> GROUP_MISCELLANEOUS = new Ternary<>("Miscellaneous", "Miscellaneous configuration", 999L);
50+
public static final Ternary<String, String, Long> GROUP_ACCESS = new Ternary<>("Access", "Identity and Access management configuration", 1L);
51+
public static final Ternary<String, String, Long> GROUP_COMPUTE = new Ternary<>("Compute", "Compute configuration", 2L);
52+
public static final Ternary<String, String, Long> GROUP_STORAGE = new Ternary<>("Storage", "Storage configuration", 3L);
53+
public static final Ternary<String, String, Long> GROUP_NETWORK = new Ternary<>("Network", "Network configuration", 4L);
54+
public static final Ternary<String, String, Long> GROUP_HYPERVISOR = new Ternary<>("Hypervisor", "Hypervisor specific configuration", 5L);
55+
public static final Ternary<String, String, Long> GROUP_MANAGEMENT_SERVER = new Ternary<>("Management Server", "Management Server configuration", 6L);
56+
public static final Ternary<String, String, Long> GROUP_SYSTEM_VMS = new Ternary<>("System VMs", "System VMs related configuration", 7L);
57+
public static final Ternary<String, String, Long> GROUP_INFRASTRUCTURE = new Ternary<>("Infrastructure", "Infrastructure configuration", 8L);
58+
public static final Ternary<String, String, Long> GROUP_USAGE_SERVER = new Ternary<>("Usage Server", "Usage Server related configuration", 9L);
59+
60+
// Configuration Subgroups to be used to define subgroup for a config key
61+
// Subgroup name, description, precedence
62+
public static final Pair<String, Long> SUBGROUP_OTHERS = new Pair<>("Others", 999L);
63+
public static final Pair<String, Long> SUBGROUP_ACCOUNT = new Pair<>("Account", 1L);
64+
public static final Pair<String, Long> SUBGROUP_DOMAIN = new Pair<>("Domain", 2L);
65+
public static final Pair<String, Long> SUBGROUP_PROJECT = new Pair<>("Project", 3L);
66+
public static final Pair<String, Long> SUBGROUP_LDAP = new Pair<>("LDAP", 4L);
67+
public static final Pair<String, Long> SUBGROUP_SAML = new Pair<>("SAML", 5L);
68+
public static final Pair<String, Long> SUBGROUP_VIRTUAL_MACHINE = new Pair<>("Virtual Machine", 1L);
69+
public static final Pair<String, Long> SUBGROUP_KUBERNETES = new Pair<>("Kubernetes", 2L);
70+
public static final Pair<String, Long> SUBGROUP_HIGH_AVAILABILITY = new Pair<>("High Availability", 3L);
71+
public static final Pair<String, Long> SUBGROUP_IMAGES = new Pair<>("Images", 1L);
72+
public static final Pair<String, Long> SUBGROUP_VOLUME = new Pair<>("Volume", 2L);
73+
public static final Pair<String, Long> SUBGROUP_SNAPSHOT = new Pair<>("Snapshot", 3L);
74+
public static final Pair<String, Long> SUBGROUP_VM_SNAPSHOT = new Pair<>("VM Snapshot", 4L);
75+
public static final Pair<String, Long> SUBGROUP_NETWORK = new Pair<>("Network", 1L);
76+
public static final Pair<String, Long> SUBGROUP_DHCP = new Pair<>("DHCP", 2L);
77+
public static final Pair<String, Long> SUBGROUP_VPC = new Pair<>("VPC", 3L);
78+
public static final Pair<String, Long> SUBGROUP_LOADBALANCER = new Pair<>("LoadBalancer", 4L);
79+
public static final Pair<String, Long> SUBGROUP_API = new Pair<>("API", 1L);
80+
public static final Pair<String, Long> SUBGROUP_ALERTS = new Pair<>("Alerts", 2L);
81+
public static final Pair<String, Long> SUBGROUP_EVENTS = new Pair<>("Events", 3L);
82+
public static final Pair<String, Long> SUBGROUP_SECURITY = new Pair<>("Security", 4L);
83+
public static final Pair<String, Long> SUBGROUP_USAGE = new Pair<>("Usage", 1L);
84+
public static final Pair<String, Long> SUBGROUP_LIMITS = new Pair<>("Limits", 6L);
85+
public static final Pair<String, Long> SUBGROUP_JOBS = new Pair<>("Jobs", 7L);
86+
public static final Pair<String, Long> SUBGROUP_AGENT = new Pair<>("Agent", 8L);
87+
public static final Pair<String, Long> SUBGROUP_HYPERVISOR = new Pair<>("Hypervisor", 1L);
88+
public static final Pair<String, Long> SUBGROUP_KVM = new Pair<>("KVM", 2L);
89+
public static final Pair<String, Long> SUBGROUP_VMWARE = new Pair<>("VMware", 3L);
90+
public static final Pair<String, Long> SUBGROUP_XENSERVER = new Pair<>("XenServer", 4L);
91+
public static final Pair<String, Long> SUBGROUP_OVM = new Pair<>("OVM", 5L);
92+
public static final Pair<String, Long> SUBGROUP_BAREMETAL = new Pair<>("Baremetal", 6L);
93+
public static final Pair<String, Long> SUBGROUP_CONSOLE_PROXY_VM = new Pair<>("ConsoleProxyVM", 1L);
94+
public static final Pair<String, Long> SUBGROUP_SEC_STORAGE_VM = new Pair<>("SecStorageVM", 2L);
95+
public static final Pair<String, Long> SUBGROUP_VIRTUAL_ROUTER = new Pair<>("VirtualRouter", 3L);
96+
public static final Pair<String, Long> SUBGROUP_DIAGNOSTICS = new Pair<>("Diagnostics", 4L);
97+
public static final Pair<String, Long> SUBGROUP_PRIMARY_STORAGE = new Pair<>("Primary Storage", 1L);
98+
public static final Pair<String, Long> SUBGROUP_SECONDARY_STORAGE = new Pair<>("Secondary Storage", 2L);
99+
public static final Pair<String, Long> SUBGROUP_BACKUP_AND_RECOVERY = new Pair<>("Backup & Recovery", 1L);
100+
public static final Pair<String, Long> SUBGROUP_CERTIFICATE_AUTHORITY = new Pair<>("Certificate Authority", 2L);
101+
public static final Pair<String, Long> SUBGROUP_QUOTA = new Pair<>("Quota", 3L);
102+
public static final Pair<String, Long> SUBGROUP_CLOUDIAN = new Pair<>("Cloudian", 4L);
103+
public static final Pair<String, Long> SUBGROUP_DRS = new Pair<>("DRS", 4L);
46104

47105
public enum Scope {
48106
Global(null, 1),

server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManager.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,11 @@ public interface ConsoleProxyManager extends Manager, ConsoleProxyService {
9393
ConfigKey<String> ConsoleProxyManagementLastState = new ConfigKey<String>(ConfigKey.CATEGORY_ADVANCED, String.class, "consoleproxy.management.state.last", com.cloud.consoleproxy.ConsoleProxyManagementState.Auto.toString(),
9494
"last console proxy service management state", false, ConfigKey.Kind.Select, consoleProxyManagementStates);
9595

96-
ConfigKey<String> ConsoleProxyUserData = new ConfigKey<>(String.class, "consoleproxy.userdata", ConfigKey.CATEGORY_SECURE, "",
97-
"Default user data for console proxy VMs. This works only when systemvm.userdata.enabled is set to true.",
98-
true, ConfigKey.Scope.Zone, null);
96+
ConfigKey<String> ConsoleProxyUserData = new ConfigKey<>(String.class, "consoleproxy.userdata",
97+
ConfigKey.CATEGORY_SECURE, "",
98+
"Default user data for console proxy VMs. This works only when systemvm.userdata.enabled is set to true",
99+
true, ConfigKey.Scope.Zone, null, "User Data for CPVMs",
100+
null, ConfigKey.GROUP_SYSTEM_VMS, ConfigKey.SUBGROUP_CONSOLE_PROXY_VM);
99101

100102
void setManagementState(ConsoleProxyManagementState state);
101103

server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManager.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,11 @@ public interface VirtualNetworkApplianceManager extends Manager, VirtualNetworkA
6464
ConfigKey<String> RouterTemplateOvm3 = new ConfigKey<>(String.class, RouterTemplateOvm3CK, "Advanced", "SystemVM Template (Ovm3)",
6565
"Name of the default router template on Ovm3.", true, ConfigKey.Scope.Zone, null);
6666

67-
ConfigKey<String> RouterUserData = new ConfigKey<>(String.class, "router.userdata", ConfigKey.CATEGORY_SECURE, "",
68-
"Default user data for virtual router. This works only when systemvm.userdata.enabled is set to true.",
69-
true, ConfigKey.Scope.Zone, null);
67+
ConfigKey<String> RouterUserData = new ConfigKey<>(String.class, "router.userdata",
68+
ConfigKey.CATEGORY_SECURE, "",
69+
"Default user data for virtual routers. This works only when systemvm.userdata.enabled is set to true",
70+
true, ConfigKey.Scope.Zone, null, "User Data for VRs",
71+
null, ConfigKey.GROUP_SYSTEM_VMS, ConfigKey.SUBGROUP_VIRTUAL_ROUTER);
7072

7173
ConfigKey<Boolean> SetServiceMonitor = new ConfigKey<>(Boolean.class, SetServiceMonitorCK, "Advanced", "true",
7274
"service monitoring in router enable/disable option, default true", true, ConfigKey.Scope.Zone, null);

server/src/main/java/com/cloud/storage/secondary/SecondaryStorageVmManager.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,11 @@ public interface SecondaryStorageVmManager extends Manager {
4444
"The time interval(in millisecond) to scan whether or not system needs more SSVM to ensure minimal standby capacity",
4545
false);
4646

47-
ConfigKey<String> SecondaryStorageUserData = new ConfigKey<>(String.class, "secstorage.userdata", ConfigKey.CATEGORY_SECURE, "",
48-
"Default user data for secondary storage VMs. This works only when systemvm.userdata.enabled is set to true.", true, ConfigKey.Scope.Zone, null);
47+
ConfigKey<String> SecondaryStorageUserData = new ConfigKey<>(String.class, "secstorage.userdata",
48+
ConfigKey.CATEGORY_SECURE, "",
49+
"Default user data for secondary storage VMs. This works only when systemvm.userdata.enabled is set to true",
50+
true, ConfigKey.Scope.Zone, null, "User Data for SSVMs",
51+
null, ConfigKey.GROUP_SYSTEM_VMS, ConfigKey.SUBGROUP_SEC_STORAGE_VM);
4952

5053

5154
public static final int DEFAULT_SS_VM_RAMSIZE = 512; // 512M

0 commit comments

Comments
 (0)