This is an automated email from the ASF dual-hosted git repository.

DaanHoogland pushed a commit to branch ghi10752-configCleanup
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit e6b7ed933334318fc0e70e1b406152085d21c2b5
Author: Daan Hoogland <[email protected]>
AuthorDate: Sat Aug 15 13:08:26 2026 +0200

    move non-MS hidden configuration items from deprecated Config enum to 
services
---
 .../main/java/com/cloud/network/NetworkModel.java  |  3 ++
 .../java/com/cloud/network/NetworkService.java     | 20 +++++++++++
 .../java/com/cloud/template/TemplateManager.java   |  3 ++
 .../networkservice/BaremetalPxeManagerImpl.java    |  2 +-
 .../main/java/com/cloud/configuration/Config.java  | 26 +-------------
 .../configuration/ConfigurationManagerImpl.java    | 10 +++---
 .../consoleproxy/ConsoleProxyManagerImpl.java      |  6 ++--
 .../java/com/cloud/network/NetworkModelImpl.java   |  4 +--
 .../java/com/cloud/network/NetworkServiceImpl.java | 10 +++---
 .../cloud/network/router/CommandSetupHelper.java   |  2 +-
 .../router/VirtualNetworkApplianceManager.java     |  3 ++
 .../router/VirtualNetworkApplianceManagerImpl.java |  5 +--
 .../com/cloud/server/ConfigurationServerImpl.java  | 41 +++++++++++++++++-----
 .../com/cloud/server/ManagementServerImpl.java     |  2 +-
 .../com/cloud/storage/VolumeApiServiceImpl.java    |  2 +-
 .../secondary/SecondaryStorageVmManager.java       |  3 ++
 .../com/cloud/template/TemplateManagerImpl.java    |  5 +--
 .../element/ConfigDriveNetworkElementTest.java     |  2 --
 .../SecondaryStorageManagerImpl.java               |  6 ++--
 19 files changed, 93 insertions(+), 62 deletions(-)

diff --git a/api/src/main/java/com/cloud/network/NetworkModel.java 
b/api/src/main/java/com/cloud/network/NetworkModel.java
index e5cf60af1d9..f7a7748c99d 100644
--- a/api/src/main/java/com/cloud/network/NetworkModel.java
+++ b/api/src/main/java/com/cloud/network/NetworkModel.java
@@ -100,6 +100,9 @@ public interface NetworkModel {
     ConfigKey<Boolean> SecurityGroupDefaultAdding = new ConfigKey<>("Network", 
Boolean.class, "network.securitygroups.defaultadding", "true",
             "If true, the user VM would be added to the default security group 
by default", true);
 
+    ConfigKey<String> CloudIdentifier = new ConfigKey<>("Hidden", 
String.class, "cloud.identifier", null,
+            "A unique identifier for the cloud.", true);
+
     /**
      * Lists IP addresses that belong to VirtualNetwork VLANs
      *
diff --git a/api/src/main/java/com/cloud/network/NetworkService.java 
b/api/src/main/java/com/cloud/network/NetworkService.java
index 6028aeed54c..94ccf8f2117 100644
--- a/api/src/main/java/com/cloud/network/NetworkService.java
+++ b/api/src/main/java/com/cloud/network/NetworkService.java
@@ -91,6 +91,26 @@ public interface NetworkService {
             "vm.network.nic.max.secondary.ipaddresses", "10",
             "Specify the number of secondary ip addresses per nic per vm. 
Default value 10 is used, if not specified.", true);
 
+    ConfigKey<String> XenServerPublicNetwork = new ConfigKey<>("Hidden", 
String.class,
+            "xenserver.public.network.device", null,
+            "[ONLY IF THE PUBLIC NETWORK IS ON A DEDICATED NIC]:The network 
name label of the physical device dedicated to the public network on a 
XenServer host", true);
+
+    ConfigKey<String> XenServerGuestNetwork = new ConfigKey<>("Hidden", 
String.class,
+            "xenserver.guest.network.device", null,
+            "Specify for guest network name label", true);
+
+    ConfigKey<String> XenServerStorageNetwork1 = new ConfigKey<>("Hidden", 
String.class,
+            "xenserver.storage.network.device1", null,
+            "Specify when there are storage networks", true);
+
+    ConfigKey<String> XenServerStorageNetwork2 = new ConfigKey<>("Hidden", 
String.class,
+            "xenserver.storage.network.device2", null,
+            "Specify when there are storage networks", true);
+
+    ConfigKey<String> XenServerPrivateNetwork = new ConfigKey<>("Hidden", 
String.class,
+            "xenserver.private.network.device", null,
+            "Specify when the private network name is different", true);
+
     List<? extends Network> getIsolatedNetworksOwnedByAccountInZone(long 
zoneId, Account owner);
 
     IpAddress allocateIP(Account ipOwner, long zoneId, Long networkId, Boolean 
displayIp, String ipaddress) throws ResourceAllocationException, 
InsufficientAddressCapacityException,
diff --git 
a/engine/components-api/src/main/java/com/cloud/template/TemplateManager.java 
b/engine/components-api/src/main/java/com/cloud/template/TemplateManager.java
index 0cadaac4c96..e89b97e6a3e 100644
--- 
a/engine/components-api/src/main/java/com/cloud/template/TemplateManager.java
+++ 
b/engine/components-api/src/main/java/com/cloud/template/TemplateManager.java
@@ -85,6 +85,9 @@ public interface TemplateManager {
             true,
             ConfigKey.Scope.Cluster);
 
+    ConfigKey<String> SSVMPSK = new ConfigKey<>("Hidden", String.class, 
"upload.post.secret.key", "",
+            "PSK with SSVM", true);
+
     ConfigKey<Integer> CreatePrivateTemplateFromSnapshotWait = new 
ConfigKey<>("Storage", Integer.class,
             "create.private.template.from.snapshot.wait", "10800",
             "In second, timeout for CreatePrivateTemplateFromSnapshotCommand", 
true);
diff --git 
a/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java
 
b/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java
index 3a2384a03c8..84195de9d45 100644
--- 
a/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java
+++ 
b/plugins/hypervisors/baremetal/src/main/java/com/cloud/baremetal/networkservice/BaremetalPxeManagerImpl.java
@@ -201,7 +201,7 @@ public class BaremetalPxeManagerImpl extends ManagerBase 
implements BaremetalPxe
         cmd.addVmData("metadata", "instance-id", String.valueOf(vm.getUuid()));
         cmd.addVmData("metadata", "vm-id", 
String.valueOf(vm.getInstanceName()));
         cmd.addVmData("metadata", "public-keys", null);
-        String cloudIdentifier = _configDao.getValue("cloud.identifier");
+        String cloudIdentifier = NetworkModel.CloudIdentifier.value();
         if (cloudIdentifier == null) {
             cloudIdentifier = "";
         } else {
diff --git a/server/src/main/java/com/cloud/configuration/Config.java 
b/server/src/main/java/com/cloud/configuration/Config.java
index 7f2a0522b7b..c4656e4f805 100644
--- a/server/src/main/java/com/cloud/configuration/Config.java
+++ b/server/src/main/java/com/cloud/configuration/Config.java
@@ -613,17 +613,6 @@ public enum Config {
 
 
     // XenServer
-    XenServerPublicNetwork(
-            "Hidden",
-            ManagementServer.class,
-            String.class,
-            "xenserver.public.network.device",
-            null,
-            "[ONLY IF THE PUBLIC NETWORK IS ON A DEDICATED NIC]:The network 
name label of the physical device dedicated to the public network on a 
XenServer host",
-            null),
-    XenServerStorageNetwork1("Hidden", ManagementServer.class, String.class, 
"xenserver.storage.network.device1", null, "Specify when there are storage 
networks", null),
-    XenServerStorageNetwork2("Hidden", ManagementServer.class, String.class, 
"xenserver.storage.network.device2", null, "Specify when there are storage 
networks", null),
-    XenServerPrivateNetwork("Hidden", ManagementServer.class, String.class, 
"xenserver.private.network.device", null, "Specify when the private network 
name is different", null),
     NetworkGuestCidrLimit(
             "Network",
             NetworkOrchestrationService.class,
@@ -650,7 +639,6 @@ public enum Config {
             "60",
             "heartbeat interval to use when checking before XenServer Self 
Fencing",
             null),
-    XenServerGuestNetwork("Hidden", ManagementServer.class, String.class, 
"xenserver.guest.network.device", null, "Specify for guest network name label", 
null),
     XenServerMaxNics("Advanced", AgentManager.class, Integer.class, 
"xenserver.nics.max", "7", "Maximum allowed nics for Vms created on XenServer", 
null),
     XenServerPVdriverVersion(
             "Advanced",
@@ -783,14 +771,6 @@ public enum Config {
             null),
 
     // Hidden
-    UseSecondaryStorageVm(
-            "Hidden",
-            ManagementServer.class,
-            Boolean.class,
-            "secondary.storage.vm",
-            "false",
-            "Deploys a VM per zone to manage secondary storage if true, 
otherwise secondary storage is mounted on management server",
-            null),
     CreatePoolsInPod(
             "Hidden",
             ManagementServer.class,
@@ -799,7 +779,6 @@ public enum Config {
             "false",
             "Should we automatically add XenServers into pools that are inside 
a Pod",
             null),
-    CloudIdentifier("Hidden", ManagementServer.class, String.class, 
"cloud.identifier", null, "A unique identifier for the cloud.", null),
     SSOAuthTolerance(
             "Advanced",
             ManagementServer.class,
@@ -809,7 +788,6 @@ public enum Config {
             "The allowable clock difference in milliseconds between when an 
SSO login request is made and when it is received.",
             null),
     //NetworkType("Hidden", ManagementServer.class, String.class, 
"network.type", "vlan", "The type of network that this deployment will use.", 
"vlan,direct"),
-    RouterRamSize("Hidden", NetworkOrchestrationService.class, Integer.class, 
"router.ram.size", "512", "Default RAM for router VM (in MB).", null),
 
     DefaultPageSize("Advanced", ManagementServer.class, Long.class, 
"default.page.size", "500", "Default page size for API list* commands", null),
 
@@ -1074,9 +1052,7 @@ public enum Config {
     PublishAsynJobEvent("Advanced", ManagementServer.class, Boolean.class, 
"publish.async.job.events", "true", "enable or disable publishing of usage 
events on the event bus", null),
 
     // StatsCollector
-    StatsOutPutGraphiteHost("Advanced", ManagementServer.class, String.class, 
"stats.output.uri", "", "URI to additionally send StatsCollector statistics 
to", null),
-
-    SSVMPSK("Hidden", ManagementServer.class, String.class, 
"upload.post.secret.key", "", "PSK with SSVM", null);
+    StatsOutPutGraphiteHost("Advanced", ManagementServer.class, String.class, 
"stats.output.uri", "", "URI to additionally send StatsCollector statistics 
to", null);
 
 
     private final String _category;
diff --git 
a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java 
b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
index e72834a3996..b013cb2df91 100644
--- a/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -927,7 +927,7 @@ public class ConfigurationManagerImpl extends ManagerBase 
implements Configurati
         _configDepot.invalidateConfigCache(name, ConfigKey.Scope.Global, null);
 
         PreparedStatement pstmt;
-        if (Config.XenServerGuestNetwork.key().equalsIgnoreCase(name)) {
+        if (NetworkService.XenServerGuestNetwork.key().equalsIgnoreCase(name)) 
{
             final String sql = "update host_details set value=? where name=?";
             try {
                 pstmt = txn.prepareAutoCloseStatement(sql);
@@ -938,7 +938,7 @@ public class ConfigurationManagerImpl extends ManagerBase 
implements Configurati
             } catch (final Throwable e) {
                 throw new CloudRuntimeException("Failed to update 
guest.network.device in host_details due to exception ", e);
             }
-        } else if 
(Config.XenServerPrivateNetwork.key().equalsIgnoreCase(name)) {
+        } else if 
(NetworkService.XenServerPrivateNetwork.key().equalsIgnoreCase(name)) {
             final String sql = "update host_details set value=? where name=?";
             try {
                 pstmt = txn.prepareAutoCloseStatement(sql);
@@ -949,7 +949,7 @@ public class ConfigurationManagerImpl extends ManagerBase 
implements Configurati
             } catch (final Throwable e) {
                 throw new CloudRuntimeException("Failed to update 
private.network.device in host_details due to exception ", e);
             }
-        } else if (Config.XenServerPublicNetwork.key().equalsIgnoreCase(name)) 
{
+        } else if 
(NetworkService.XenServerPublicNetwork.key().equalsIgnoreCase(name)) {
             final String sql = "update host_details set value=? where name=?";
             try {
                 pstmt = txn.prepareAutoCloseStatement(sql);
@@ -960,7 +960,7 @@ public class ConfigurationManagerImpl extends ManagerBase 
implements Configurati
             } catch (final Throwable e) {
                 throw new CloudRuntimeException("Failed to update 
public.network.device in host_details due to exception ", e);
             }
-        } else if 
(Config.XenServerStorageNetwork1.key().equalsIgnoreCase(name)) {
+        } else if 
(NetworkService.XenServerStorageNetwork1.key().equalsIgnoreCase(name)) {
             final String sql = "update host_details set value=? where name=?";
             try {
                 pstmt = txn.prepareAutoCloseStatement(sql);
@@ -971,7 +971,7 @@ public class ConfigurationManagerImpl extends ManagerBase 
implements Configurati
             } catch (final Throwable e) {
                 throw new CloudRuntimeException("Failed to update 
storage.network.device1 in host_details due to exception ", e);
             }
-        } else if (Config.XenServerStorageNetwork2.key().equals(name)) {
+        } else if (NetworkService.XenServerStorageNetwork2.key().equals(name)) 
{
             final String sql = "update host_details set value=? where name=?";
             try {
                 pstmt = txn.prepareAutoCloseStatement(sql);
diff --git 
a/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java 
b/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
index d07641eacc8..950244d1d46 100644
--- a/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
+++ b/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
@@ -114,6 +114,7 @@ import com.cloud.storage.Storage;
 import com.cloud.storage.StoragePoolStatus;
 import com.cloud.storage.VMTemplateVO;
 import com.cloud.storage.dao.VMTemplateDao;
+import com.cloud.storage.secondary.SecondaryStorageVmManager;
 import com.cloud.user.Account;
 import com.cloud.user.AccountManager;
 import com.cloud.utils.DateUtil;
@@ -1140,10 +1141,7 @@ public class ConsoleProxyManagerImpl extends ManagerBase 
implements ConsoleProxy
             consoleProxyPort = NumbersUtil.parseInt(value, 
ConsoleProxyManager.DEFAULT_PROXY_VNC_PORT);
         }
 
-        value = configs.get("secondary.storage.vm");
-        if (value != null && value.equalsIgnoreCase("true")) {
-            useStorageVm = true;
-        }
+        useStorageVm = SecondaryStorageVmManager.UseSecondaryStorageVm.value();
 
         instance = configs.get("instance.name");
         if (instance == null) {
diff --git a/server/src/main/java/com/cloud/network/NetworkModelImpl.java 
b/server/src/main/java/com/cloud/network/NetworkModelImpl.java
index f3c26739b03..95208bf04a0 100644
--- a/server/src/main/java/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/main/java/com/cloud/network/NetworkModelImpl.java
@@ -2941,7 +2941,7 @@ public class NetworkModelImpl extends ManagerBase 
implements NetworkModel, Confi
 
         vmData.add(new String[]{METATDATA_DIR, PUBLIC_KEYS_FILE, publicKey});
 
-        String cloudIdentifier = _configDao.getValue("cloud.identifier");
+        String cloudIdentifier = CloudIdentifier.value();
         if (cloudIdentifier == null) {
             cloudIdentifier = "";
         } else {
@@ -3009,7 +3009,7 @@ public class NetworkModelImpl extends ManagerBase 
implements NetworkModel, Confi
 
     @Override
     public ConfigKey<?>[] getConfigKeys() {
-        return new ConfigKey<?>[] {MACIdentifier, 
AdminIsAllowedToDeployAnywhere, SecurityGroupDefaultAdding};
+        return new ConfigKey<?>[] {MACIdentifier, 
AdminIsAllowedToDeployAnywhere, SecurityGroupDefaultAdding, CloudIdentifier};
     }
 
     @Override
diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java 
b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java
index a273c4079a9..496fc74edd1 100644
--- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java
@@ -5504,16 +5504,16 @@ public class NetworkServiceImpl extends ManagerBase 
implements NetworkService, C
         String xenLabel = null;
         switch (trafficType) {
         case Public:
-            xenLabel = 
_configDao.getValue(Config.XenServerPublicNetwork.key());
+            xenLabel = XenServerPublicNetwork.value();
             break;
         case Guest:
-            xenLabel = _configDao.getValue(Config.XenServerGuestNetwork.key());
+            xenLabel = XenServerGuestNetwork.value();
             break;
         case Storage:
-            xenLabel = 
_configDao.getValue(Config.XenServerStorageNetwork1.key());
+            xenLabel = XenServerStorageNetwork1.value();
             break;
         case Management:
-            xenLabel = 
_configDao.getValue(Config.XenServerPrivateNetwork.key());
+            xenLabel = XenServerPrivateNetwork.value();
             break;
         case Control:
             xenLabel = "cloud_link_local_network";
@@ -6313,7 +6313,7 @@ public class NetworkServiceImpl extends ManagerBase 
implements NetworkService, C
     @Override
     public ConfigKey<?>[] getConfigKeys() {
         return new ConfigKey<?>[] {AllowDuplicateNetworkName, 
AllowEmptyStartEndIpAddress, AllowUsersToMakeNetworksRedundant, 
VRPrivateInterfaceMtu, VRPublicInterfaceMtu, AllowUsersToSpecifyVRMtu,
-                GuestVlanBits, MaxNumberOfSecondaryIPsPerNIC};
+                GuestVlanBits, MaxNumberOfSecondaryIPsPerNIC, 
XenServerPublicNetwork, XenServerGuestNetwork, XenServerStorageNetwork1, 
XenServerStorageNetwork2, XenServerPrivateNetwork};
     }
 
     public boolean isDefaultAcl(Long aclId) {
diff --git 
a/server/src/main/java/com/cloud/network/router/CommandSetupHelper.java 
b/server/src/main/java/com/cloud/network/router/CommandSetupHelper.java
index e861cfc7bb5..f80243d8d2a 100644
--- a/server/src/main/java/com/cloud/network/router/CommandSetupHelper.java
+++ b/server/src/main/java/com/cloud/network/router/CommandSetupHelper.java
@@ -1338,7 +1338,7 @@ public class CommandSetupHelper {
         }
         cmd.addVmData("metadata", "public-keys", publicKey);
 
-        String cloudIdentifier = _configDao.getValue("cloud.identifier");
+        String cloudIdentifier = NetworkModel.CloudIdentifier.value();
         if (cloudIdentifier == null) {
             cloudIdentifier = "";
         } else {
diff --git 
a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManager.java
 
b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManager.java
index 7db9674d652..24f98e9324b 100644
--- 
a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManager.java
+++ 
b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManager.java
@@ -64,6 +64,9 @@ public interface VirtualNetworkApplianceManager extends 
Manager, VirtualNetworkA
     ConfigKey<String> RouterTemplateOvm3 = new ConfigKey<>(String.class, 
RouterTemplateOvm3CK, "Advanced", "SystemVM Template (Ovm3)",
             "Name of the default router template on Ovm3.", true, 
ConfigKey.Scope.Zone, null);
 
+    ConfigKey<Integer> RouterRamSize = new ConfigKey<>("Hidden", 
Integer.class, "router.ram.size", "512",
+            "Default RAM for router VM (in MB).", true);
+
     ConfigKey<String> VirtualRouterUserData = new ConfigKey<>(String.class, 
"virtual.router.userdata",
             ConfigKey.CATEGORY_ADVANCED, "",
             "UUID for user data of VR, VPC VR, internal LB, and elastic LB. 
This works only when systemvm.userdata.enabled is set to true",
diff --git 
a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
 
b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index 004d4ca73e1..08c0d095db8 100644
--- 
a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ 
b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -546,7 +546,7 @@ Configurable, StateListener<VirtualMachine.State, 
VirtualMachine.Event, VirtualM
 
         final Map<String, String> configs = 
_configDao.getConfiguration("AgentManager", params);
 
-        int routerRamSize = 
NumbersUtil.parseInt(configs.get("router.ram.size"), DEFAULT_ROUTER_VM_RAMSIZE);
+        int routerRamSize = RouterRamSize.value();
         int routerCpuMHz = NumbersUtil.parseInt(configs.get("router.cpu.mhz"), 
DEFAULT_ROUTER_CPU_MHZ);
 
         _routerExtraPublicNics = 
NumbersUtil.parseInt(_configDao.getValue(Config.RouterExtraPublicNics.key()), 
2);
@@ -3381,7 +3381,8 @@ Configurable, StateListener<VirtualMachine.State, 
VirtualMachine.Event, VirtualM
                 RemoveControlIpOnStop,
                 VirtualRouterUserData,
                 NetworkRouterRpFilter,
-                EnableServiceMonitoring
+                EnableServiceMonitoring,
+                RouterRamSize
         };
     }
 
diff --git a/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java 
b/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java
index 53677ee0ff1..7455e39be15 100644
--- a/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java
+++ b/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java
@@ -71,6 +71,7 @@ import com.cloud.network.Network.GuestType;
 import com.cloud.network.Network.Provider;
 import com.cloud.network.Network.Service;
 import com.cloud.network.Network.State;
+import com.cloud.network.NetworkModel;
 import com.cloud.network.Networks.BroadcastDomainType;
 import com.cloud.network.Networks.Mode;
 import com.cloud.network.Networks.TrafficType;
@@ -92,6 +93,8 @@ import com.cloud.service.dao.ServiceOfferingDao;
 import com.cloud.storage.DiskOfferingVO;
 import com.cloud.storage.Storage.ProvisioningType;
 import com.cloud.storage.dao.DiskOfferingDao;
+import com.cloud.storage.secondary.SecondaryStorageVmManager;
+import com.cloud.template.TemplateManager;
 import com.cloud.test.IPRangeConfig;
 import com.cloud.user.Account;
 import com.cloud.user.AccountManager;
@@ -217,7 +220,14 @@ public class ConfigurationServerImpl extends ManagerBase 
implements Configuratio
                 }
             }
 
-            _configDao.update(Config.UseSecondaryStorageVm.key(), 
Config.UseSecondaryStorageVm.getCategory(), "true");
+            ConfigurationVO useSecondaryStorageVmConfig = 
_configDao.findByName(SecondaryStorageVmManager.UseSecondaryStorageVm.key());
+            if (useSecondaryStorageVmConfig == null) {
+                ConfigurationVO configVO = new 
ConfigurationVO(SecondaryStorageVmManager.class.getSimpleName(), 
SecondaryStorageVmManager.UseSecondaryStorageVm);
+                configVO.setValue("true");
+                _configDao.persist(configVO);
+            } else {
+                
_configDao.update(SecondaryStorageVmManager.UseSecondaryStorageVm.key(), 
SecondaryStorageVmManager.UseSecondaryStorageVm.category(), "true");
+            }
             logger.debug("ConfigurationServer made secondary storage vm 
required.");
 
             _configDao.update(Config.SecStorageEncryptCopy.key(), 
Config.SecStorageEncryptCopy.getCategory(), "false");
@@ -533,10 +543,17 @@ public class ConfigurationServerImpl extends ManagerBase 
implements Configuratio
 
     protected void updateCloudIdentifier() {
         // Creates and saves a UUID as the cloud identifier
-        String currentCloudIdentifier = 
_configDao.getValue("cloud.identifier");
+        String currentCloudIdentifier = NetworkModel.CloudIdentifier.value();
         if (currentCloudIdentifier == null || 
currentCloudIdentifier.isEmpty()) {
             String uuid = UUID.randomUUID().toString();
-            _configDao.update(Config.CloudIdentifier.key(), 
Config.CloudIdentifier.getCategory(), uuid);
+            ConfigurationVO configInDB = 
_configDao.findByName(NetworkModel.CloudIdentifier.key());
+            if (configInDB == null) {
+                ConfigurationVO configVO = new 
ConfigurationVO(NetworkModel.class.getSimpleName(), 
NetworkModel.CloudIdentifier);
+                configVO.setValue(uuid);
+                _configDao.persist(configVO);
+            } else {
+                _configDao.update(NetworkModel.CloudIdentifier.key(), 
NetworkModel.CloudIdentifier.category(), uuid);
+            }
         }
     }
 
@@ -821,7 +838,15 @@ public class ConfigurationServerImpl extends ManagerBase 
implements Configuratio
 
     private void updateSSOKey() {
         try {
-            
_configDepot.createOrUpdateConfigObject(AccountManager.class.getSimpleName(), 
AccountManager.SSOKey, getPrivateKey());
+            String key = getPrivateKey();
+            ConfigurationVO configInDB = 
_configDao.findByName(AccountManager.SSOKey.key());
+            if (configInDB == null) {
+                ConfigurationVO configVO = new 
ConfigurationVO(AccountManager.class.getSimpleName(), AccountManager.SSOKey);
+                configVO.setValue(key);
+                _configDao.persist(configVO);
+            } else {
+                _configDao.update(AccountManager.SSOKey.key(), 
AccountManager.SSOKey.category(), key);
+            }
         } catch (NoSuchAlgorithmException ex) {
             logger.error("error generating sso key", ex);
         }
@@ -832,15 +857,15 @@ public class ConfigurationServerImpl extends ManagerBase 
implements Configuratio
      */
     private void updateSecondaryStorageVMSharedKey() {
         try {
-            ConfigurationVO configInDB = 
_configDao.findByName(Config.SSVMPSK.key());
+            ConfigurationVO configInDB = 
_configDao.findByName(TemplateManager.SSVMPSK.key());
             if(configInDB == null) {
-                ConfigurationVO configVO = new 
ConfigurationVO(Config.SSVMPSK.getCategory(), "DEFAULT", 
Config.SSVMPSK.getComponent(), Config.SSVMPSK.key(), getPrivateKey(),
-                        Config.SSVMPSK.getDescription());
+                ConfigurationVO configVO = new 
ConfigurationVO(TemplateManager.class.getSimpleName(), TemplateManager.SSVMPSK);
+                configVO.setValue(getPrivateKey());
                 logger.info("generating a new SSVM PSK. This goes to SSVM on 
Start");
                 _configDao.persist(configVO);
             } else if (StringUtils.isEmpty(configInDB.getValue())) {
                 logger.info("updating the SSVM PSK with new value. This goes 
to SSVM on Start");
-                _configDao.update(Config.SSVMPSK.key(), 
Config.SSVMPSK.getCategory(), getPrivateKey());
+                _configDao.update(TemplateManager.SSVMPSK.key(), 
TemplateManager.SSVMPSK.category(), getPrivateKey());
             }
         } catch (NoSuchAlgorithmException ex) {
             logger.error("error generating ssvm psk", ex);
diff --git a/server/src/main/java/com/cloud/server/ManagementServerImpl.java 
b/server/src/main/java/com/cloud/server/ManagementServerImpl.java
index f32857d7cf0..cda15f1818c 100644
--- a/server/src/main/java/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/main/java/com/cloud/server/ManagementServerImpl.java
@@ -4811,7 +4811,7 @@ public class ManagementServerImpl extends 
MutualExclusiveIdsManagerBase implemen
         // check permissions
         _accountMgr.checkAccess(caller, null, true, 
_accountMgr.getAccount(user.getAccountId()));
 
-        String cloudIdentifier = _configDao.getValue("cloud.identifier");
+        String cloudIdentifier = NetworkModel.CloudIdentifier.value();
         if (cloudIdentifier == null) {
             cloudIdentifier = "";
         }
diff --git a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java 
b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
index 665aa59d7bb..19fcdf52bfb 100644
--- a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
+++ b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
@@ -549,7 +549,7 @@ public class VolumeApiServiceImpl extends ManagerBase 
implements VolumeApiServic
                     String expires = 
currentDateTime.plusMinutes(timeout).toString();
                     response.setTimeout(expires);
 
-                    String key = _configDao.getValue(Config.SSVMPSK.key());
+                    String key = TemplateManager.SSVMPSK.value();
                     /*
                      * encoded metadata using the post upload config key
                      */
diff --git 
a/server/src/main/java/com/cloud/storage/secondary/SecondaryStorageVmManager.java
 
b/server/src/main/java/com/cloud/storage/secondary/SecondaryStorageVmManager.java
index 599e8c171c5..20ac9da9305 100644
--- 
a/server/src/main/java/com/cloud/storage/secondary/SecondaryStorageVmManager.java
+++ 
b/server/src/main/java/com/cloud/storage/secondary/SecondaryStorageVmManager.java
@@ -50,6 +50,9 @@ public interface SecondaryStorageVmManager extends Manager {
             true, ConfigKey.Scope.Zone, null, "User Data for SSVMs",
             null, ConfigKey.GROUP_SYSTEM_VMS, 
ConfigKey.SUBGROUP_SEC_STORAGE_VM);
 
+    ConfigKey<Boolean> UseSecondaryStorageVm = new ConfigKey<>("Hidden", 
Boolean.class, "secondary.storage.vm", "false",
+            "Deploys a VM per zone to manage secondary storage if true, 
otherwise secondary storage is mounted on management server", true);
+
 
     public static final int DEFAULT_SS_VM_RAMSIZE = 512;            // 512M
     public static final int DEFAULT_SS_VM_CPUMHZ = 500;             // 500 MHz
diff --git a/server/src/main/java/com/cloud/template/TemplateManagerImpl.java 
b/server/src/main/java/com/cloud/template/TemplateManagerImpl.java
index 21c6e674db1..85104e1591c 100755
--- a/server/src/main/java/com/cloud/template/TemplateManagerImpl.java
+++ b/server/src/main/java/com/cloud/template/TemplateManagerImpl.java
@@ -474,7 +474,7 @@ public class TemplateManagerImpl extends ManagerBase 
implements TemplateManager,
             String expires = currentDateTime.plusMinutes(timeout).toString();
             response.setTimeout(expires);
 
-            String key = _configDao.getValue(Config.SSVMPSK.key());
+            String key = SSVMPSK.value();
             /*
              * encoded metadata using the post upload config ssh key
              */
@@ -2754,7 +2754,8 @@ public class TemplateManagerImpl extends ManagerBase 
implements TemplateManager,
                 PublicTemplateSecStorageCopy,
                 PrivateTemplateSecStorageCopy,
                 VmIsoMaxCount,
-                CreatePrivateTemplateFromSnapshotWait};
+                CreatePrivateTemplateFromSnapshotWait,
+                SSVMPSK};
     }
 
     public List<TemplateAdapter> getTemplateAdapters() {
diff --git 
a/server/src/test/java/com/cloud/network/element/ConfigDriveNetworkElementTest.java
 
b/server/src/test/java/com/cloud/network/element/ConfigDriveNetworkElementTest.java
index 336f9990c12..d689ec7a62d 100644
--- 
a/server/src/test/java/com/cloud/network/element/ConfigDriveNetworkElementTest.java
+++ 
b/server/src/test/java/com/cloud/network/element/ConfigDriveNetworkElementTest.java
@@ -104,7 +104,6 @@ import static org.mockito.Mockito.when;
 @RunWith(MockitoJUnitRunner.class)
 public class ConfigDriveNetworkElementTest {
 
-    public static final String CLOUD_ID = "xx";
     public static final String PUBLIC_KEY = "publicKey";
     public static final String PASSWORD = "password";
     public static final long NETWORK_ID = 1L;
@@ -178,7 +177,6 @@ public class ConfigDriveNetworkElementTest {
         when(_serviceOfferingDao.findByIdIncludingRemoved(VMID, 
SOID)).thenReturn(serviceOfferingVO);
         when(_guestOSDao.findById(Mockito.anyLong())).thenReturn(guestOSVO);
         
when(_guestOSCategoryDao.findById(Mockito.anyLong())).thenReturn(guestOSCategoryVo);
-        when(_configDao.getValue("cloud.identifier")).thenReturn(CLOUD_ID);
         when(guestOSCategoryVo.getName()).thenReturn("Linux");
         when(dataCenterVO.getName()).thenReturn(ZONENAME);
         when(serviceOfferingVO.getDisplayText()).thenReturn(VMOFFERING);
diff --git 
a/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java
 
b/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java
index 9d4c7311159..367de4a2d59 100644
--- 
a/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java
+++ 
b/services/secondary-storage/controller/src/main/java/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java
@@ -337,7 +337,7 @@ public class SecondaryStorageManagerImpl extends 
ManagerBase implements Secondar
                 String nfsVersion = 
imageStoreDetailsUtil.getNfsVersion(ssStore.getId());
                 setupCmd.setNfsVersion(nfsVersion);
 
-                String postUploadKey = 
_configDao.getValue(Config.SSVMPSK.key());
+                String postUploadKey = TemplateManager.SSVMPSK.value();
                 setupCmd.setPostUploadKey(postUploadKey);
 
                 Answer answer = _agentMgr.easySend(ssHostId, setupCmd);
@@ -918,7 +918,7 @@ public class SecondaryStorageManagerImpl extends 
ManagerBase implements Secondar
         Map<String, String> configs = 
_configDao.getConfiguration("management-server", params);
 
         _secStorageVmMtuSize = 
NumbersUtil.parseInt(configs.get("secstorage.vm.mtu.size"), 
DEFAULT_SS_VM_MTUSIZE);
-        boolean _useServiceVM = 
BooleanUtils.toBoolean(_configDao.getValue("secondary.storage.vm"));
+        boolean _useServiceVM = UseSecondaryStorageVm.value();
         _useSSlCopy = 
BooleanUtils.toBoolean(_configDao.getValue("secstorage.encrypt.copy"));
 
         String ssvmUrlDomain = 
_configDao.getValue("secstorage.ssl.cert.domain");
@@ -1550,7 +1550,7 @@ public class SecondaryStorageManagerImpl extends 
ManagerBase implements Secondar
     @Override
     public ConfigKey<?>[] getConfigKeys() {
         return new ConfigKey<?>[] {NTPServerConfig, 
MaxNumberOfSsvmsForMigration, SecondaryStorageCapacityScanInterval,
-                                   SecondaryStorageVmUserData};
+                                   SecondaryStorageVmUserData, 
UseSecondaryStorageVm};
     }
 
 }

Reply via email to