From 176523254e211abef4f0e77278be8af587d7d5ad Mon Sep 17 00:00:00 2001 From: Kelven Yang Date: Wed, 30 Jan 2013 15:20:32 -0800 Subject: [PATCH] Improve component lifecycle management with system run-level concept --- .../agent/dao/impl/PropertiesStorage.java | 30 +++ .../com/cloud/agent/dhcp/FakeDhcpSnooper.java | 30 +++ .../cloud/agent/resource/DummyResource.java | 30 +++ .../consoleproxy/ConsoleProxyResource.java | 2 +- .../cloud/bridge/service/EC2MainServlet.java | 1 - .../VirtualRoutingResource.java | 33 ++- .../resource/HypervDummyResourceBase.java | 32 +++ .../hyperv/resource/HypervResource.java | 30 +++ .../resource/TrafficSentinelResource.java | 30 +++ .../com/cloud/storage/JavaStorageLayer.java | 30 +++ .../CifsSecondaryStorageResource.java | 30 +++ .../LocalSecondaryStorageResource.java | 35 +++ .../resource/NfsSecondaryStorageResource.java | 30 +++ .../storage/template/DownloadManagerImpl.java | 3 +- .../cloud/storage/template/IsoProcessor.java | 20 +- .../storage/template/QCOW2Processor.java | 23 +- .../storage/template/RawImageProcessor.java | 20 +- .../storage/template/UploadManagerImpl.java | 20 +- .../cloud/storage/template/VhdProcessor.java | 19 +- .../cloud/storage/template/VmdkProcessor.java | 20 +- .../test/DirectAgentManagerSimpleImpl.java | 3 +- .../DataStoreProviderManagerImpl.java | 19 +- .../com/cloud/netapp/NetappManagerImpl.java | 22 +- .../allocator/impl/RandomAllocator.java | 26 +-- .../resource/LibvirtComputingResource.java | 30 +++ .../cloud/ovm/hypervisor/OvmResourceBase.java | 30 +++ .../agent/manager/MockAgentManagerImpl.java | 3 +- .../agent/manager/MockStorageManagerImpl.java | 3 +- .../agent/manager/MockVmManagerImpl.java | 3 +- .../agent/manager/SimulatorManagerImpl.java | 3 +- .../com/cloud/resource/AgentResourceBase.java | 24 +++ .../vmware/src/com/cloud/ha/VmwareFencer.java | 28 +-- .../vmware/manager/VmwareManagerImpl.java | 11 +- .../vmware/resource/VmwareResource.java | 30 +++ .../xen/resource/CitrixResourceBase.java | 21 ++ .../xen/resource/XcpOssResource.java | 2 +- .../network/element/DnsNotifier.java | 25 +-- .../lb/ElasticLoadBalancerManagerImpl.java | 22 +- .../network/resource/F5BigIpResource.java | 30 +++ .../network/resource/JuniperSrxResource.java | 32 ++- .../network/resource/NetscalerResource.java | 30 +++ .../network/resource/NiciraNvpResource.java | 30 +++ .../network/ovs/OvsTunnelManagerImpl.java | 20 +- .../cloud/agent/manager/AgentManagerImpl.java | 12 +- .../allocator/impl/TestingAllocator.java | 22 +- .../authn/impl/BasicAgentAuthManager.java | 19 +- .../src/com/cloud/alert/AlertManagerImpl.java | 11 +- .../com/cloud/alert/ClusterAlertAdapter.java | 19 +- .../cloud/alert/ConsoleProxyAlertAdapter.java | 20 +- .../alert/SecondaryStorageVmAlertAdapter.java | 19 +- server/src/com/cloud/api/ApiServlet.java | 16 +- .../com/cloud/api/query/QueryManagerImpl.java | 26 +-- .../async/AsyncJobExecutorContextImpl.java | 28 +-- .../com/cloud/async/AsyncJobManagerImpl.java | 12 +- .../com/cloud/async/SyncQueueManagerImpl.java | 26 +-- .../baremetal/BareMetalPxeServiceBase.java | 26 +-- .../baremetal/BareMetalResourceBase.java | 30 +++ .../baremetal/BareMetalVmManagerImpl.java | 2 +- .../baremetal/ExternalDhcpManagerImpl.java | 9 +- .../baremetal/ExternalDhcpResourceBase.java | 30 +++ .../cloud/baremetal/PxeServerManagerImpl.java | 10 +- .../baremetal/PxeServerResourceBase.java | 30 +++ .../cloud/capacity/CapacityManagerImpl.java | 10 +- .../cluster/ClusterFenceManagerImpl.java | 22 +- .../com/cloud/cluster/ClusterManagerImpl.java | 14 +- .../cluster/ClusterServiceServletAdapter.java | 11 +- .../cluster/DummyClusterManagerImpl.java | 9 +- .../cloud/cluster/ManagementServerNode.java | 24 ++- .../ClusterBasedAgentLoadBalancerPlanner.java | 25 +-- .../ConfigurationManagerImpl.java | 11 +- .../dao/ConfigurationDaoImpl.java | 2 + .../AgentBasedConsoleProxyManager.java | 16 +- .../consoleproxy/ConsoleProxyManagerImpl.java | 11 +- .../src/com/cloud/dao/EntityManagerImpl.java | 3 +- .../cloud/ha/HighAvailabilityManagerImpl.java | 11 +- .../CloudZonesStartupProcessor.java | 21 +- .../hypervisor/HypervisorGuruManagerImpl.java | 26 +-- .../kvm/discoverer/KvmDummyResourceBase.java | 30 +++ .../cloud/keystore/KeystoreManagerImpl.java | 26 +-- .../com/cloud/maint/UpgradeManagerImpl.java | 20 +- .../ExternalLoadBalancerUsageManagerImpl.java | 9 +- .../ExternalNetworkDeviceManagerImpl.java | 25 +-- .../com/cloud/network/NetworkManagerImpl.java | 11 +- .../com/cloud/network/NetworkModelImpl.java | 11 +- .../com/cloud/network/NetworkServiceImpl.java | 10 +- .../network/NetworkUsageManagerImpl.java | 11 +- .../network/StorageNetworkManagerImpl.java | 28 +-- .../network/as/AutoScaleManagerImpl.java | 25 +-- .../network/firewall/FirewallManagerImpl.java | 19 +- .../lb/LoadBalancingRulesManagerImpl.java | 26 +-- .../VirtualNetworkApplianceManagerImpl.java | 10 +- .../cloud/network/rules/RulesManagerImpl.java | 25 +-- .../security/SecurityGroupManagerImpl.java | 3 +- .../network/vpc/NetworkACLManagerImpl.java | 27 +-- .../com/cloud/network/vpc/VpcManagerImpl.java | 11 +- .../vpn/RemoteAccessVpnManagerImpl.java | 21 +- .../network/vpn/Site2SiteVpnManagerImpl.java | 20 +- .../cloud/projects/ProjectManagerImpl.java | 12 +- .../cloud/resource/DummyHostDiscoverer.java | 25 +-- .../resource/DummyHostServerResource.java | 30 +++ .../cloud/resource/ResourceManagerImpl.java | 23 +- .../ResourceLimitManagerImpl.java | 10 +- .../cloud/server/ConfigurationServerImpl.java | 20 +- .../com/cloud/server/ManagementServer.java | 2 - .../cloud/server/ManagementServerExtImpl.java | 19 +- .../cloud/server/ManagementServerImpl.java | 160 ++------------ .../cloud/servlet/CloudStartupServlet.java | 44 +--- .../com/cloud/storage/OCFS2ManagerImpl.java | 10 +- .../com/cloud/storage/StorageManagerImpl.java | 9 +- .../storage/download/DownloadMonitorImpl.java | 10 +- .../DummySecondaryStorageResource.java | 30 +++ .../com/cloud/storage/s3/S3ManagerImpl.java | 13 +- .../SecondaryStorageManagerImpl.java | 10 +- .../SecondaryStorageVmDefaultAllocator.java | 31 +-- .../storage/snapshot/SnapshotManagerImpl.java | 12 +- .../snapshot/SnapshotSchedulerImpl.java | 10 +- .../cloud/storage/swift/SwiftManagerImpl.java | 11 +- .../storage/upload/UploadMonitorImpl.java | 9 +- .../cloud/tags/TaggedResourceManagerImpl.java | 11 +- .../cloud/template/TemplateAdapterBase.java | 24 +-- .../cloud/template/TemplateManagerImpl.java | 10 +- .../upgrade/DatabaseIntegrityChecker.java | 17 +- .../com/cloud/user/AccountManagerImpl.java | 11 +- .../src/com/cloud/user/DomainManagerImpl.java | 26 +-- .../uuididentity/IdentityServiceImpl.java | 28 +-- .../src/com/cloud/vm/UserVmManagerImpl.java | 3 +- .../cloud/vm/VirtualMachineManagerImpl.java | 11 +- .../com/cloud/agent/MockAgentManagerImpl.java | 3 +- .../com/cloud/alert/MockAlertManagerImpl.java | 4 +- .../network/MockFirewallManagerImpl.java | 5 +- .../cloud/network/MockNetworkManagerImpl.java | 3 +- .../cloud/network/MockNetworkModelImpl.java | 3 +- .../cloud/network/MockRulesManagerImpl.java | 3 +- .../MockRemoteAccessVPNServiceProvider.java | 3 +- .../projects/MockProjectManagerImpl.java | 3 +- .../resource/MockResourceManagerImpl.java | 3 +- .../cloud/user/MockAccountManagerImpl.java | 3 +- .../com/cloud/user/MockDomainManagerImpl.java | 3 +- .../com/cloud/vm/MockUserVmManagerImpl.java | 3 +- .../vm/MockVirtualMachineManagerImpl.java | 3 +- .../vpc/MockConfigurationManagerImpl.java | 3 +- .../com/cloud/vpc/MockNetworkManagerImpl.java | 3 +- .../com/cloud/vpc/MockNetworkModelImpl.java | 3 +- .../vpc/MockResourceLimitManagerImpl.java | 3 +- .../vpc/MockSite2SiteVpnManagerImpl.java | 3 +- .../vpc/MockSite2SiteVpnServiceProvider.java | 3 +- .../com/cloud/vpc/MockVpcManagerImpl.java | 3 +- ...MockVpcVirtualNetworkApplianceManager.java | 5 +- .../cloud/usage/UsageAlertManagerImpl.java | 21 +- .../src/com/cloud/usage/UsageManagerImpl.java | 10 +- .../backoff/impl/ConstantTimeBackoff.java | 10 +- .../com/cloud/utils/component/Adapter.java | 40 +--- .../cloud/utils/component/AdapterBase.java | 39 +--- .../utils/component/ComponentContext.java | 204 ++++++++---------- .../utils/component/ComponentLifecycle.java | 58 +++++ .../component/ComponentLifecycleBase.java | 80 +++++++ .../com/cloud/utils/component/Manager.java | 38 +--- .../cloud/utils/component/ManagerBase.java | 24 +++ .../crypt/EncryptionSecretKeyChecker.java | 19 +- .../com/cloud/utils/db/GenericDaoBase.java | 23 +- 160 files changed, 1389 insertions(+), 1752 deletions(-) create mode 100644 utils/src/com/cloud/utils/component/ComponentLifecycle.java create mode 100644 utils/src/com/cloud/utils/component/ComponentLifecycleBase.java create mode 100644 utils/src/com/cloud/utils/component/ManagerBase.java diff --git a/agent/src/com/cloud/agent/dao/impl/PropertiesStorage.java b/agent/src/com/cloud/agent/dao/impl/PropertiesStorage.java index b94ae83fdc2..2bf26f48642 100755 --- a/agent/src/com/cloud/agent/dao/impl/PropertiesStorage.java +++ b/agent/src/com/cloud/agent/dao/impl/PropertiesStorage.java @@ -127,4 +127,34 @@ public class PropertiesStorage implements StorageComponent { return true; } + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } + } diff --git a/agent/src/com/cloud/agent/dhcp/FakeDhcpSnooper.java b/agent/src/com/cloud/agent/dhcp/FakeDhcpSnooper.java index 11ea824902b..73a994e8bd9 100644 --- a/agent/src/com/cloud/agent/dhcp/FakeDhcpSnooper.java +++ b/agent/src/com/cloud/agent/dhcp/FakeDhcpSnooper.java @@ -139,4 +139,34 @@ public class FakeDhcpSnooper implements DhcpSnooper { return null; } + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } + } diff --git a/agent/src/com/cloud/agent/resource/DummyResource.java b/agent/src/com/cloud/agent/resource/DummyResource.java index 573f639b06d..37a8b3d67e7 100755 --- a/agent/src/com/cloud/agent/resource/DummyResource.java +++ b/agent/src/com/cloud/agent/resource/DummyResource.java @@ -224,4 +224,34 @@ public class DummyResource implements ServerResource { public void setAgentControl(IAgentControl agentControl) { _agentControl = agentControl; } + + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } } diff --git a/agent/src/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java b/agent/src/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java index 48f507900d6..8a3a271c4f4 100644 --- a/agent/src/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java +++ b/agent/src/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java @@ -77,7 +77,7 @@ import com.google.gson.Gson; * server. * */ -public class ConsoleProxyResource extends ServerResourceBase implements +public abstract class ConsoleProxyResource extends ServerResourceBase implements ServerResource { static final Logger s_logger = Logger.getLogger(ConsoleProxyResource.class); diff --git a/awsapi/src/com/cloud/bridge/service/EC2MainServlet.java b/awsapi/src/com/cloud/bridge/service/EC2MainServlet.java index a1932918d7f..e0640091a6a 100644 --- a/awsapi/src/com/cloud/bridge/service/EC2MainServlet.java +++ b/awsapi/src/com/cloud/bridge/service/EC2MainServlet.java @@ -21,7 +21,6 @@ import java.io.IOException; import java.io.OutputStreamWriter; import java.util.UUID; -import javax.annotation.PostConstruct; import javax.inject.Inject; import javax.servlet.RequestDispatcher; import javax.servlet.ServletConfig; diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java b/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java index 18a0426e2fa..6afaaea5e20 100755 --- a/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java @@ -76,6 +76,7 @@ import com.cloud.exception.InternalErrorException; import com.cloud.network.HAProxyConfigurator; import com.cloud.network.LoadBalancerConfigurator; import com.cloud.utils.NumbersUtil; +import com.cloud.utils.component.ComponentLifecycle; import com.cloud.utils.component.Manager; import com.cloud.utils.net.NetUtils; import com.cloud.utils.script.OutputInterpreter; @@ -1152,7 +1153,11 @@ public class VirtualRoutingResource implements Manager { public String getName() { return _name; } - + + @Override + public void setName(String name) { + _name = name; + } @Override @@ -1160,14 +1165,36 @@ public class VirtualRoutingResource implements Manager { return true; } - - @Override public boolean stop() { return true; } + @Override + public int getRunLevel() { + return ComponentLifecycle.RUN_LEVEL_COMPONENT; + } + + public void setRunLevel() { + } + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } } diff --git a/core/src/com/cloud/hypervisor/hyperv/resource/HypervDummyResourceBase.java b/core/src/com/cloud/hypervisor/hyperv/resource/HypervDummyResourceBase.java index 6e52924db28..a66577a8a99 100644 --- a/core/src/com/cloud/hypervisor/hyperv/resource/HypervDummyResourceBase.java +++ b/core/src/com/cloud/hypervisor/hyperv/resource/HypervDummyResourceBase.java @@ -16,6 +16,8 @@ // under the License. package com.cloud.hypervisor.hyperv.resource; +import java.util.Map; + import com.cloud.agent.api.Answer; import com.cloud.agent.api.Command; import com.cloud.agent.api.PingCommand; @@ -61,4 +63,34 @@ public class HypervDummyResourceBase extends ServerResourceBase implements return null; } + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } + } diff --git a/core/src/com/cloud/hypervisor/hyperv/resource/HypervResource.java b/core/src/com/cloud/hypervisor/hyperv/resource/HypervResource.java index ede6301d9c3..0f9b3dd9c6b 100755 --- a/core/src/com/cloud/hypervisor/hyperv/resource/HypervResource.java +++ b/core/src/com/cloud/hypervisor/hyperv/resource/HypervResource.java @@ -945,4 +945,34 @@ public class HypervResource extends ServerResourceBase implements ServerResource // TODO Auto-generated method stub return null; } + + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } } diff --git a/core/src/com/cloud/network/resource/TrafficSentinelResource.java b/core/src/com/cloud/network/resource/TrafficSentinelResource.java index 22deccffdd5..7edb67bf068 100644 --- a/core/src/com/cloud/network/resource/TrafficSentinelResource.java +++ b/core/src/com/cloud/network/resource/TrafficSentinelResource.java @@ -313,4 +313,34 @@ public class TrafficSentinelResource implements ServerResource { DateFormat dfDate = new SimpleDateFormat("yyyyMMdd HH:mm:ss"); return dfDate.format(date); } + + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } } \ No newline at end of file diff --git a/core/src/com/cloud/storage/JavaStorageLayer.java b/core/src/com/cloud/storage/JavaStorageLayer.java index c4aa74a25ce..525d42997e1 100644 --- a/core/src/com/cloud/storage/JavaStorageLayer.java +++ b/core/src/com/cloud/storage/JavaStorageLayer.java @@ -250,6 +250,36 @@ public class JavaStorageLayer implements StorageLayer { File file = new File(path); return file.getTotalSpace() - file.getFreeSpace(); } + + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } diff --git a/core/src/com/cloud/storage/resource/CifsSecondaryStorageResource.java b/core/src/com/cloud/storage/resource/CifsSecondaryStorageResource.java index 0df2a8466f2..285005a1c3a 100755 --- a/core/src/com/cloud/storage/resource/CifsSecondaryStorageResource.java +++ b/core/src/com/cloud/storage/resource/CifsSecondaryStorageResource.java @@ -722,4 +722,34 @@ public class CifsSecondaryStorageResource extends ServerResourceBase implements protected String getDefaultScriptsDir() { return "./scripts/storage/secondary"; } + + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } } diff --git a/core/src/com/cloud/storage/resource/LocalSecondaryStorageResource.java b/core/src/com/cloud/storage/resource/LocalSecondaryStorageResource.java index b86fe6c6c2d..c638c5d874e 100644 --- a/core/src/com/cloud/storage/resource/LocalSecondaryStorageResource.java +++ b/core/src/com/cloud/storage/resource/LocalSecondaryStorageResource.java @@ -208,4 +208,39 @@ public class LocalSecondaryStorageResource extends ServerResourceBase implements protected String getDefaultScriptsDir() { return "scripts/storage/secondary"; } + + + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } } diff --git a/core/src/com/cloud/storage/resource/NfsSecondaryStorageResource.java b/core/src/com/cloud/storage/resource/NfsSecondaryStorageResource.java index a6f8a93543f..974a2db6dff 100755 --- a/core/src/com/cloud/storage/resource/NfsSecondaryStorageResource.java +++ b/core/src/com/cloud/storage/resource/NfsSecondaryStorageResource.java @@ -1808,4 +1808,34 @@ SecondaryStorageResource { protected String getDefaultScriptsDir() { return "./scripts/storage/secondary"; } + + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } } diff --git a/core/src/com/cloud/storage/template/DownloadManagerImpl.java b/core/src/com/cloud/storage/template/DownloadManagerImpl.java index d5ed71e8459..22e78a081c1 100755 --- a/core/src/com/cloud/storage/template/DownloadManagerImpl.java +++ b/core/src/com/cloud/storage/template/DownloadManagerImpl.java @@ -59,12 +59,13 @@ import com.cloud.storage.template.Processor.FormatInfo; import com.cloud.storage.template.TemplateDownloader.DownloadCompleteCallback; import com.cloud.storage.template.TemplateDownloader.Status; import com.cloud.utils.NumbersUtil; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.script.OutputInterpreter; import com.cloud.utils.script.Script; @Local(value = DownloadManager.class) -public class DownloadManagerImpl implements DownloadManager { +public class DownloadManagerImpl extends ManagerBase implements DownloadManager { private String _name; StorageLayer _storage; Map _processors; diff --git a/core/src/com/cloud/storage/template/IsoProcessor.java b/core/src/com/cloud/storage/template/IsoProcessor.java index 112002a641d..c8cde65738d 100644 --- a/core/src/com/cloud/storage/template/IsoProcessor.java +++ b/core/src/com/cloud/storage/template/IsoProcessor.java @@ -26,12 +26,12 @@ import org.apache.log4j.Logger; import com.cloud.storage.StorageLayer; import com.cloud.storage.Storage.ImageFormat; +import com.cloud.utils.component.AdapterBase; @Local(value=Processor.class) -public class IsoProcessor implements Processor { +public class IsoProcessor extends AdapterBase implements Processor { private static final Logger s_logger = Logger.getLogger(IsoProcessor.class); - String _name; StorageLayer _storage; @Override @@ -59,26 +59,10 @@ public class IsoProcessor implements Processor { @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; _storage = (StorageLayer)params.get(StorageLayer.InstanceConfigKey); if (_storage == null) { throw new ConfigurationException("Unable to get storage implementation"); } return true; } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } } diff --git a/core/src/com/cloud/storage/template/QCOW2Processor.java b/core/src/com/cloud/storage/template/QCOW2Processor.java index 15af8490ea9..09dcfe2ea1c 100644 --- a/core/src/com/cloud/storage/template/QCOW2Processor.java +++ b/core/src/com/cloud/storage/template/QCOW2Processor.java @@ -29,11 +29,11 @@ import org.apache.log4j.Logger; import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.StorageLayer; import com.cloud.utils.NumbersUtil; +import com.cloud.utils.component.AdapterBase; @Local(value=Processor.class) -public class QCOW2Processor implements Processor { +public class QCOW2Processor extends AdapterBase implements Processor { private static final Logger s_logger = Logger.getLogger(QCOW2Processor.class); - String _name; StorageLayer _storage; @Override @@ -85,7 +85,6 @@ public class QCOW2Processor implements Processor { @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; _storage = (StorageLayer)params.get(StorageLayer.InstanceConfigKey); if (_storage == null) { throw new ConfigurationException("Unable to get storage implementation"); @@ -93,22 +92,4 @@ public class QCOW2Processor implements Processor { return true; } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - // TODO Auto-generated method stub - return true; - } - - @Override - public boolean stop() { - // TODO Auto-generated method stub - return true; - } - } diff --git a/core/src/com/cloud/storage/template/RawImageProcessor.java b/core/src/com/cloud/storage/template/RawImageProcessor.java index 694c76a7074..7833eabcabf 100644 --- a/core/src/com/cloud/storage/template/RawImageProcessor.java +++ b/core/src/com/cloud/storage/template/RawImageProcessor.java @@ -28,17 +28,16 @@ import com.cloud.exception.InternalErrorException; import com.cloud.storage.StorageLayer; import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.template.Processor.FormatInfo; +import com.cloud.utils.component.AdapterBase; @Local(value=Processor.class) -public class RawImageProcessor implements Processor { +public class RawImageProcessor extends AdapterBase implements Processor { private static final Logger s_logger = Logger.getLogger(RawImageProcessor.class); - String _name; StorageLayer _storage; @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; _storage = (StorageLayer)params.get(StorageLayer.InstanceConfigKey); if (_storage == null) { throw new ConfigurationException("Unable to get storage implementation"); @@ -47,21 +46,6 @@ public class RawImageProcessor implements Processor { return true; } - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - @Override public FormatInfo process(String templatePath, ImageFormat format, String templateName) throws InternalErrorException { diff --git a/core/src/com/cloud/storage/template/UploadManagerImpl.java b/core/src/com/cloud/storage/template/UploadManagerImpl.java index 0de1c6ccf67..2492a1be2b2 100755 --- a/core/src/com/cloud/storage/template/UploadManagerImpl.java +++ b/core/src/com/cloud/storage/template/UploadManagerImpl.java @@ -47,10 +47,11 @@ import com.cloud.storage.resource.SecondaryStorageResource; import com.cloud.storage.template.TemplateUploader.Status; import com.cloud.storage.template.TemplateUploader.UploadCompleteCallback; import com.cloud.utils.NumbersUtil; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.script.Script; -public class UploadManagerImpl implements UploadManager { +public class UploadManagerImpl extends ManagerBase implements UploadManager { public class Completion implements UploadCompleteCallback { @@ -176,7 +177,6 @@ public class UploadManagerImpl implements UploadManager { private StorageLayer _storage; private int installTimeoutPerGig; private boolean _sslCopy; - private String _name; private boolean hvm; @@ -442,7 +442,6 @@ public class UploadManagerImpl implements UploadManager { @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; String value = null; @@ -525,21 +524,6 @@ public class UploadManagerImpl implements UploadManager { } - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - /** * Get notified of change of job status. Executed in context of uploader thread * diff --git a/core/src/com/cloud/storage/template/VhdProcessor.java b/core/src/com/cloud/storage/template/VhdProcessor.java index b65b1dc876d..cabc74b40a6 100644 --- a/core/src/com/cloud/storage/template/VhdProcessor.java +++ b/core/src/com/cloud/storage/template/VhdProcessor.java @@ -31,6 +31,7 @@ import com.cloud.exception.InternalErrorException; import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.StorageLayer; import com.cloud.utils.NumbersUtil; +import com.cloud.utils.component.AdapterBase; /** * VhdProcessor processes the downloaded template for VHD. It @@ -39,10 +40,9 @@ import com.cloud.utils.NumbersUtil; * */ @Local(value=Processor.class) -public class VhdProcessor implements Processor { +public class VhdProcessor extends AdapterBase implements Processor { private static final Logger s_logger = Logger.getLogger(VhdProcessor.class); - String _name; StorageLayer _storage; private int vhd_footer_size = 512; private int vhd_footer_creator_app_offset = 28; @@ -110,21 +110,6 @@ public class VhdProcessor implements Processor { return true; } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } private void imageSignatureCheck(byte[] creatorApp) throws InternalErrorException { boolean findKnownCreator = false; diff --git a/core/src/com/cloud/storage/template/VmdkProcessor.java b/core/src/com/cloud/storage/template/VmdkProcessor.java index ec7f014b4fd..e0740411b56 100644 --- a/core/src/com/cloud/storage/template/VmdkProcessor.java +++ b/core/src/com/cloud/storage/template/VmdkProcessor.java @@ -32,13 +32,13 @@ import org.apache.log4j.Logger; import com.cloud.exception.InternalErrorException; import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.StorageLayer; +import com.cloud.utils.component.AdapterBase; import com.cloud.utils.script.Script; @Local(value=Processor.class) -public class VmdkProcessor implements Processor { +public class VmdkProcessor extends AdapterBase implements Processor { private static final Logger s_logger = Logger.getLogger(VmdkProcessor.class); - String _name; StorageLayer _storage; @Override @@ -137,7 +137,6 @@ public class VmdkProcessor implements Processor { @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; _storage = (StorageLayer)params.get(StorageLayer.InstanceConfigKey); if (_storage == null) { throw new ConfigurationException("Unable to get storage implementation"); @@ -145,19 +144,4 @@ public class VmdkProcessor implements Processor { return true; } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } } diff --git a/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/DirectAgentManagerSimpleImpl.java b/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/DirectAgentManagerSimpleImpl.java index 6d09561fcca..81db645938c 100644 --- a/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/DirectAgentManagerSimpleImpl.java +++ b/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/DirectAgentManagerSimpleImpl.java @@ -45,8 +45,9 @@ import com.cloud.host.dao.HostDao; import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.hypervisor.xen.resource.XcpOssResource; import com.cloud.resource.ServerResource; +import com.cloud.utils.component.ManagerBase; -public class DirectAgentManagerSimpleImpl implements AgentManager { +public class DirectAgentManagerSimpleImpl extends ManagerBase implements AgentManager { private static final Logger logger = Logger.getLogger(DirectAgentManagerSimpleImpl.class); private Map hostResourcesMap = new HashMap(); @Inject diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java index 1ced37a35d1..3634b52908a 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java +++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java @@ -30,8 +30,10 @@ import org.apache.cloudstack.storage.datastore.db.DataStoreProviderDao; import org.apache.cloudstack.storage.datastore.db.DataStoreProviderVO; import org.springframework.stereotype.Component; +import com.cloud.utils.component.ManagerBase; + @Component -public class DataStoreProviderManagerImpl implements DataStoreProviderManager { +public class DataStoreProviderManagerImpl extends ManagerBase implements DataStoreProviderManager { @Inject List providers; @Inject @@ -90,21 +92,6 @@ public class DataStoreProviderManagerImpl implements DataStoreProviderManager { return true; } - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return "Data store provider manager"; - } - @Override public DataStoreProvider getDataStoreProviderById(long id) { DataStoreProviderVO provider = providerDao.findById(id); diff --git a/plugins/file-systems/netapp/src/com/cloud/netapp/NetappManagerImpl.java b/plugins/file-systems/netapp/src/com/cloud/netapp/NetappManagerImpl.java index 7fe22dd1c1b..90bb9b205fd 100644 --- a/plugins/file-systems/netapp/src/com/cloud/netapp/NetappManagerImpl.java +++ b/plugins/file-systems/netapp/src/com/cloud/netapp/NetappManagerImpl.java @@ -46,18 +46,17 @@ import com.cloud.exception.ResourceInUseException; import com.cloud.netapp.dao.LunDao; import com.cloud.netapp.dao.PoolDao; import com.cloud.netapp.dao.VolumeDao; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Transaction; import com.cloud.utils.exception.CloudRuntimeException; @Component @Local(value = { NetappManager.class }) -public class NetappManagerImpl implements NetappManager +public class NetappManagerImpl extends ManagerBase implements NetappManager { public enum Algorithm { roundrobin,leastfull } - protected String _name; - public static final Logger s_logger = Logger.getLogger(NetappManagerImpl.class.getName()); @Inject public VolumeDao _volumeDao; @Inject public PoolDao _poolDao; @@ -1017,26 +1016,9 @@ public class NetappManagerImpl implements NetappManager public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; _netappAllocator = new NetappDefaultAllocatorImpl( this ); return true; } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - } diff --git a/plugins/host-allocators/random/src/com/cloud/agent/manager/allocator/impl/RandomAllocator.java b/plugins/host-allocators/random/src/com/cloud/agent/manager/allocator/impl/RandomAllocator.java index c302cdd293f..a672efdc77e 100755 --- a/plugins/host-allocators/random/src/com/cloud/agent/manager/allocator/impl/RandomAllocator.java +++ b/plugins/host-allocators/random/src/com/cloud/agent/manager/allocator/impl/RandomAllocator.java @@ -36,14 +36,14 @@ import com.cloud.host.HostVO; import com.cloud.host.dao.HostDao; import com.cloud.offering.ServiceOffering; import com.cloud.resource.ResourceManager; +import com.cloud.utils.component.AdapterBase; import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachineProfile; @Component @Local(value=HostAllocator.class) -public class RandomAllocator implements HostAllocator { +public class RandomAllocator extends AdapterBase implements HostAllocator { private static final Logger s_logger = Logger.getLogger(RandomAllocator.class); - private String _name; @Inject private HostDao _hostDao; @Inject private ResourceManager _resourceMgr; @@ -116,26 +116,4 @@ public class RandomAllocator implements HostAllocator { // return true return true; } - - @Override - public boolean configure(String name, Map params) { - _name=name; - - return true; - } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } } diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index b6d8050bf0d..c93e37af5d6 100755 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -4624,4 +4624,34 @@ ServerResource { return new Answer(cmd, success, ""); } + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } + } diff --git a/plugins/hypervisors/ovm/src/com/cloud/ovm/hypervisor/OvmResourceBase.java b/plugins/hypervisors/ovm/src/com/cloud/ovm/hypervisor/OvmResourceBase.java index c5cb586e528..a626e31f458 100755 --- a/plugins/hypervisors/ovm/src/com/cloud/ovm/hypervisor/OvmResourceBase.java +++ b/plugins/hypervisors/ovm/src/com/cloud/ovm/hypervisor/OvmResourceBase.java @@ -1382,4 +1382,34 @@ public class OvmResourceBase implements ServerResource, HypervisorResource { } + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } + } diff --git a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java index 0a9f93f6497..2178651403e 100755 --- a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java @@ -56,6 +56,7 @@ import com.cloud.simulator.MockVMVO; import com.cloud.simulator.dao.MockHostDao; import com.cloud.simulator.dao.MockVMDao; import com.cloud.utils.Pair; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.Transaction; @@ -63,7 +64,7 @@ import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.net.NetUtils; @Local(value = { MockAgentManager.class }) -public class MockAgentManagerImpl implements MockAgentManager { +public class MockAgentManagerImpl extends ManagerBase implements MockAgentManager { private static final Logger s_logger = Logger.getLogger(MockAgentManagerImpl.class); @Inject HostPodDao _podDao = null; diff --git a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java index 3c371bc4363..f445bb32900 100644 --- a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java @@ -92,13 +92,14 @@ import com.cloud.storage.Storage.StoragePoolType; import com.cloud.storage.VMTemplateStorageResourceAssoc; import com.cloud.storage.VMTemplateStorageResourceAssoc.Status; import com.cloud.storage.template.TemplateInfo; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.Transaction; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.DiskProfile; import com.cloud.vm.VirtualMachine.State; @Local(value = { MockStorageManager.class }) -public class MockStorageManagerImpl implements MockStorageManager { +public class MockStorageManagerImpl extends ManagerBase implements MockStorageManager { private static final Logger s_logger = Logger.getLogger(MockStorageManagerImpl.class); @Inject MockStoragePoolDao _mockStoragePoolDao = null; diff --git a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java index 63c04be0c81..60e1a61a0bd 100644 --- a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java @@ -82,12 +82,13 @@ import com.cloud.simulator.dao.MockSecurityRulesDao; import com.cloud.simulator.dao.MockVMDao; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.Transaction; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.VirtualMachine.State; @Local(value = { MockVmManager.class }) -public class MockVmManagerImpl implements MockVmManager { +public class MockVmManagerImpl extends ManagerBase implements MockVmManager { private static final Logger s_logger = Logger.getLogger(MockVmManagerImpl.class); @Inject MockVMDao _mockVmDao = null; diff --git a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java index b0bc7036e27..41443572efd 100644 --- a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java @@ -89,6 +89,7 @@ import com.cloud.simulator.MockVMVO; import com.cloud.simulator.dao.MockConfigurationDao; import com.cloud.simulator.dao.MockHostDao; import com.cloud.utils.Pair; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.ConnectionConcierge; import com.cloud.utils.db.DB; import com.cloud.utils.db.Transaction; @@ -96,7 +97,7 @@ import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.VirtualMachine.State; @Local(value = { SimulatorManager.class }) -public class SimulatorManagerImpl implements SimulatorManager { +public class SimulatorManagerImpl extends ManagerBase implements SimulatorManager { private static final Logger s_logger = Logger.getLogger(SimulatorManagerImpl.class); @Inject MockVmManager _mockVmMgr = null; diff --git a/plugins/hypervisors/simulator/src/com/cloud/resource/AgentResourceBase.java b/plugins/hypervisors/simulator/src/com/cloud/resource/AgentResourceBase.java index 82989fd7333..27f158ca9f6 100644 --- a/plugins/hypervisors/simulator/src/com/cloud/resource/AgentResourceBase.java +++ b/plugins/hypervisors/simulator/src/com/cloud/resource/AgentResourceBase.java @@ -282,4 +282,28 @@ public class AgentResourceBase implements ServerResource { public boolean isStopped() { return this.stopped; } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } } diff --git a/plugins/hypervisors/vmware/src/com/cloud/ha/VmwareFencer.java b/plugins/hypervisors/vmware/src/com/cloud/ha/VmwareFencer.java index b7f244aa906..2ed5cafb8e4 100644 --- a/plugins/hypervisors/vmware/src/com/cloud/ha/VmwareFencer.java +++ b/plugins/hypervisors/vmware/src/com/cloud/ha/VmwareFencer.java @@ -22,11 +22,11 @@ import javax.ejb.Local; import javax.naming.ConfigurationException; import com.cloud.host.HostVO; +import com.cloud.utils.component.AdapterBase; import com.cloud.vm.VMInstanceVO; @Local(value=FenceBuilder.class) -public class VmwareFencer implements FenceBuilder { - String _name; +public class VmwareFencer extends AdapterBase implements FenceBuilder { @Override public Boolean fenceOff(VMInstanceVO vm, HostVO host) { @@ -36,28 +36,4 @@ public class VmwareFencer implements FenceBuilder { public VmwareFencer() { super(); } - - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - return true; - } - - @Override - public String getName() { - return _name; - } - - public void setName(String name) { - _name = name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } } diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java index 16fd3d7b829..79396208212 100755 --- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java +++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java @@ -81,6 +81,7 @@ import com.cloud.utils.FileUtil; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.GlobalLock; @@ -94,7 +95,7 @@ import com.vmware.vim25.HostConnectSpec; import com.vmware.vim25.ManagedObjectReference; @Local(value = {VmwareManager.class}) -public class VmwareManagerImpl implements VmwareManager, VmwareStorageMount, Listener, Manager { +public class VmwareManagerImpl extends ManagerBase implements VmwareManager, VmwareStorageMount, Listener { private static final Logger s_logger = Logger.getLogger(VmwareManagerImpl.class); private static final int STARTUP_DELAY = 60000; // 60 seconds @@ -103,7 +104,6 @@ public class VmwareManagerImpl implements VmwareManager, VmwareStorageMount, Lis private long _hostScanInterval = DEFAULT_HOST_SCAN_INTERVAL; int _timeout; - private String _name; private String _instance; @Inject AgentManager _agentMgr; @@ -164,8 +164,6 @@ public class VmwareManagerImpl implements VmwareManager, VmwareStorageMount, Lis public boolean configure(String name, Map params) throws ConfigurationException { s_logger.info("Configure VmwareManagerImpl, manager name: " + name); - _name = name; - if(!_configDao.isPremium()) { s_logger.error("Vmware component can only run under premium distribution"); throw new ConfigurationException("Vmware component can only run under premium distribution"); @@ -321,11 +319,6 @@ public class VmwareManagerImpl implements VmwareManager, VmwareStorageMount, Lis return true; } - @Override - public String getName() { - return _name; - } - @Override public boolean getNexusVSwitchGlobalParameter() { return _nexusVSwitchActive; diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java index b10689f0993..0615a0a660a 100755 --- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java +++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java @@ -4880,4 +4880,34 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa // TODO: Fix this? cmd.setContextParam("checkpoint", String.valueOf(checkPointId)); return vmName; } + + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } } diff --git a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java index f224d7dc716..7e763e2d402 100644 --- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java +++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java @@ -7719,4 +7719,25 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe } } + @Override + public void setName(String name) { + } + + @Override + public void setConfigParams(Map params) { + } + + @Override + public Map getConfigParams() { + return null; + } + + @Override + public int getRunLevel() { + return 0; + } + + @Override + public void setRunLevel(int level) { + } } diff --git a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XcpOssResource.java b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XcpOssResource.java index 0a1064707b1..357b4333678 100644 --- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XcpOssResource.java +++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XcpOssResource.java @@ -20,6 +20,7 @@ package com.cloud.hypervisor.xen.resource; import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Set; import javax.ejb.Local; @@ -166,5 +167,4 @@ public class XcpOssResource extends CitrixResourceBase { } return answer; } - } diff --git a/plugins/network-elements/dns-notifier/src/org/apache/cloudstack/network/element/DnsNotifier.java b/plugins/network-elements/dns-notifier/src/org/apache/cloudstack/network/element/DnsNotifier.java index f9aa063973b..907e8e7219e 100644 --- a/plugins/network-elements/dns-notifier/src/org/apache/cloudstack/network/element/DnsNotifier.java +++ b/plugins/network-elements/dns-notifier/src/org/apache/cloudstack/network/element/DnsNotifier.java @@ -35,6 +35,7 @@ import com.cloud.network.Network.Service; import com.cloud.network.PhysicalNetworkServiceProvider; import com.cloud.network.element.NetworkElement; import com.cloud.offering.NetworkOffering; +import com.cloud.utils.component.AdapterBase; import com.cloud.vm.NicProfile; import com.cloud.vm.ReservationContext; import com.cloud.vm.VirtualMachine; @@ -45,34 +46,12 @@ import com.cloud.vm.VirtualMachineProfile; * */ @Local(NetworkElement.class) -public class DnsNotifier implements NetworkElement { - String _name = null; +public class DnsNotifier extends AdapterBase implements NetworkElement { public DnsNotifier() { } - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - return true; - } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - @Override public Map> getCapabilities() { Map> caps = new HashMap>(); diff --git a/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java b/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java index c84150b3b51..81039d1f3c7 100644 --- a/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java +++ b/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java @@ -118,6 +118,7 @@ import com.cloud.user.dao.AccountDao; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.SearchBuilder; @@ -140,8 +141,8 @@ import com.cloud.vm.dao.NicDao; @Component @Local(value = { ElasticLoadBalancerManager.class }) -public class ElasticLoadBalancerManagerImpl implements -ElasticLoadBalancerManager, Manager, VirtualMachineGuru { +public class ElasticLoadBalancerManagerImpl extends ManagerBase implements +ElasticLoadBalancerManager, VirtualMachineGuru { private static final Logger s_logger = Logger .getLogger(ElasticLoadBalancerManagerImpl.class); @@ -200,7 +201,6 @@ ElasticLoadBalancerManager, Manager, VirtualMachineGuru { @Inject NicDao _nicDao; - String _name; String _instance; static final private String _elbVmNamePrefix = "l"; static final private String _systemVmType = "elbvm"; @@ -390,7 +390,6 @@ ElasticLoadBalancerManager, Manager, VirtualMachineGuru { @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; final Map configs = _configDao.getConfiguration("AgentManager", params); _systemAcct = _accountService.getSystemAccount(); _instance = configs.get("instance.name"); @@ -435,21 +434,6 @@ ElasticLoadBalancerManager, Manager, VirtualMachineGuru { return true; } - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return _name; - } - private DomainRouterVO findELBVmWithCapacity(Network guestNetwork, IPAddressVO ipAddr) { List unusedElbVms = _elbVmMapDao.listUnusedElbVms(); if (unusedElbVms.size() > 0) { diff --git a/plugins/network-elements/f5/src/com/cloud/network/resource/F5BigIpResource.java b/plugins/network-elements/f5/src/com/cloud/network/resource/F5BigIpResource.java index 80a7a85dc85..1733712366b 100644 --- a/plugins/network-elements/f5/src/com/cloud/network/resource/F5BigIpResource.java +++ b/plugins/network-elements/f5/src/com/cloud/network/resource/F5BigIpResource.java @@ -1066,6 +1066,36 @@ public class F5BigIpResource implements ServerResource { private static String[] genStringArray(String s) { return new String[]{s}; + } + + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + } } diff --git a/plugins/network-elements/juniper-srx/src/com/cloud/network/resource/JuniperSrxResource.java b/plugins/network-elements/juniper-srx/src/com/cloud/network/resource/JuniperSrxResource.java index 11ff2960e4b..84821680198 100644 --- a/plugins/network-elements/juniper-srx/src/com/cloud/network/resource/JuniperSrxResource.java +++ b/plugins/network-elements/juniper-srx/src/com/cloud/network/resource/JuniperSrxResource.java @@ -3420,6 +3420,36 @@ public class JuniperSrxResource implements ServerResource { } else { return doc; } - } + } + + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } } diff --git a/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java b/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java index ca8c8a71c7d..abea4649dbe 100644 --- a/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java +++ b/plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java @@ -2342,4 +2342,34 @@ public class NetscalerResource implements ServerResource { public void disconnected() { return; } + + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } } diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpResource.java b/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpResource.java index 027f451b154..6a9a0060387 100644 --- a/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpResource.java +++ b/plugins/network-elements/nicira-nvp/src/com/cloud/network/resource/NiciraNvpResource.java @@ -794,5 +794,35 @@ public class NiciraNvpResource implements ServerResource { return rulepair; } + + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } } diff --git a/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java b/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java index e4e8eaefc4d..b1ecaaccd76 100644 --- a/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java +++ b/plugins/network-elements/ovs/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java @@ -51,6 +51,7 @@ import com.cloud.network.ovs.dao.OvsTunnelInterfaceDao; import com.cloud.network.ovs.dao.OvsTunnelInterfaceVO; import com.cloud.network.ovs.dao.OvsTunnelNetworkDao; import com.cloud.network.ovs.dao.OvsTunnelNetworkVO; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.exception.CloudRuntimeException; @@ -66,11 +67,10 @@ import com.cloud.vm.dao.UserVmDao; @Component @Local(value={OvsTunnelManager.class}) -public class OvsTunnelManagerImpl implements OvsTunnelManager { +public class OvsTunnelManagerImpl extends ManagerBase implements OvsTunnelManager { public static final Logger s_logger = Logger.getLogger(OvsTunnelManagerImpl.class.getName()); - String _name; boolean _isEnabled; ScheduledExecutorService _executorPool; ScheduledExecutorService _cleanupExecutor; @@ -88,7 +88,6 @@ public class OvsTunnelManagerImpl implements OvsTunnelManager { @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; _isEnabled = Boolean.parseBoolean(_configDao.getValue(Config.OvsTunnelNetwork.key())); if (_isEnabled) { @@ -377,21 +376,6 @@ public class OvsTunnelManagerImpl implements OvsTunnelManager { } } - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return _name; - } - @Override public boolean isOvsTunnelEnabled() { return _isEnabled; diff --git a/server/src/com/cloud/agent/manager/AgentManagerImpl.java b/server/src/com/cloud/agent/manager/AgentManagerImpl.java index 364f8fb6dce..2286dabfda1 100755 --- a/server/src/com/cloud/agent/manager/AgentManagerImpl.java +++ b/server/src/com/cloud/agent/manager/AgentManagerImpl.java @@ -110,6 +110,7 @@ import com.cloud.utils.ActionDelegate; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.Transaction; @@ -141,7 +142,7 @@ import edu.emory.mathcs.backport.java.util.Collections; * report router statistics | seconds | 300s || * } **/ @Local(value = { AgentManager.class }) -public class AgentManagerImpl implements AgentManager, HandlerFactory, Manager { +public class AgentManagerImpl extends ManagerBase implements AgentManager, HandlerFactory { private static final Logger s_logger = Logger.getLogger(AgentManagerImpl.class); private static final Logger status_logger = Logger.getLogger(Status.class); @@ -206,7 +207,6 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, Manager { protected int _retry = 2; - protected String _name; protected String _instance; protected int _wait; @@ -230,8 +230,7 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, Manager { @Override public boolean configure(final String name, final Map params) throws ConfigurationException { - _name = name; - + final Map configs = _configDao.getConfiguration("AgentManager", params); _port = NumbersUtil.parseInt(configs.get("port"), 8250); final int workers = NumbersUtil.parseInt(configs.get("workers"), 5); @@ -840,11 +839,6 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, Manager { return true; } - @Override - public String getName() { - return _name; - } - protected boolean handleDisconnectWithoutInvestigation(AgentAttache attache, Status.Event event, boolean transitState) { long hostId = attache.getId(); diff --git a/server/src/com/cloud/agent/manager/allocator/impl/TestingAllocator.java b/server/src/com/cloud/agent/manager/allocator/impl/TestingAllocator.java index c8bbe02aece..90bd95629bf 100755 --- a/server/src/com/cloud/agent/manager/allocator/impl/TestingAllocator.java +++ b/server/src/com/cloud/agent/manager/allocator/impl/TestingAllocator.java @@ -32,17 +32,17 @@ import com.cloud.host.Host; import com.cloud.host.Host.Type; import com.cloud.host.dao.HostDao; import com.cloud.offering.ServiceOffering; +import com.cloud.utils.component.AdapterBase; import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachineProfile; @Component @Local(value={HostAllocator.class}) -public class TestingAllocator implements HostAllocator { +public class TestingAllocator extends AdapterBase implements HostAllocator { @Inject HostDao _hostDao; Long _computingHost; Long _storageHost; Long _routingHost; - String _name; @Override public List allocateTo(VirtualMachineProfile vmProfile, DeploymentPlan plan, Type type, @@ -81,24 +81,6 @@ public class TestingAllocator implements HostAllocator { value = (String)params.get(Host.Type.Storage.toString()); _storageHost = (value != null) ? Long.parseLong(value) : null; - _name = name; - return true; } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - } diff --git a/server/src/com/cloud/agent/manager/authn/impl/BasicAgentAuthManager.java b/server/src/com/cloud/agent/manager/authn/impl/BasicAgentAuthManager.java index 74bd62180b4..cd4ec8d9c7f 100644 --- a/server/src/com/cloud/agent/manager/authn/impl/BasicAgentAuthManager.java +++ b/server/src/com/cloud/agent/manager/authn/impl/BasicAgentAuthManager.java @@ -33,10 +33,11 @@ import com.cloud.agent.manager.authn.AgentAuthorizer; import com.cloud.configuration.dao.ConfigurationDao; import com.cloud.exception.ConnectionException; import com.cloud.host.dao.HostDao; +import com.cloud.utils.component.AdapterBase; @Component @Local(value={AgentAuthorizer.class, StartupCommandProcessor.class}) -public class BasicAgentAuthManager implements AgentAuthorizer, StartupCommandProcessor { +public class BasicAgentAuthManager extends AdapterBase implements AgentAuthorizer, StartupCommandProcessor { private static final Logger s_logger = Logger.getLogger(BasicAgentAuthManager.class); @Inject HostDao _hostDao = null; @Inject ConfigurationDao _configDao = null; @@ -65,20 +66,4 @@ public class BasicAgentAuthManager implements AgentAuthorizer, StartupCommandPro _agentManager.registerForInitialConnects(this, true); return true; } - - @Override - public String getName() { - return getClass().getName(); - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - } diff --git a/server/src/com/cloud/alert/AlertManagerImpl.java b/server/src/com/cloud/alert/AlertManagerImpl.java index bcd364e8cd3..cd29c7089c8 100755 --- a/server/src/com/cloud/alert/AlertManagerImpl.java +++ b/server/src/com/cloud/alert/AlertManagerImpl.java @@ -72,6 +72,7 @@ import com.cloud.storage.StoragePoolVO; import com.cloud.storage.dao.StoragePoolDao; import com.cloud.storage.dao.VolumeDao; import com.cloud.utils.NumbersUtil; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.SearchCriteria; import com.sun.mail.smtp.SMTPMessage; @@ -80,7 +81,7 @@ import com.sun.mail.smtp.SMTPTransport; @Component @Local(value={AlertManager.class}) -public class AlertManagerImpl implements AlertManager { +public class AlertManagerImpl extends ManagerBase implements AlertManager { private static final Logger s_logger = Logger.getLogger(AlertManagerImpl.class.getName()); private static final long INITIAL_CAPACITY_CHECK_DELAY = 30L * 1000L; // thirty seconds expressed in milliseconds @@ -88,7 +89,6 @@ public class AlertManagerImpl implements AlertManager { private static final DecimalFormat _dfPct = new DecimalFormat("###.##"); private static final DecimalFormat _dfWhole = new DecimalFormat("########"); - private String _name = null; private EmailAlert _emailAlert; @Inject private AlertDao _alertDao; @Inject private HostDao _hostDao; @@ -122,8 +122,6 @@ public class AlertManagerImpl implements AlertManager { @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - Map configs = _configDao.getConfiguration("management-server", params); // set up the email system for alerts @@ -223,11 +221,6 @@ public class AlertManagerImpl implements AlertManager { return true; } - @Override - public String getName() { - return _name; - } - @Override public boolean start() { _timer.schedule(new CapacityChecker(), INITIAL_CAPACITY_CHECK_DELAY, _capacityCheckPeriod); diff --git a/server/src/com/cloud/alert/ClusterAlertAdapter.java b/server/src/com/cloud/alert/ClusterAlertAdapter.java index f8b782c2b99..32da042efa4 100644 --- a/server/src/com/cloud/alert/ClusterAlertAdapter.java +++ b/server/src/com/cloud/alert/ClusterAlertAdapter.java @@ -30,16 +30,16 @@ import com.cloud.cluster.ClusterNodeJoinEventArgs; import com.cloud.cluster.ClusterNodeLeftEventArgs; import com.cloud.cluster.ManagementServerHostVO; import com.cloud.cluster.dao.ManagementServerHostDao; +import com.cloud.utils.component.AdapterBase; import com.cloud.utils.events.EventArgs; import com.cloud.utils.events.SubscriptionMgr; @Component @Local(value = AlertAdapter.class) -public class ClusterAlertAdapter implements AlertAdapter { +public class ClusterAlertAdapter extends AdapterBase implements AlertAdapter { private static final Logger s_logger = Logger.getLogger(ClusterAlertAdapter.class); - private String _name; @Inject private AlertManager _alertMgr; @Inject private ManagementServerHostDao _mshostDao; @@ -117,19 +117,4 @@ public class ClusterAlertAdapter implements AlertAdapter { return true; } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } } diff --git a/server/src/com/cloud/alert/ConsoleProxyAlertAdapter.java b/server/src/com/cloud/alert/ConsoleProxyAlertAdapter.java index 7e744229bf7..512108cbf08 100644 --- a/server/src/com/cloud/alert/ConsoleProxyAlertAdapter.java +++ b/server/src/com/cloud/alert/ConsoleProxyAlertAdapter.java @@ -29,19 +29,18 @@ import com.cloud.consoleproxy.ConsoleProxyAlertEventArgs; import com.cloud.consoleproxy.ConsoleProxyManager; import com.cloud.dc.DataCenterVO; import com.cloud.dc.dao.DataCenterDao; +import com.cloud.utils.component.AdapterBase; import com.cloud.utils.events.SubscriptionMgr; import com.cloud.vm.ConsoleProxyVO; import com.cloud.vm.dao.ConsoleProxyDao; @Component @Local(value=AlertAdapter.class) -public class ConsoleProxyAlertAdapter implements AlertAdapter { +public class ConsoleProxyAlertAdapter extends AdapterBase implements AlertAdapter { private static final Logger s_logger = Logger.getLogger(ConsoleProxyAlertAdapter.class); @Inject private AlertManager _alertMgr; - private String _name; - @Inject private DataCenterDao _dcDao; @Inject private ConsoleProxyDao _consoleProxyDao; @@ -195,19 +194,4 @@ public class ConsoleProxyAlertAdapter implements AlertAdapter { return true; } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } } diff --git a/server/src/com/cloud/alert/SecondaryStorageVmAlertAdapter.java b/server/src/com/cloud/alert/SecondaryStorageVmAlertAdapter.java index faf1a906cf6..2d4a8c3cb37 100644 --- a/server/src/com/cloud/alert/SecondaryStorageVmAlertAdapter.java +++ b/server/src/com/cloud/alert/SecondaryStorageVmAlertAdapter.java @@ -32,16 +32,16 @@ import com.cloud.dc.DataCenterVO; import com.cloud.dc.dao.DataCenterDao; import com.cloud.storage.secondary.SecStorageVmAlertEventArgs; import com.cloud.storage.secondary.SecondaryStorageVmManager; +import com.cloud.utils.component.AdapterBase; import com.cloud.utils.events.SubscriptionMgr; import com.cloud.vm.SecondaryStorageVmVO; import com.cloud.vm.dao.SecondaryStorageVmDao; @Component @Local(value=AlertAdapter.class) -public class SecondaryStorageVmAlertAdapter implements AlertAdapter { +public class SecondaryStorageVmAlertAdapter extends AdapterBase implements AlertAdapter { private static final Logger s_logger = Logger.getLogger(SecondaryStorageVmAlertAdapter.class); - private String _name; @Inject private AlertManager _alertMgr; @Inject private DataCenterDao _dcDao; @@ -197,19 +197,4 @@ public class SecondaryStorageVmAlertAdapter implements AlertAdapter { return true; } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } } diff --git a/server/src/com/cloud/api/ApiServlet.java b/server/src/com/cloud/api/ApiServlet.java index fcf12a6c996..7229049fb9a 100755 --- a/server/src/com/cloud/api/ApiServlet.java +++ b/server/src/com/cloud/api/ApiServlet.java @@ -24,6 +24,8 @@ import java.util.HashMap; import java.util.Map; import javax.inject.Inject; +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -34,14 +36,13 @@ import org.apache.cloudstack.api.BaseCmd; import org.apache.cloudstack.api.ServerApiException; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; +import org.springframework.web.context.support.SpringBeanAutowiringSupport; import com.cloud.exception.CloudAuthenticationException; import com.cloud.user.Account; import com.cloud.user.AccountService; import com.cloud.user.UserContext; import com.cloud.utils.StringUtils; -import com.cloud.utils.component.ComponentContext; -import com.cloud.utils.exception.CloudRuntimeException; @Component("apiServlet") @SuppressWarnings("serial") @@ -53,14 +54,13 @@ public class ApiServlet extends HttpServlet { @Inject AccountService _accountMgr; public ApiServlet() { - super(); - _apiServer = ApiServer.getInstance(); - _accountMgr = ComponentContext.getComponent(AccountService.class); - if (_apiServer == null) { - throw new CloudRuntimeException("ApiServer not initialized"); - } } + @Override + public void init(ServletConfig config) throws ServletException { + SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext()); + } + @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) { processRequest(req, resp); diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java index 97fd350c7e4..66e83da9983 100644 --- a/server/src/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/com/cloud/api/query/QueryManagerImpl.java @@ -136,6 +136,7 @@ import com.cloud.utils.DateUtil; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.Filter; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; @@ -149,12 +150,10 @@ import com.cloud.vm.dao.UserVmDao; @Component @Local(value = {QueryService.class }) -public class QueryManagerImpl implements QueryService, Manager { +public class QueryManagerImpl extends ManagerBase implements QueryService { public static final Logger s_logger = Logger.getLogger(QueryManagerImpl.class); - private String _name; - // public static ViewResponseHelper _responseGenerator; @Inject @@ -247,27 +246,6 @@ public class QueryManagerImpl implements QueryService, Manager { @Inject private HighAvailabilityManager _haMgr; - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - return true; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return _name; - } - /* (non-Javadoc) * @see com.cloud.api.query.QueryService#searchForUsers(org.apache.cloudstack.api.command.admin.user.ListUsersCmd) */ diff --git a/server/src/com/cloud/async/AsyncJobExecutorContextImpl.java b/server/src/com/cloud/async/AsyncJobExecutorContextImpl.java index 24d8c20cd62..4bc0a00dfd5 100644 --- a/server/src/com/cloud/async/AsyncJobExecutorContextImpl.java +++ b/server/src/com/cloud/async/AsyncJobExecutorContextImpl.java @@ -16,11 +16,8 @@ // under the License. package com.cloud.async; -import java.util.Map; - import javax.ejb.Local; import javax.inject.Inject; -import javax.naming.ConfigurationException; import org.springframework.stereotype.Component; @@ -36,6 +33,7 @@ import com.cloud.storage.snapshot.SnapshotManager; import com.cloud.user.AccountManager; import com.cloud.user.dao.AccountDao; import com.cloud.user.dao.UserDao; +import com.cloud.utils.component.ManagerBase; import com.cloud.vm.UserVmManager; import com.cloud.vm.VirtualMachineManager; import com.cloud.vm.dao.DomainRouterDao; @@ -43,8 +41,7 @@ import com.cloud.vm.dao.UserVmDao; @Component @Local(value={AsyncJobExecutorContext.class}) -public class AsyncJobExecutorContextImpl implements AsyncJobExecutorContext { - private String _name; +public class AsyncJobExecutorContextImpl extends ManagerBase implements AsyncJobExecutorContext { @Inject private AgentManager _agentMgr; @Inject private NetworkModel _networkMgr; @@ -146,25 +143,4 @@ public class AsyncJobExecutorContextImpl implements AsyncJobExecutorContext { public VirtualMachineManager getItMgr() { return _itMgr; } - - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - return true; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return _name; - } } diff --git a/server/src/com/cloud/async/AsyncJobManagerImpl.java b/server/src/com/cloud/async/AsyncJobManagerImpl.java index bdf2b71763d..438877bf432 100644 --- a/server/src/com/cloud/async/AsyncJobManagerImpl.java +++ b/server/src/com/cloud/async/AsyncJobManagerImpl.java @@ -64,6 +64,7 @@ import com.cloud.utils.DateUtil; import com.cloud.utils.NumbersUtil; import com.cloud.utils.PropertiesUtil; import com.cloud.utils.component.ComponentContext; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.GlobalLock; @@ -77,7 +78,7 @@ import com.google.gson.reflect.TypeToken; @Component @Local(value={AsyncJobManager.class}) -public class AsyncJobManagerImpl implements AsyncJobManager, ClusterManagerListener { +public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager, ClusterManagerListener { public static final Logger s_logger = Logger.getLogger(AsyncJobManagerImpl.class.getName()); private static final int ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_COOPERATION = 3; // 3 seconds @@ -85,8 +86,6 @@ public class AsyncJobManagerImpl implements AsyncJobManager, ClusterManagerListe private static final int HEARTBEAT_INTERVAL = 2000; private static final int GC_INTERVAL = 10000; // 10 seconds - private String _name; - @Inject private AsyncJobExecutorContext _context; @Inject private SyncQueueManager _queueMgr; @Inject private ClusterManager _clusterMgr; @@ -693,8 +692,6 @@ public class AsyncJobManagerImpl implements AsyncJobManager, ClusterManagerListe @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - int expireMinutes = NumbersUtil.parseInt( _configDao.getValue(Config.JobExpireMinutes.key()), 24*60); _jobExpireSeconds = (long)expireMinutes*60; @@ -783,9 +780,4 @@ public class AsyncJobManagerImpl implements AsyncJobManager, ClusterManagerListe _executor.shutdown(); return true; } - - @Override - public String getName() { - return _name; - } } diff --git a/server/src/com/cloud/async/SyncQueueManagerImpl.java b/server/src/com/cloud/async/SyncQueueManagerImpl.java index 4f0daa00bfa..aaa4c9bfca2 100644 --- a/server/src/com/cloud/async/SyncQueueManagerImpl.java +++ b/server/src/com/cloud/async/SyncQueueManagerImpl.java @@ -31,17 +31,16 @@ import org.springframework.stereotype.Component; import com.cloud.async.dao.SyncQueueDao; import com.cloud.async.dao.SyncQueueItemDao; import com.cloud.utils.DateUtil; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Transaction; import com.cloud.utils.exception.CloudRuntimeException; @Component @Local(value={SyncQueueManager.class}) -public class SyncQueueManagerImpl implements SyncQueueManager { +public class SyncQueueManagerImpl extends ManagerBase implements SyncQueueManager { public static final Logger s_logger = Logger.getLogger(SyncQueueManagerImpl.class.getName()); - private String _name; - @Inject private SyncQueueDao _syncQueueDao; @Inject private SyncQueueItemDao _syncQueueItemDao; @@ -240,27 +239,6 @@ public class SyncQueueManagerImpl implements SyncQueueManager { return _syncQueueItemDao.getBlockedQueueItems(thresholdMs, exclusive); } - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - return true; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return _name; - } - private boolean queueReadyToProcess(SyncQueueVO queueVO) { return queueVO.getQueueSize() < queueVO.getQueueSizeLimit(); } diff --git a/server/src/com/cloud/baremetal/BareMetalPxeServiceBase.java b/server/src/com/cloud/baremetal/BareMetalPxeServiceBase.java index 62286f96342..0df06509c25 100644 --- a/server/src/com/cloud/baremetal/BareMetalPxeServiceBase.java +++ b/server/src/com/cloud/baremetal/BareMetalPxeServiceBase.java @@ -27,14 +27,14 @@ import com.cloud.dc.dao.HostPodDao; import com.cloud.deploy.DeployDestination; import com.cloud.host.Host; import com.cloud.host.dao.HostDao; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.ReservationContext; import com.cloud.vm.UserVmVO; import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.dao.NicDao; -public abstract class BareMetalPxeServiceBase implements PxeServerService { - protected String _name; +public abstract class BareMetalPxeServiceBase extends ManagerBase implements PxeServerService { @Inject DataCenterDao _dcDao; @Inject HostDao _hostDao; @Inject AgentManager _agentMgr; @@ -42,28 +42,6 @@ public abstract class BareMetalPxeServiceBase implements PxeServerService { @Inject HostPodDao _podDao; @Inject NicDao _nicDao; - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - return true; - } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override public boolean prepare(VirtualMachineProfile profile, DeployDestination dest, ReservationContext context, Long pxeServerId) { throw new CloudRuntimeException("Dervied class should implement this method"); diff --git a/server/src/com/cloud/baremetal/BareMetalResourceBase.java b/server/src/com/cloud/baremetal/BareMetalResourceBase.java index a922db911ef..274cf077176 100755 --- a/server/src/com/cloud/baremetal/BareMetalResourceBase.java +++ b/server/src/com/cloud/baremetal/BareMetalResourceBase.java @@ -597,4 +597,34 @@ public class BareMetalResourceBase implements ServerResource { _agentControl = agentControl; } + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } + } diff --git a/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java b/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java index 4b8b9e660ac..411e27e23ab 100755 --- a/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java +++ b/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java @@ -106,7 +106,7 @@ import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VirtualMachineProfile.Param; @Local(value={BareMetalVmManager.class, BareMetalVmService.class}) -public class BareMetalVmManagerImpl extends UserVmManagerImpl implements BareMetalVmManager, BareMetalVmService, Manager, +public class BareMetalVmManagerImpl extends UserVmManagerImpl implements BareMetalVmManager, BareMetalVmService, StateListener { private static final Logger s_logger = Logger.getLogger(BareMetalVmManagerImpl.class); @Inject ConfigurationDao _configDao; diff --git a/server/src/com/cloud/baremetal/ExternalDhcpManagerImpl.java b/server/src/com/cloud/baremetal/ExternalDhcpManagerImpl.java index 80f0a465205..584c20118c7 100755 --- a/server/src/com/cloud/baremetal/ExternalDhcpManagerImpl.java +++ b/server/src/com/cloud/baremetal/ExternalDhcpManagerImpl.java @@ -50,6 +50,7 @@ import com.cloud.resource.ResourceManager; import com.cloud.resource.ResourceStateAdapter; import com.cloud.resource.ServerResource; import com.cloud.resource.UnableDeleteHostException; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Transaction; import com.cloud.utils.exception.CloudRuntimeException; @@ -63,9 +64,8 @@ import com.cloud.vm.dao.UserVmDao; @Component @Local(value = {ExternalDhcpManager.class}) -public class ExternalDhcpManagerImpl implements ExternalDhcpManager, ResourceStateAdapter { +public class ExternalDhcpManagerImpl extends ManagerBase implements ExternalDhcpManager, ResourceStateAdapter { private static final org.apache.log4j.Logger s_logger = Logger.getLogger(ExternalDhcpManagerImpl.class); - protected String _name; @Inject DataCenterDao _dcDao; @Inject HostDao _hostDao; @Inject AgentManager _agentMgr; @@ -91,11 +91,6 @@ public class ExternalDhcpManagerImpl implements ExternalDhcpManager, ResourceSta return true; } - @Override - public String getName() { - return _name; - } - protected String getDhcpServerGuid(String zoneId, String name, String ip) { return zoneId + "-" + name + "-" + ip; } diff --git a/server/src/com/cloud/baremetal/ExternalDhcpResourceBase.java b/server/src/com/cloud/baremetal/ExternalDhcpResourceBase.java index 69846ac4ec4..937b4a7f30c 100644 --- a/server/src/com/cloud/baremetal/ExternalDhcpResourceBase.java +++ b/server/src/com/cloud/baremetal/ExternalDhcpResourceBase.java @@ -165,4 +165,34 @@ public class ExternalDhcpResourceBase implements ServerResource { public void setAgentControl(IAgentControl agentControl) { } + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } + } diff --git a/server/src/com/cloud/baremetal/PxeServerManagerImpl.java b/server/src/com/cloud/baremetal/PxeServerManagerImpl.java index 7a9a783969f..f45b2757424 100755 --- a/server/src/com/cloud/baremetal/PxeServerManagerImpl.java +++ b/server/src/com/cloud/baremetal/PxeServerManagerImpl.java @@ -42,6 +42,7 @@ import com.cloud.resource.ServerResource; import com.cloud.resource.UnableDeleteHostException; import com.cloud.uservm.UserVm; import com.cloud.utils.component.AdapterBase; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.ReservationContext; import com.cloud.vm.UserVmVO; @@ -50,9 +51,8 @@ import com.cloud.vm.VirtualMachineProfile.Param; @Component @Local(value = {PxeServerManager.class}) -public class PxeServerManagerImpl implements PxeServerManager, ResourceStateAdapter { +public class PxeServerManagerImpl extends ManagerBase implements PxeServerManager, ResourceStateAdapter { private static final org.apache.log4j.Logger s_logger = Logger.getLogger(PxeServerManagerImpl.class); - protected String _name; @Inject DataCenterDao _dcDao; @Inject HostDao _hostDao; @Inject AgentManager _agentMgr; @@ -64,7 +64,6 @@ public class PxeServerManagerImpl implements PxeServerManager, ResourceStateAdap @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; _resourceMgr.registerResourceStateAdapter(this.getClass().getSimpleName(), this); return true; } @@ -80,11 +79,6 @@ public class PxeServerManagerImpl implements PxeServerManager, ResourceStateAdap return true; } - @Override - public String getName() { - return _name; - } - protected PxeServerService getServiceByType(String type) { PxeServerService _service; _service = AdapterBase.getAdapterByName(_services, type); diff --git a/server/src/com/cloud/baremetal/PxeServerResourceBase.java b/server/src/com/cloud/baremetal/PxeServerResourceBase.java index 46982b1942a..4df5ea8fabf 100644 --- a/server/src/com/cloud/baremetal/PxeServerResourceBase.java +++ b/server/src/com/cloud/baremetal/PxeServerResourceBase.java @@ -152,4 +152,34 @@ public class PxeServerResourceBase implements ServerResource { } } + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } + } diff --git a/server/src/com/cloud/capacity/CapacityManagerImpl.java b/server/src/com/cloud/capacity/CapacityManagerImpl.java index f9bbc1c83e7..d7b70535b06 100755 --- a/server/src/com/cloud/capacity/CapacityManagerImpl.java +++ b/server/src/com/cloud/capacity/CapacityManagerImpl.java @@ -68,6 +68,7 @@ import com.cloud.storage.swift.SwiftManager; import com.cloud.utils.DateUtil; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.SearchCriteria; @@ -81,9 +82,8 @@ import com.cloud.vm.dao.VMInstanceDao; @Component @Local(value = CapacityManager.class) -public class CapacityManagerImpl implements CapacityManager, StateListener, Listener, ResourceListener { +public class CapacityManagerImpl extends ManagerBase implements CapacityManager, StateListener, Listener, ResourceListener { private static final Logger s_logger = Logger.getLogger(CapacityManagerImpl.class); - String _name; @Inject CapacityDao _capacityDao; @Inject @@ -120,7 +120,6 @@ public class CapacityManagerImpl implements CapacityManager, StateListener params) throws ConfigurationException { - _name = name; _vmCapacityReleaseInterval = NumbersUtil.parseInt(_configDao.getValue(Config.CapacitySkipcountingHours.key()), 3600); _storageOverProvisioningFactor = NumbersUtil.parseFloat(_configDao.getValue(Config.StorageOverprovisioningFactor.key()), 1.0f); _cpuOverProvisioningFactor = NumbersUtil.parseFloat(_configDao.getValue(Config.CPUOverprovisioningFactor.key()), 1.0f); @@ -150,11 +149,6 @@ public class CapacityManagerImpl implements CapacityManager, StateListener params) throws ConfigurationException { - _name = name; - _clusterMgr.registerListener(this); return true; } - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return _name; - } - @Override public void onManagementNodeJoined(List nodeList, long selfNodeId) { } diff --git a/server/src/com/cloud/cluster/ClusterManagerImpl.java b/server/src/com/cloud/cluster/ClusterManagerImpl.java index 1ad98e8ef7e..df62eed3f1c 100755 --- a/server/src/com/cloud/cluster/ClusterManagerImpl.java +++ b/server/src/com/cloud/cluster/ClusterManagerImpl.java @@ -44,8 +44,6 @@ import javax.inject.Inject; import javax.naming.ConfigurationException; import org.apache.log4j.Logger; -import org.springframework.context.annotation.Primary; -import org.springframework.stereotype.Component; import com.cloud.agent.AgentManager; import com.cloud.agent.AgentManager.OnError; @@ -74,6 +72,8 @@ import com.cloud.utils.DateUtil; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Profiler; import com.cloud.utils.PropertiesUtil; +import com.cloud.utils.component.ComponentLifecycle; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.ConnectionConcierge; import com.cloud.utils.db.DB; @@ -89,7 +89,7 @@ import com.cloud.utils.net.NetUtils; import com.google.gson.Gson; @Local(value = { ClusterManager.class }) -public class ClusterManagerImpl implements ClusterManager { +public class ClusterManagerImpl extends ManagerBase implements ClusterManager { private static final Logger s_logger = Logger.getLogger(ClusterManagerImpl.class); private static final int EXECUTOR_SHUTDOWN_TIMEOUT = 1000; // 1 second @@ -139,7 +139,6 @@ public class ClusterManagerImpl implements ClusterManager { private boolean _peerScanInited = false; - private String _name; private String _clusterNodeIP = "127.0.0.1"; private boolean _agentLBEnabled = false; private double _connectedAgentsThreshold = 0.7; @@ -158,6 +157,7 @@ public class ClusterManagerImpl implements ClusterManager { // recursive remote calls between nodes // _executor = Executors.newCachedThreadPool(new NamedThreadFactory("Cluster-Worker")); + setRunLevel(ComponentLifecycle.RUN_LEVEL_FRAMEWORK); } private void registerRequestPdu(ClusterServiceRequestPdu pdu) { @@ -1155,11 +1155,6 @@ public class ClusterManagerImpl implements ClusterManager { return null; } - @Override - public String getName() { - return _name; - } - @Override @DB public boolean start() { if(s_logger.isInfoEnabled()) { @@ -1255,7 +1250,6 @@ public class ClusterManagerImpl implements ClusterManager { if(s_logger.isInfoEnabled()) { s_logger.info("Start configuring cluster manager : " + name); } - _name = name; Map configs = _configDao.getConfiguration("management-server", params); diff --git a/server/src/com/cloud/cluster/ClusterServiceServletAdapter.java b/server/src/com/cloud/cluster/ClusterServiceServletAdapter.java index 3d1e5edb6ce..04026d30168 100644 --- a/server/src/com/cloud/cluster/ClusterServiceServletAdapter.java +++ b/server/src/com/cloud/cluster/ClusterServiceServletAdapter.java @@ -36,10 +36,11 @@ import com.cloud.configuration.Config; import com.cloud.configuration.dao.ConfigurationDao; import com.cloud.utils.NumbersUtil; import com.cloud.utils.PropertiesUtil; +import com.cloud.utils.component.AdapterBase; @Component @Local(value={ClusterServiceAdapter.class}) -public class ClusterServiceServletAdapter implements ClusterServiceAdapter { +public class ClusterServiceServletAdapter extends AdapterBase implements ClusterServiceAdapter { private static final Logger s_logger = Logger.getLogger(ClusterServiceServletAdapter.class); private static final int DEFAULT_SERVICE_PORT = 9090; @@ -53,7 +54,6 @@ public class ClusterServiceServletAdapter implements ClusterServiceAdapter { private ClusterServiceServletContainer _servletContainer; - private String _name; private int _clusterServicePort = DEFAULT_SERVICE_PORT; private int _clusterRequestTimeoutSeconds = DEFAULT_REQUEST_TIMEOUT; @@ -105,17 +105,10 @@ public class ClusterServiceServletAdapter implements ClusterServiceAdapter { @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - init(); return true; } - @Override - public String getName() { - return _name; - } - @Override public boolean start() { _servletContainer = new ClusterServiceServletContainer(); diff --git a/server/src/com/cloud/cluster/DummyClusterManagerImpl.java b/server/src/com/cloud/cluster/DummyClusterManagerImpl.java index ea4d9510cf5..12972b9804f 100755 --- a/server/src/com/cloud/cluster/DummyClusterManagerImpl.java +++ b/server/src/com/cloud/cluster/DummyClusterManagerImpl.java @@ -29,17 +29,17 @@ import com.cloud.agent.api.Command; import com.cloud.exception.AgentUnavailableException; import com.cloud.exception.OperationTimedoutException; import com.cloud.host.Status.Event; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.net.MacAddress; @Local(value={ClusterManager.class}) -public class DummyClusterManagerImpl implements ClusterManager { +public class DummyClusterManagerImpl extends ManagerBase implements ClusterManager { private static final Logger s_logger = Logger.getLogger(DummyClusterManagerImpl.class); protected long _id = MacAddress.getMacAddress().toLong(); protected long _runId = System.currentTimeMillis(); - private String _name; private final String _clusterNodeIP = "127.0.0.1"; @Override @@ -142,11 +142,6 @@ public class DummyClusterManagerImpl implements ClusterManager { public void broadcast(long hostId, Command[] cmds) { } - @Override - public String getName() { - return _name; - } - @Override public boolean start() { if(s_logger.isInfoEnabled()) diff --git a/server/src/com/cloud/cluster/ManagementServerNode.java b/server/src/com/cloud/cluster/ManagementServerNode.java index e3a630316bc..fb42318a4ad 100755 --- a/server/src/com/cloud/cluster/ManagementServerNode.java +++ b/server/src/com/cloud/cluster/ManagementServerNode.java @@ -18,19 +18,28 @@ package com.cloud.cluster; import javax.ejb.Local; +import org.apache.log4j.Logger; import org.springframework.stereotype.Component; +import com.cloud.utils.component.AdapterBase; +import com.cloud.utils.component.ComponentLifecycle; import com.cloud.utils.component.SystemIntegrityChecker; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.net.MacAddress; @Component @Local(value = {SystemIntegrityChecker.class}) -public class ManagementServerNode implements SystemIntegrityChecker { - private static final long s_nodeId = MacAddress.getMacAddress().toLong(); +public class ManagementServerNode extends AdapterBase implements SystemIntegrityChecker { + private final Logger s_logger = Logger.getLogger(ManagementServerNode.class); + + private static final long s_nodeId = MacAddress.getMacAddress().toLong(); public static enum State { Up, Down }; + public ManagementServerNode() { + setRunLevel(ComponentLifecycle.RUN_LEVEL_FRAMEWORK_BOOTSTRAP); + } + @Override public void check() { if (s_nodeId <= 0) { @@ -41,4 +50,15 @@ public class ManagementServerNode implements SystemIntegrityChecker { public static long getManagementServerId() { return s_nodeId; } + + @Override + public boolean start() { + try { + check(); + } catch (Exception e) { + s_logger.error("System integrity check exception", e); + System.exit(1); + } + return true; + } } diff --git a/server/src/com/cloud/cluster/agentlb/ClusterBasedAgentLoadBalancerPlanner.java b/server/src/com/cloud/cluster/agentlb/ClusterBasedAgentLoadBalancerPlanner.java index 3bebacd4f50..535ba07cd0b 100755 --- a/server/src/com/cloud/cluster/agentlb/ClusterBasedAgentLoadBalancerPlanner.java +++ b/server/src/com/cloud/cluster/agentlb/ClusterBasedAgentLoadBalancerPlanner.java @@ -35,39 +35,18 @@ import com.cloud.host.Host; import com.cloud.host.HostVO; import com.cloud.host.Status; import com.cloud.host.dao.HostDao; +import com.cloud.utils.component.AdapterBase; import com.cloud.utils.db.SearchCriteria2; import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteriaService; @Component @Local(value=AgentLoadBalancerPlanner.class) -public class ClusterBasedAgentLoadBalancerPlanner implements AgentLoadBalancerPlanner{ +public class ClusterBasedAgentLoadBalancerPlanner extends AdapterBase implements AgentLoadBalancerPlanner{ private static final Logger s_logger = Logger.getLogger(AgentLoadBalancerPlanner.class); - private String _name; @Inject HostDao _hostDao = null; - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - return true; - } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - @Override public List getHostsToRebalance(long msId, int avLoad) { SearchCriteriaService sc = SearchCriteria2.create(HostVO.class); diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index 59cb6e871c0..7925ff88588 100755 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -157,6 +157,7 @@ import com.cloud.user.UserContext; import com.cloud.user.dao.AccountDao; import com.cloud.utils.NumbersUtil; import com.cloud.utils.StringUtils; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.crypt.DBEncryptionUtil; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; @@ -171,10 +172,9 @@ import edu.emory.mathcs.backport.java.util.Arrays; @Component @Local(value = { ConfigurationManager.class, ConfigurationService.class }) -public class ConfigurationManagerImpl implements ConfigurationManager, ConfigurationService { +public class ConfigurationManagerImpl extends ManagerBase implements ConfigurationManager, ConfigurationService { public static final Logger s_logger = Logger.getLogger(ConfigurationManagerImpl.class.getName()); - String _name; @Inject ConfigurationDao _configDao; @Inject @@ -257,8 +257,6 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura @Override public boolean configure(final String name, final Map params) throws ConfigurationException { - _name = name; - String maxVolumeSizeInGbString = _configDao.getValue("storage.max.volume.size"); _maxVolumeSizeInGb = NumbersUtil.parseInt(maxVolumeSizeInGbString, 2000); @@ -291,11 +289,6 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura configValuesForValidation.add("incorrect.login.attempts.allowed"); } - @Override - public String getName() { - return _name; - } - @Override public boolean start() { diff --git a/server/src/com/cloud/configuration/dao/ConfigurationDaoImpl.java b/server/src/com/cloud/configuration/dao/ConfigurationDaoImpl.java index b905a8bfedf..68106f7dd6a 100644 --- a/server/src/com/cloud/configuration/dao/ConfigurationDaoImpl.java +++ b/server/src/com/cloud/configuration/dao/ConfigurationDaoImpl.java @@ -30,6 +30,7 @@ import org.apache.log4j.Logger; import org.springframework.stereotype.Component; import com.cloud.configuration.ConfigurationVO; +import com.cloud.utils.component.ComponentLifecycle; import com.cloud.utils.crypt.DBEncryptionUtil; import com.cloud.utils.db.DB; import com.cloud.utils.db.GenericDaoBase; @@ -56,6 +57,7 @@ public class ConfigurationDaoImpl extends GenericDaoBase, AgentHook { +public class AgentBasedConsoleProxyManager extends ManagerBase implements ConsoleProxyManager, VirtualMachineGuru, AgentHook { private static final Logger s_logger = Logger.getLogger(AgentBasedConsoleProxyManager.class); - private String _name; @Inject protected HostDao _hostDao; @Inject @@ -103,8 +103,6 @@ public class AgentBasedConsoleProxyManager implements ConsoleProxyManager, Virtu s_logger.info("Start configuring AgentBasedConsoleProxyManager"); } - _name = name; - Map configs = _configDao.getConfiguration("management-server", params); String value = configs.get("consoleproxy.url.port"); if (value != null) { @@ -136,16 +134,6 @@ public class AgentBasedConsoleProxyManager implements ConsoleProxyManager, Virtu return true; } - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - HostVO findHost(VMInstanceVO vm) { return _hostDao.findById(vm.getHostId()); } diff --git a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java index a37e0d2c53c..168ac0e43cb 100755 --- a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java +++ b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java @@ -130,6 +130,7 @@ import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.GlobalLock; import com.cloud.utils.db.SearchCriteria.Op; @@ -171,7 +172,7 @@ import com.google.gson.GsonBuilder; // because sooner or later, it will be driven into Running state // @Local(value = { ConsoleProxyManager.class, ConsoleProxyService.class }) -public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProxyService, Manager, AgentHook, VirtualMachineGuru, SystemVmLoadScanHandler, ResourceStateAdapter { +public class ConsoleProxyManagerImpl extends ManagerBase implements ConsoleProxyManager, ConsoleProxyService, AgentHook, VirtualMachineGuru, SystemVmLoadScanHandler, ResourceStateAdapter { private static final Logger s_logger = Logger.getLogger(ConsoleProxyManagerImpl.class); private static final int DEFAULT_CAPACITY_SCAN_INTERVAL = 30000; // 30 seconds @@ -184,7 +185,6 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx private String _mgmt_host; private int _mgmt_port = 8250; - private String _name; @Inject private List _consoleProxyAllocators; @@ -1230,11 +1230,6 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx return aggregator.getZoneHostInfoMap(); } - @Override - public String getName() { - return _name; - } - @Override public boolean start() { if (s_logger.isInfoEnabled()) { @@ -1446,8 +1441,6 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx s_logger.info("Start configuring console proxy manager : " + name); } - _name = name; - Map configs = _configDao.getConfiguration("management-server", params); String value = configs.get(Config.ConsoleProxyCmdPort.key()); diff --git a/server/src/com/cloud/dao/EntityManagerImpl.java b/server/src/com/cloud/dao/EntityManagerImpl.java index 283927473fc..a7685882b6c 100644 --- a/server/src/com/cloud/dao/EntityManagerImpl.java +++ b/server/src/com/cloud/dao/EntityManagerImpl.java @@ -28,6 +28,7 @@ import org.springframework.stereotype.Component; import net.sf.ehcache.Cache; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.GenericDao; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.GenericSearchBuilder; @@ -37,7 +38,7 @@ import com.cloud.utils.db.SearchCriteria; @Component @Local(value=EntityManager.class) @SuppressWarnings("unchecked") -public class EntityManagerImpl implements EntityManager, Manager { +public class EntityManagerImpl extends ManagerBase implements EntityManager { String _name; Cache _cache; diff --git a/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java b/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java index fda8cab2507..eb27fda1fe8 100755 --- a/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java +++ b/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java @@ -64,6 +64,7 @@ import com.cloud.storage.dao.GuestOSCategoryDao; import com.cloud.storage.dao.GuestOSDao; import com.cloud.user.AccountManager; import com.cloud.utils.NumbersUtil; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.VMInstanceVO; @@ -96,9 +97,8 @@ import com.cloud.vm.dao.VMInstanceDao; * before retrying the stop | seconds | 120 || * } **/ @Local(value = { HighAvailabilityManager.class }) -public class HighAvailabilityManagerImpl implements HighAvailabilityManager, ClusterManagerListener { +public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvailabilityManager, ClusterManagerListener { protected static final Logger s_logger = Logger.getLogger(HighAvailabilityManagerImpl.class); - String _name; WorkerThread[] _workers; boolean _stopped; long _timeToSleep; @@ -688,8 +688,6 @@ public class HighAvailabilityManagerImpl implements HighAvailabilityManager, Clu @Override public boolean configure(final String name, final Map xmlParams) throws ConfigurationException { - _name = name; - _serverId = _msServer.getId(); Map params = new HashMap(); @@ -745,11 +743,6 @@ public class HighAvailabilityManagerImpl implements HighAvailabilityManager, Clu return true; } - @Override - public String getName() { - return _name; - } - @Override public boolean start() { _stopped = false; diff --git a/server/src/com/cloud/hypervisor/CloudZonesStartupProcessor.java b/server/src/com/cloud/hypervisor/CloudZonesStartupProcessor.java index dbc30ffac5e..24e4cc4a9e9 100755 --- a/server/src/com/cloud/hypervisor/CloudZonesStartupProcessor.java +++ b/server/src/com/cloud/hypervisor/CloudZonesStartupProcessor.java @@ -50,6 +50,7 @@ import com.cloud.host.HostVO; import com.cloud.host.dao.HostDao; import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.storage.Storage; +import com.cloud.utils.component.AdapterBase; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.net.MacAddress; import com.cloud.utils.net.NetUtils; @@ -60,7 +61,7 @@ import com.cloud.utils.net.NetUtils; */ @Component @Local(value=StartupCommandProcessor.class) -public class CloudZonesStartupProcessor implements StartupCommandProcessor { +public class CloudZonesStartupProcessor extends AdapterBase implements StartupCommandProcessor { private static final Logger s_logger = Logger.getLogger(CloudZonesStartupProcessor.class); @Inject ClusterDao _clusterDao = null; @Inject ConfigurationDao _configDao = null; @@ -87,24 +88,6 @@ public class CloudZonesStartupProcessor implements StartupCommandProcessor { return true; } - - @Override - public String getName() { - return getClass().getName(); - } - - - @Override - public boolean start() { - return true; - } - - - @Override - public boolean stop() { - return true; - } - @Override public boolean processInitialConnect(StartupCommand[] cmd) throws ConnectionException { diff --git a/server/src/com/cloud/hypervisor/HypervisorGuruManagerImpl.java b/server/src/com/cloud/hypervisor/HypervisorGuruManagerImpl.java index b0c25c74166..a8aad57abff 100644 --- a/server/src/com/cloud/hypervisor/HypervisorGuruManagerImpl.java +++ b/server/src/com/cloud/hypervisor/HypervisorGuruManagerImpl.java @@ -33,25 +33,18 @@ import com.cloud.host.Host; import com.cloud.host.HostVO; import com.cloud.host.dao.HostDao; import com.cloud.hypervisor.Hypervisor.HypervisorType; +import com.cloud.utils.component.ManagerBase; @Component @Local(value = { HypervisorGuruManager.class } ) -public class HypervisorGuruManagerImpl implements HypervisorGuruManager { +public class HypervisorGuruManagerImpl extends ManagerBase implements HypervisorGuruManager { public static final Logger s_logger = Logger.getLogger(HypervisorGuruManagerImpl.class.getName()); @Inject HostDao _hostDao; - String _name; - @Inject List _hvGuruList; Map _hvGurus = new HashMap(); - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - return true; - } - @PostConstruct public void init() { for(HypervisorGuru guru : _hvGuruList) { @@ -59,21 +52,6 @@ public class HypervisorGuruManagerImpl implements HypervisorGuruManager { } } - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return _name; - } - @Override public HypervisorGuru getGuru(HypervisorType hypervisorType) { return _hvGurus.get(hypervisorType); diff --git a/server/src/com/cloud/hypervisor/kvm/discoverer/KvmDummyResourceBase.java b/server/src/com/cloud/hypervisor/kvm/discoverer/KvmDummyResourceBase.java index 3386ff792bb..240ea6ce316 100644 --- a/server/src/com/cloud/hypervisor/kvm/discoverer/KvmDummyResourceBase.java +++ b/server/src/com/cloud/hypervisor/kvm/discoverer/KvmDummyResourceBase.java @@ -85,4 +85,34 @@ public class KvmDummyResourceBase extends ServerResourceBase implements ServerRe _agentIp = (String)params.get("agentIp"); return true; } + + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } } diff --git a/server/src/com/cloud/keystore/KeystoreManagerImpl.java b/server/src/com/cloud/keystore/KeystoreManagerImpl.java index 0df5dfdb41d..6e4240bd92e 100644 --- a/server/src/com/cloud/keystore/KeystoreManagerImpl.java +++ b/server/src/com/cloud/keystore/KeystoreManagerImpl.java @@ -37,39 +37,17 @@ import org.springframework.stereotype.Component; import com.cloud.agent.api.SecStorageSetupCommand; import com.cloud.utils.Ternary; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.security.CertificateHelper; @Component @Local(value=KeystoreManager.class) -public class KeystoreManagerImpl implements KeystoreManager { +public class KeystoreManagerImpl extends ManagerBase implements KeystoreManager { private static final Logger s_logger = Logger.getLogger(KeystoreManagerImpl.class); - private String _name; @Inject private KeystoreDao _ksDao; - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - - return true; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return _name; - } - @Override public boolean validateCertificate(String certificate, String key, String domainSuffix) { if(certificate == null || certificate.isEmpty() || diff --git a/server/src/com/cloud/maint/UpgradeManagerImpl.java b/server/src/com/cloud/maint/UpgradeManagerImpl.java index 03c7d2f0cea..54e1ff4401e 100644 --- a/server/src/com/cloud/maint/UpgradeManagerImpl.java +++ b/server/src/com/cloud/maint/UpgradeManagerImpl.java @@ -44,6 +44,7 @@ import org.springframework.stereotype.Component; import com.cloud.configuration.dao.ConfigurationDao; import com.cloud.maint.dao.AgentUpgradeDao; import com.cloud.utils.PropertiesUtil; +import com.cloud.utils.component.ManagerBase; /** * @@ -55,11 +56,10 @@ import com.cloud.utils.PropertiesUtil; */ @Component @Local(UpgradeManager.class) -public class UpgradeManagerImpl implements UpgradeManager { +public class UpgradeManagerImpl extends ManagerBase implements UpgradeManager { private final static Logger s_logger = Logger.getLogger(UpgradeManagerImpl.class); private static final MultiThreadedHttpConnectionManager s_httpClientManager = new MultiThreadedHttpConnectionManager(); - String _name; String _minimalVersion; String _recommendedVersion; // String _upgradeUrl; @@ -150,7 +150,6 @@ public class UpgradeManagerImpl implements UpgradeManager { @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; final Map configs = _configDao.getConfiguration("UpgradeManager", params); @@ -187,19 +186,4 @@ public class UpgradeManagerImpl implements UpgradeManager { } return false; } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } } diff --git a/server/src/com/cloud/network/ExternalLoadBalancerUsageManagerImpl.java b/server/src/com/cloud/network/ExternalLoadBalancerUsageManagerImpl.java index ad5a6b75ab9..90045014370 100644 --- a/server/src/com/cloud/network/ExternalLoadBalancerUsageManagerImpl.java +++ b/server/src/com/cloud/network/ExternalLoadBalancerUsageManagerImpl.java @@ -71,6 +71,7 @@ import com.cloud.user.UserStatisticsVO; import com.cloud.user.dao.AccountDao; import com.cloud.user.dao.UserStatisticsDao; import com.cloud.utils.NumbersUtil; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.GlobalLock; import com.cloud.utils.db.Transaction; @@ -83,9 +84,8 @@ import com.cloud.vm.dao.NicDao; @Component @Local(value = { ExternalLoadBalancerUsageManager.class }) -public class ExternalLoadBalancerUsageManagerImpl implements ExternalLoadBalancerUsageManager { +public class ExternalLoadBalancerUsageManagerImpl extends ManagerBase implements ExternalLoadBalancerUsageManager { - String _name; @Inject NetworkExternalLoadBalancerDao _networkExternalLBDao; @Inject @@ -170,11 +170,6 @@ public class ExternalLoadBalancerUsageManagerImpl implements ExternalLoadBalance return true; } - @Override - public String getName() { - return _name; - } - private ExternalLoadBalancerDeviceVO getExternalLoadBalancerForNetwork(Network network) { NetworkExternalLoadBalancerVO lbDeviceForNetwork = _networkExternalLBDao.findByNetworkId(network.getId()); if (lbDeviceForNetwork != null) { diff --git a/server/src/com/cloud/network/ExternalNetworkDeviceManagerImpl.java b/server/src/com/cloud/network/ExternalNetworkDeviceManagerImpl.java index a321c000260..e2382f875c7 100755 --- a/server/src/com/cloud/network/ExternalNetworkDeviceManagerImpl.java +++ b/server/src/com/cloud/network/ExternalNetworkDeviceManagerImpl.java @@ -68,13 +68,14 @@ import com.cloud.server.api.response.PxePingResponse; import com.cloud.user.AccountManager; import com.cloud.user.dao.AccountDao; import com.cloud.user.dao.UserStatisticsDao; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.dao.DomainRouterDao; import com.cloud.vm.dao.NicDao; @Component @Local(value = {ExternalNetworkDeviceManager.class}) -public class ExternalNetworkDeviceManagerImpl implements ExternalNetworkDeviceManager { +public class ExternalNetworkDeviceManagerImpl extends ManagerBase implements ExternalNetworkDeviceManager { @Inject ExternalDhcpManager _dhcpMgr; @Inject PxeServerManager _pxeMgr; @@ -110,28 +111,6 @@ public class ExternalNetworkDeviceManagerImpl implements ExternalNetworkDeviceMa // private final static IdentityService _identityService = (IdentityService)ComponentLocator.getLocator(ManagementServer.Name).getManager(IdentityService.class); private static final org.apache.log4j.Logger s_logger = Logger.getLogger(ExternalNetworkDeviceManagerImpl.class); - protected String _name; - - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - return true; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return _name; - } @Override public Host addNetworkDevice(AddNetworkDeviceCmd cmd) { diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index bc2c2e6b67c..e2b6f32d13d 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -162,6 +162,7 @@ import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.component.AdapterBase; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; @@ -193,10 +194,9 @@ import com.cloud.vm.dao.VMInstanceDao; */ @Component @Local(value = { NetworkManager.class}) -public class NetworkManagerImpl implements NetworkManager, Manager, Listener { +public class NetworkManagerImpl extends ManagerBase implements NetworkManager, Listener { static final Logger s_logger = Logger.getLogger(NetworkManagerImpl.class); - String _name; @Inject DataCenterDao _dcDao = null; @Inject @@ -861,8 +861,6 @@ public class NetworkManagerImpl implements NetworkManager, Manager, Listener { @Override @DB public boolean configure(final String name, final Map params) throws ConfigurationException { - _name = name; - _configs = _configDao.getConfiguration("AgentManager", params); _networkGcWait = NumbersUtil.parseInt(_configs.get(Config.NetworkGcWait.key()), 600); _networkGcInterval = NumbersUtil.parseInt(_configs.get(Config.NetworkGcInterval.key()), 600); @@ -1060,11 +1058,6 @@ public class NetworkManagerImpl implements NetworkManager, Manager, Listener { return true; } - @Override - public String getName() { - return _name; - } - @Override public boolean start() { _executor.scheduleWithFixedDelay(new NetworkGarbageCollector(), _networkGcInterval, _networkGcInterval, TimeUnit.SECONDS); diff --git a/server/src/com/cloud/network/NetworkModelImpl.java b/server/src/com/cloud/network/NetworkModelImpl.java index 222cd021da7..101f3f10005 100644 --- a/server/src/com/cloud/network/NetworkModelImpl.java +++ b/server/src/com/cloud/network/NetworkModelImpl.java @@ -88,6 +88,7 @@ import com.cloud.user.DomainManager; import com.cloud.user.dao.AccountDao; import com.cloud.utils.component.AdapterBase; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.JoinBuilder; import com.cloud.utils.db.JoinBuilder.JoinType; @@ -107,10 +108,9 @@ import com.cloud.vm.dao.VMInstanceDao; @Component @Local(value = { NetworkModel.class}) -public class NetworkModelImpl implements NetworkModel, Manager{ +public class NetworkModelImpl extends ManagerBase implements NetworkModel { static final Logger s_logger = Logger.getLogger(NetworkModelImpl.class); - String _name; @Inject DataCenterDao _dcDao = null; @Inject @@ -1725,7 +1725,6 @@ public class NetworkModelImpl implements NetworkModel, Manager{ @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; _configs = _configDao.getConfiguration("Network", params); _networkDomain = _configs.get(Config.GuestDomainSuffix.key()); _allowSubdomainNetworkAccess = Boolean.valueOf(_configs.get(Config.SubDomainNetworkAccess.key())); @@ -1811,12 +1810,6 @@ public class NetworkModelImpl implements NetworkModel, Manager{ return true; } - - @Override - public String getName() { - return _name; - } - @Override public PublicIpAddress getSourceNatIpAddressForGuestNetwork(Account owner, Network guestNetwork) { List addrs = listPublicIpsAssignedToGuestNtwk(owner.getId(), guestNetwork.getId(), true); diff --git a/server/src/com/cloud/network/NetworkServiceImpl.java b/server/src/com/cloud/network/NetworkServiceImpl.java index b39feb7d086..9020281344e 100755 --- a/server/src/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/com/cloud/network/NetworkServiceImpl.java @@ -125,6 +125,7 @@ import com.cloud.utils.AnnotationHelper; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; import com.cloud.utils.db.JoinBuilder; @@ -150,10 +151,9 @@ import com.cloud.vm.dao.VMInstanceDao; */ @Component @Local(value = { NetworkService.class }) -public class NetworkServiceImpl implements NetworkService, Manager { +public class NetworkServiceImpl extends ManagerBase implements NetworkService { private static final Logger s_logger = Logger.getLogger(NetworkServiceImpl.class); - String _name; @Inject DataCenterDao _dcDao = null; @Inject @@ -441,7 +441,6 @@ public class NetworkServiceImpl implements NetworkService, Manager { @Override @DB public boolean configure(final String name, final Map params) throws ConfigurationException { - _name = name; _configs = _configDao.getConfiguration("Network", params); _cidrLimit = NumbersUtil.parseInt(_configs.get(Config.NetworkGuestCidrLimit.key()), 22); @@ -453,11 +452,6 @@ public class NetworkServiceImpl implements NetworkService, Manager { return true; } - @Override - public String getName() { - return _name; - } - @Override public boolean start() { return true; diff --git a/server/src/com/cloud/network/NetworkUsageManagerImpl.java b/server/src/com/cloud/network/NetworkUsageManagerImpl.java index a3584ac5c32..e148e2c123c 100755 --- a/server/src/com/cloud/network/NetworkUsageManagerImpl.java +++ b/server/src/com/cloud/network/NetworkUsageManagerImpl.java @@ -80,6 +80,7 @@ import com.cloud.user.UserContext; import com.cloud.user.UserStatisticsVO; import com.cloud.user.dao.UserStatisticsDao; import com.cloud.utils.NumbersUtil; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.GlobalLock; import com.cloud.utils.db.JoinBuilder; @@ -92,13 +93,12 @@ import com.cloud.utils.net.MacAddress; @Component @Local(value = {NetworkUsageManager.class}) -public class NetworkUsageManagerImpl implements NetworkUsageManager, ResourceStateAdapter { +public class NetworkUsageManagerImpl extends ManagerBase implements NetworkUsageManager, ResourceStateAdapter { public enum NetworkUsageResourceName { TrafficSentinel; } private static final org.apache.log4j.Logger s_logger = Logger.getLogger(NetworkUsageManagerImpl.class); - protected String _name; @Inject HostDao _hostDao; @Inject AgentManager _agentMgr; @Inject IPAddressDao _ipAddressDao; @@ -224,8 +224,6 @@ public class NetworkUsageManagerImpl implements NetworkUsageManager, ResourceSta @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - AllocatedIpSearch = _ipAddressDao.createSearchBuilder(); AllocatedIpSearch.and("allocated", AllocatedIpSearch.entity().getAllocatedTime(), Op.NNULL); AllocatedIpSearch.and("dc", AllocatedIpSearch.entity().getDataCenterId(), Op.EQ); @@ -253,11 +251,6 @@ public class NetworkUsageManagerImpl implements NetworkUsageManager, ResourceSta return true; } - @Override - public String getName() { - return _name; - } - @Override public List listAllocatedDirectIps(long zoneId) { SearchCriteria sc = AllocatedIpSearch.create(); diff --git a/server/src/com/cloud/network/StorageNetworkManagerImpl.java b/server/src/com/cloud/network/StorageNetworkManagerImpl.java index 52ee73d4ab4..9a173826576 100755 --- a/server/src/com/cloud/network/StorageNetworkManagerImpl.java +++ b/server/src/com/cloud/network/StorageNetworkManagerImpl.java @@ -44,6 +44,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.network.Networks.TrafficType; import com.cloud.network.dao.NetworkDao; import com.cloud.network.dao.NetworkVO; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria2; @@ -57,10 +58,9 @@ import com.cloud.vm.dao.SecondaryStorageVmDao; @Component @Local(value = { StorageNetworkManager.class, StorageNetworkService.class }) -public class StorageNetworkManagerImpl implements StorageNetworkManager, StorageNetworkService { +public class StorageNetworkManagerImpl extends ManagerBase implements StorageNetworkManager, StorageNetworkService { private static final Logger s_logger = Logger.getLogger(StorageNetworkManagerImpl.class); - String _name; @Inject StorageNetworkIpAddressDao _sNwIpDao; @Inject @@ -72,30 +72,6 @@ public class StorageNetworkManagerImpl implements StorageNetworkManager, Storage @Inject SecondaryStorageVmDao _ssvmDao; - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - return true; - } - - @Override - public boolean start() { - // TODO Auto-generated method stub - return true; - } - - @Override - public boolean stop() { - // TODO Auto-generated method stub - return true; - } - - @Override - public String getName() { - // TODO Auto-generated method stub - return null; - } - private void checkOverlapPrivateIpRange(long podId, String startIp, String endIp) { HostPodVO pod = _podDao.findById(podId); if (pod == null) { diff --git a/server/src/com/cloud/network/as/AutoScaleManagerImpl.java b/server/src/com/cloud/network/as/AutoScaleManagerImpl.java index 734ea3d63e1..247441e19cc 100644 --- a/server/src/com/cloud/network/as/AutoScaleManagerImpl.java +++ b/server/src/com/cloud/network/as/AutoScaleManagerImpl.java @@ -86,6 +86,7 @@ import com.cloud.user.dao.UserDao; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; import com.cloud.utils.db.GenericDao; @@ -100,10 +101,9 @@ import com.google.gson.reflect.TypeToken; @Component @Local(value = { AutoScaleService.class, AutoScaleManager.class }) -public class AutoScaleManagerImpl implements AutoScaleManager, AutoScaleService, Manager { +public class AutoScaleManagerImpl extends ManagerBase implements AutoScaleManager, AutoScaleService { private static final Logger s_logger = Logger.getLogger(AutoScaleManagerImpl.class); - String _name; @Inject AccountDao _accountDao; @Inject @@ -143,27 +143,6 @@ public class AutoScaleManagerImpl implements AutoScaleManager, AutoScaleSe @Inject IPAddressDao _ipAddressDao; - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - return true; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return _name; - } - public List getSupportedAutoScaleCounters(long networkid) { String capability = _lbRulesMgr.getLBCapability(networkid, Capability.AutoScaleCounters.getName()); diff --git a/server/src/com/cloud/network/firewall/FirewallManagerImpl.java b/server/src/com/cloud/network/firewall/FirewallManagerImpl.java index 5b32c2fc89c..eba66fce50e 100644 --- a/server/src/com/cloud/network/firewall/FirewallManagerImpl.java +++ b/server/src/com/cloud/network/firewall/FirewallManagerImpl.java @@ -79,6 +79,7 @@ import com.cloud.user.UserContext; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; import com.cloud.utils.db.JoinBuilder; @@ -93,9 +94,8 @@ import com.cloud.vm.dao.UserVmDao; @Component @Local(value = { FirewallService.class, FirewallManager.class}) -public class FirewallManagerImpl implements FirewallService, FirewallManager, NetworkRuleApplier, Manager { +public class FirewallManagerImpl extends ManagerBase implements FirewallService, FirewallManager, NetworkRuleApplier { private static final Logger s_logger = Logger.getLogger(FirewallManagerImpl.class); - String _name; @Inject FirewallRulesDao _firewallDao; @@ -137,21 +137,6 @@ public class FirewallManagerImpl implements FirewallService, FirewallManager, Ne private boolean _elbEnabled = false; - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return _name; - } - @Override public boolean configure(String name, Map params) throws ConfigurationException { _name = name; diff --git a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java index fe24b280e74..65e55b5ab59 100755 --- a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java +++ b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java @@ -132,6 +132,7 @@ import com.cloud.uservm.UserVm; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; import com.cloud.utils.db.JoinBuilder; @@ -150,11 +151,9 @@ import com.google.gson.reflect.TypeToken; @Component @Local(value = { LoadBalancingRulesManager.class, LoadBalancingRulesService.class }) -public class LoadBalancingRulesManagerImpl implements LoadBalancingRulesManager, LoadBalancingRulesService, NetworkRuleApplier, Manager { +public class LoadBalancingRulesManagerImpl extends ManagerBase implements LoadBalancingRulesManager, LoadBalancingRulesService, NetworkRuleApplier { private static final Logger s_logger = Logger.getLogger(LoadBalancingRulesManagerImpl.class); - String _name; - @Inject NetworkManager _networkMgr; @Inject @@ -1324,27 +1323,6 @@ public class LoadBalancingRulesManagerImpl implements LoadBalancingRulesMa return dstList; } - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - return true; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return _name; - } - @Override @ActionEvent(eventType = EventTypes.EVENT_LOAD_BALANCER_UPDATE, eventDescription = "updating load balancer", async = true) public LoadBalancer updateLoadBalancerRule(UpdateLoadBalancerRuleCmd cmd) { diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 13558c147dd..b9c3b98c989 100755 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -209,6 +209,7 @@ import com.cloud.utils.Pair; import com.cloud.utils.PasswordGenerator; import com.cloud.utils.StringUtils; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; @@ -246,11 +247,10 @@ import com.cloud.vm.dao.VMInstanceDao; */ @Component @Local(value = { VirtualNetworkApplianceManager.class, VirtualNetworkApplianceService.class }) -public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplianceManager, VirtualNetworkApplianceService, +public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements VirtualNetworkApplianceManager, VirtualNetworkApplianceService, VirtualMachineGuru, Listener { private static final Logger s_logger = Logger.getLogger(VirtualNetworkApplianceManagerImpl.class); - String _name; @Inject DataCenterDao _dcDao = null; @Inject @@ -595,7 +595,6 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian @Override public boolean configure(final String name, final Map params) throws ConfigurationException { - _name = name; _executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("RouterMonitor")); _checkExecutor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("RouterStatusMonitor")); @@ -683,11 +682,6 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian return true; } - @Override - public String getName() { - return _name; - } - @Override public boolean start() { if (_routerStatsInterval > 0){ diff --git a/server/src/com/cloud/network/rules/RulesManagerImpl.java b/server/src/com/cloud/network/rules/RulesManagerImpl.java index 6608ebc9284..0062b262947 100755 --- a/server/src/com/cloud/network/rules/RulesManagerImpl.java +++ b/server/src/com/cloud/network/rules/RulesManagerImpl.java @@ -67,6 +67,7 @@ import com.cloud.uservm.UserVm; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; import com.cloud.utils.db.JoinBuilder; @@ -85,9 +86,8 @@ import com.cloud.vm.dao.UserVmDao; @Component @Local(value = { RulesManager.class, RulesService.class }) -public class RulesManagerImpl implements RulesManager, RulesService, Manager { +public class RulesManagerImpl extends ManagerBase implements RulesManager, RulesService { private static final Logger s_logger = Logger.getLogger(RulesManagerImpl.class); - String _name; @Inject PortForwardingRulesDao _portForwardingDao; @@ -1067,27 +1067,6 @@ public class RulesManagerImpl implements RulesManager, RulesService, Manager { return success && rules.size() == 0; } - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - return true; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return _name; - } - @Override public List listFirewallRulesByIp(long ipId) { return null; diff --git a/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java b/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java index 0895d4ef0fa..54864b3e06e 100755 --- a/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java +++ b/server/src/com/cloud/network/security/SecurityGroupManagerImpl.java @@ -89,6 +89,7 @@ import com.cloud.uservm.UserVm; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; @@ -112,7 +113,7 @@ import com.cloud.vm.dao.VMInstanceDao; import edu.emory.mathcs.backport.java.util.Collections; @Local(value = { SecurityGroupManager.class, SecurityGroupService.class }) -public class SecurityGroupManagerImpl implements SecurityGroupManager, SecurityGroupService, Manager, StateListener { +public class SecurityGroupManagerImpl extends ManagerBase implements SecurityGroupManager, SecurityGroupService, StateListener { public static final Logger s_logger = Logger.getLogger(SecurityGroupManagerImpl.class); @Inject diff --git a/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java b/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java index 431f1b9b36d..cb4486696de 100644 --- a/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java +++ b/server/src/com/cloud/network/vpc/NetworkACLManagerImpl.java @@ -56,6 +56,7 @@ import com.cloud.user.UserContext; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; import com.cloud.utils.db.JoinBuilder; @@ -69,8 +70,7 @@ import com.cloud.utils.net.NetUtils; @Component @Local(value = { NetworkACLService.class, NetworkACLManager.class}) -public class NetworkACLManagerImpl implements Manager,NetworkACLManager{ - String _name; +public class NetworkACLManagerImpl extends ManagerBase implements NetworkACLManager{ private static final Logger s_logger = Logger.getLogger(NetworkACLManagerImpl.class); @Inject @@ -86,29 +86,6 @@ public class NetworkACLManagerImpl implements Manager,NetworkACLManager{ @Inject ResourceTagDao _resourceTagDao; - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - return true; - } - - @Override - public boolean start() { - return true; - } - - - @Override - public boolean stop() { - return true; - } - - - @Override - public String getName() { - return _name; - } - @Override public boolean applyNetworkACLs(long networkId, Account caller) throws ResourceUnavailableException { List rules = _firewallDao.listByNetworkAndPurpose(networkId, Purpose.NetworkACL); diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java index 161369617a3..f065669b254 100644 --- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java +++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java @@ -103,6 +103,7 @@ import com.cloud.utils.Pair; import com.cloud.utils.Ternary; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; @@ -122,7 +123,7 @@ import com.cloud.vm.dao.DomainRouterDao; @Component @Local(value = { VpcManager.class, VpcService.class }) -public class VpcManagerImpl implements VpcManager, Manager{ +public class VpcManagerImpl extends ManagerBase implements VpcManager{ private static final Logger s_logger = Logger.getLogger(VpcManagerImpl.class); @Inject VpcOfferingDao _vpcOffDao; @@ -178,7 +179,6 @@ public class VpcManagerImpl implements VpcManager, Manager{ private VpcProvider vpcElement = null; private final List nonSupportedServices = Arrays.asList(Service.SecurityGroup, Service.Firewall); - String _name; int _cleanupInterval; int _maxNetworks; SearchBuilder IpAddressSearch; @@ -186,8 +186,6 @@ public class VpcManagerImpl implements VpcManager, Manager{ @Override @DB public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - //configure default vpc offering Transaction txn = Transaction.currentTxn(); txn.start(); @@ -245,11 +243,6 @@ public class VpcManagerImpl implements VpcManager, Manager{ return true; } - @Override - public String getName() { - return _name; - } - @Override public List getVpcNetworks(long vpcId) { return _ntwkDao.listByVpc(vpcId); diff --git a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java index 277203f2488..a99e332dc7a 100755 --- a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java +++ b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java @@ -72,6 +72,7 @@ import com.cloud.utils.Pair; import com.cloud.utils.PasswordGenerator; import com.cloud.utils.Ternary; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; import com.cloud.utils.db.JoinBuilder; @@ -83,9 +84,8 @@ import com.cloud.utils.net.NetUtils; @Component @Local(value = RemoteAccessVpnService.class) -public class RemoteAccessVpnManagerImpl implements RemoteAccessVpnService, Manager { +public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAccessVpnService { private final static Logger s_logger = Logger.getLogger(RemoteAccessVpnManagerImpl.class); - String _name; @Inject AccountDao _accountDao; @Inject VpnUserDao _vpnUsersDao; @@ -582,8 +582,6 @@ public class RemoteAccessVpnManagerImpl implements RemoteAccessVpnService, Manag @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - Map configs = _configDao.getConfiguration(params); _userLimit = NumbersUtil.parseInt(configs.get(Config.RemoteAccessVpnUserLimit.key()), 8); @@ -604,21 +602,6 @@ public class RemoteAccessVpnManagerImpl implements RemoteAccessVpnService, Manag return true; } - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return _name; - } - @Override public List listRemoteAccessVpns(long networkId) { return _remoteAccessVpnDao.listByNetworkId(networkId); diff --git a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java index e446366a8ab..a24300e02bf 100644 --- a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java +++ b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java @@ -70,6 +70,7 @@ import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; import com.cloud.utils.db.JoinBuilder; @@ -81,7 +82,7 @@ import com.cloud.vm.DomainRouterVO; @Component @Local(value = { Site2SiteVpnManager.class, Site2SiteVpnService.class } ) -public class Site2SiteVpnManagerImpl implements Site2SiteVpnManager, Manager { +public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpnManager { private static final Logger s_logger = Logger.getLogger(Site2SiteVpnManagerImpl.class); @Inject List _s2sProviders; @@ -101,8 +102,6 @@ public class Site2SiteVpnManagerImpl implements Site2SiteVpnManager, Manager { @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - Map configs = _configDao.getConfiguration(params); _connLimit = NumbersUtil.parseInt(configs.get(Config.Site2SiteVpnConnectionPerVpnGatewayLimit.key()), 4); _subnetsLimit = NumbersUtil.parseInt(configs.get(Config.Site2SiteVpnSubnetsPerCustomerGatewayLimit.key()), 10); @@ -110,21 +109,6 @@ public class Site2SiteVpnManagerImpl implements Site2SiteVpnManager, Manager { return true; } - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return _name; - } - @Override @ActionEvent(eventType = EventTypes.EVENT_S2S_VPN_GATEWAY_CREATE, eventDescription = "creating s2s vpn gateway", create=true) public Site2SiteVpnGateway createVpnGateway(CreateVpnGatewayCmd cmd) { diff --git a/server/src/com/cloud/projects/ProjectManagerImpl.java b/server/src/com/cloud/projects/ProjectManagerImpl.java index ebe6d0c464f..72ed940804f 100755 --- a/server/src/com/cloud/projects/ProjectManagerImpl.java +++ b/server/src/com/cloud/projects/ProjectManagerImpl.java @@ -74,6 +74,7 @@ import com.cloud.user.dao.AccountDao; import com.cloud.utils.DateUtil; import com.cloud.utils.NumbersUtil; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.Transaction; @@ -84,9 +85,8 @@ import com.sun.mail.smtp.SMTPTransport; @Component @Local(value = { ProjectService.class, ProjectManager.class }) -public class ProjectManagerImpl implements ProjectManager, Manager{ +public class ProjectManagerImpl extends ManagerBase implements ProjectManager { public static final Logger s_logger = Logger.getLogger(ProjectManagerImpl.class); - private String _name; private EmailInvite _emailInvite; @Inject @@ -127,8 +127,7 @@ public class ProjectManagerImpl implements ProjectManager, Manager{ @Override public boolean configure(final String name, final Map params) throws ConfigurationException { - _name = name; - + Map configs = _configDao.getConfiguration(params); _invitationRequired = Boolean.valueOf(configs.get(Config.ProjectInviteRequired.key())); @@ -169,11 +168,6 @@ public class ProjectManagerImpl implements ProjectManager, Manager{ return true; } - @Override - public String getName() { - return _name; - } - @Override @ActionEvent(eventType = EventTypes.EVENT_PROJECT_CREATE, eventDescription = "creating project", create=true) @DB diff --git a/server/src/com/cloud/resource/DummyHostDiscoverer.java b/server/src/com/cloud/resource/DummyHostDiscoverer.java index 905fccf9d70..800c1948f2f 100755 --- a/server/src/com/cloud/resource/DummyHostDiscoverer.java +++ b/server/src/com/cloud/resource/DummyHostDiscoverer.java @@ -30,14 +30,13 @@ import org.springframework.stereotype.Component; import com.cloud.host.HostVO; import com.cloud.hypervisor.Hypervisor; +import com.cloud.utils.component.AdapterBase; @Component @Local(value=Discoverer.class) -public class DummyHostDiscoverer implements Discoverer { +public class DummyHostDiscoverer extends AdapterBase implements Discoverer { private static final Logger s_logger = Logger.getLogger(DummyHostDiscoverer.class); - private String _name; - @Override public Map> find(long dcId, Long podId, Long clusterId, URI url, String username, String password, List hostTags) { if (!url.getScheme().equals("dummy")) { @@ -70,26 +69,6 @@ public class DummyHostDiscoverer implements Discoverer { return resources; } - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - return true; - } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - @Override public boolean matchHypervisor(String hypervisor) { return false; diff --git a/server/src/com/cloud/resource/DummyHostServerResource.java b/server/src/com/cloud/resource/DummyHostServerResource.java index d300f6b71ea..977dbbf6e19 100644 --- a/server/src/com/cloud/resource/DummyHostServerResource.java +++ b/server/src/com/cloud/resource/DummyHostServerResource.java @@ -164,4 +164,34 @@ public class DummyHostServerResource extends ServerResourceBase { String.valueOf((id >> 8) & 0xff) + "." + String.valueOf((id) & 0xff); } + + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } } diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java index a67cc4aa78b..8b74ee16647 100755 --- a/server/src/com/cloud/resource/ResourceManagerImpl.java +++ b/server/src/com/cloud/resource/ResourceManagerImpl.java @@ -137,6 +137,7 @@ import com.cloud.utils.Pair; import com.cloud.utils.StringUtils; import com.cloud.utils.UriUtils; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria.Op; @@ -156,13 +157,11 @@ import com.cloud.vm.dao.VMInstanceDao; @Component @Local({ ResourceManager.class, ResourceService.class }) -public class ResourceManagerImpl implements ResourceManager, ResourceService, +public class ResourceManagerImpl extends ManagerBase implements ResourceManager, ResourceService, Manager { private static final Logger s_logger = Logger .getLogger(ResourceManagerImpl.class); - private String _name; - @Inject AccountManager _accountMgr; @Inject @@ -1482,27 +1481,11 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; _defaultSystemVMHypervisor = HypervisorType.getType(_configDao .getValue(Config.SystemVMDefaultHypervisor.toString())); return true; } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return _name; - } - + @Override public List getSupportedHypervisorTypes(long zoneId, boolean forVirtualRouter, Long podId) { diff --git a/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java b/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java index 3566834cd75..7419690244f 100755 --- a/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java +++ b/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java @@ -70,6 +70,7 @@ import com.cloud.user.UserContext; import com.cloud.user.dao.AccountDao; import com.cloud.utils.NumbersUtil; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; @@ -84,10 +85,9 @@ import edu.emory.mathcs.backport.java.util.Arrays; @Component @Local(value = { ResourceLimitService.class }) -public class ResourceLimitManagerImpl implements ResourceLimitService, Manager { +public class ResourceLimitManagerImpl extends ManagerBase implements ResourceLimitService { public static final Logger s_logger = Logger.getLogger(ResourceLimitManagerImpl.class); - private String _name; @Inject private DomainDao _domainDao; @Inject @@ -131,11 +131,6 @@ public class ResourceLimitManagerImpl implements ResourceLimitService, Manager { Map accountResourceLimitMap = new EnumMap(ResourceType.class); Map projectResourceLimitMap = new EnumMap(ResourceType.class); - @Override - public String getName() { - return _name; - } - @Override public boolean start() { if (_resourceCountCheckInterval > 0) { @@ -151,7 +146,6 @@ public class ResourceLimitManagerImpl implements ResourceLimitService, Manager { @Override public boolean configure(final String name, final Map params) throws ConfigurationException { - _name = name; ResourceCountSearch = _resourceCountDao.createSearchBuilder(); ResourceCountSearch.and("id", ResourceCountSearch.entity().getId(), SearchCriteria.Op.IN); diff --git a/server/src/com/cloud/server/ConfigurationServerImpl.java b/server/src/com/cloud/server/ConfigurationServerImpl.java index 75a2af7596a..b55e94967e8 100755 --- a/server/src/com/cloud/server/ConfigurationServerImpl.java +++ b/server/src/com/cloud/server/ConfigurationServerImpl.java @@ -40,6 +40,7 @@ import java.util.regex.Pattern; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.inject.Inject; +import javax.naming.ConfigurationException; import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Logger; @@ -96,6 +97,8 @@ import com.cloud.user.User; import com.cloud.user.dao.AccountDao; import com.cloud.utils.PasswordGenerator; import com.cloud.utils.PropertiesUtil; +import com.cloud.utils.component.ComponentLifecycle; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.crypt.DBEncryptionUtil; import com.cloud.utils.db.DB; import com.cloud.utils.db.Transaction; @@ -104,8 +107,8 @@ import com.cloud.utils.net.NetUtils; import com.cloud.utils.script.Script; import com.cloud.uuididentity.dao.IdentityDao; -//@Component -public class ConfigurationServerImpl implements ConfigurationServer { +@Component +public class ConfigurationServerImpl extends ManagerBase implements ConfigurationServer { public static final Logger s_logger = Logger.getLogger(ConfigurationServerImpl.class.getName()); @Inject private ConfigurationDao _configDao; @@ -125,7 +128,20 @@ public class ConfigurationServerImpl implements ConfigurationServer { @Inject private IdentityDao _identityDao; public ConfigurationServerImpl() { + setRunLevel(ComponentLifecycle.RUN_LEVEL_FRAMEWORK_BOOTSTRAP); } + + @Override + public boolean configure(String name, Map params) + throws ConfigurationException { + + try { + persistDefaultValues(); + } catch (InternalErrorException e) { + throw new RuntimeException("Unhandled configuration exception", e); + } + return true; + } @Override @DB diff --git a/server/src/com/cloud/server/ManagementServer.java b/server/src/com/cloud/server/ManagementServer.java index 8655d15025e..5c34deea53b 100755 --- a/server/src/com/cloud/server/ManagementServer.java +++ b/server/src/com/cloud/server/ManagementServer.java @@ -39,8 +39,6 @@ public interface ManagementServer extends ManagementService, PluggableService { */ long getId(); - void startup(); - /** * Fetches the version of cloud stack */ diff --git a/server/src/com/cloud/server/ManagementServerExtImpl.java b/server/src/com/cloud/server/ManagementServerExtImpl.java index c9ef91d272d..52ad3dfa848 100644 --- a/server/src/com/cloud/server/ManagementServerExtImpl.java +++ b/server/src/com/cloud/server/ManagementServerExtImpl.java @@ -23,8 +23,8 @@ import java.util.List; import java.util.Map; import java.util.TimeZone; -import javax.annotation.PostConstruct; import javax.inject.Inject; +import javax.naming.ConfigurationException; import com.cloud.api.commands.GenerateUsageRecordsCmd; import com.cloud.api.commands.GetUsageRecordsCmd; @@ -32,7 +32,6 @@ import com.cloud.domain.dao.DomainDao; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.projects.Project; -import com.cloud.utils.PropertiesUtil; import org.apache.cloudstack.api.response.UsageTypeResponse; import com.cloud.usage.UsageJobVO; @@ -58,16 +57,16 @@ public class ManagementServerExtImpl extends ManagementServerImpl implements Man public ManagementServerExtImpl() { } - @PostConstruct - void init() { - super.init(); - + @Override + public boolean configure(String name, Map params) throws ConfigurationException { + super.configure(name, params); Map configs = getConfigs(); - String timeZoneStr = configs.get("usage.aggregation.timezone"); - if (timeZoneStr == null) { + String timeZoneStr = configs.get("usage.aggregation.timezone"); + if (timeZoneStr == null) { timeZoneStr = "GMT"; - } - _usageTimezone = TimeZone.getTimeZone(timeZoneStr); + } + _usageTimezone = TimeZone.getTimeZone(timeZoneStr); + return true; } @Override diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index 556f3f0bc49..b6bc0627d69 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -46,6 +46,7 @@ import javax.management.InstanceAlreadyExistsException; import javax.management.MBeanRegistrationException; import javax.management.MalformedObjectNameException; import javax.management.NotCompliantMBeanException; +import javax.naming.ConfigurationException; import com.cloud.storage.dao.*; import org.apache.cloudstack.acl.SecurityChecker.AccessType; @@ -142,6 +143,7 @@ import com.cloud.event.EventUtils; import com.cloud.event.EventVO; import com.cloud.event.dao.EventDao; import com.cloud.exception.ConcurrentOperationException; +import com.cloud.exception.InternalErrorException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.OperationTimedoutException; import com.cloud.exception.PermissionDeniedException; @@ -218,7 +220,9 @@ import com.cloud.utils.PasswordGenerator; import com.cloud.utils.Ternary; import com.cloud.utils.component.Adapter; import com.cloud.utils.component.ComponentContext; +import com.cloud.utils.component.ComponentLifecycle; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.component.SystemIntegrityChecker; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.crypt.DBEncryptionUtil; @@ -258,7 +262,7 @@ import com.cloud.vm.dao.VMInstanceDao; import edu.emory.mathcs.backport.java.util.Arrays; import edu.emory.mathcs.backport.java.util.Collections; -public class ManagementServerImpl implements ManagementServer { +public class ManagementServerImpl extends ManagerBase implements ManagementServer { public static final Logger s_logger = Logger.getLogger(ManagementServerImpl.class.getName()); @Inject @@ -372,12 +376,13 @@ public class ManagementServerImpl implements ManagementServer { @Inject S3Manager _s3Mgr; +/* @Inject ComponentContext _forceContextRef; // create a dependency to ComponentContext so that it can be loaded beforehead @Inject EventUtils _forceEventUtilsRef; - +*/ private final ScheduledExecutorService _eventExecutor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("EventChecker")); private KeystoreManager _ksMgr; @@ -391,11 +396,14 @@ public class ManagementServerImpl implements ManagementServer { private String _hashKey = null; public ManagementServerImpl() { + setRunLevel(ComponentLifecycle.RUN_LEVEL_APPLICATION_MAINLOOP); } - @PostConstruct - void init() { - _configs = _configDao.getConfiguration(); + @Override + public boolean configure(String name, Map params) + throws ConfigurationException { + + _configs = _configDao.getConfiguration(); String value = _configs.get("event.purge.interval"); int cleanup = NumbersUtil.parseInt(value, 60 * 60 * 24); // 1 day. @@ -410,142 +418,16 @@ public class ManagementServerImpl implements ManagementServer { for (String id : availableIds) { _availableIdsMap.put(id, true); } - } - + + return true; + } + @Override - public void startup() { + public boolean start() { s_logger.info("Startup CloudStack management server..."); - initCloudStackComponents(); - } - - private void initCloudStackComponents() { - runCheckers(); - startDaos(); // daos should not be using managers and adapters. - - Map avoidMap = new HashMap(); - startManagers(avoidMap); - startAdapters(avoidMap); - } - - private void runCheckers() { - Map checkers = ComponentContext.getApplicationContext().getBeansOfType( - SystemIntegrityChecker.class); - - for (SystemIntegrityChecker checker : checkers.values()) { - try { - checker.check(); - } catch (Exception e) { - s_logger.error("Problems with running checker:" + ComponentContext.getTargetClass(checker).getName(), e); - System.exit(1); - } - } - } - - private void startDaos() { - @SuppressWarnings("rawtypes") - Map daos = ComponentContext.getApplicationContext().getBeansOfType( - GenericDaoBase.class); - - for (GenericDaoBase dao : daos.values()) { - try { - s_logger.info("Starting dao " + ComponentContext.getTargetClass(dao).getName()); - dao.configure(dao.getClass().getSimpleName(), dao.getConfigParams()); - } catch (Exception e) { - s_logger.error("Problems with running checker:" + ComponentContext.getTargetClass(dao).getName(), e); - System.exit(1); - } - } - } - - private void startManagers(Map avoidMap) { - Map params = new HashMap(); - - // make sure startup sequence is maintained - try { - _clusterMgr.configure("ClusterMgr", params); - _clusterMgr.start(); - - avoidMap.put(ComponentContext.getTargetClass(_clusterMgr).getName(), _clusterMgr); - } catch(Exception e) { - s_logger.error("Problems to start manager:" + ComponentContext.getTargetClass(_clusterMgr).getName(), e); - System.exit(1); - } - - for(Manager manager : ComponentContext.getComponentsOfType(Manager.class).values()) { - s_logger.info("Start manager: " + ComponentContext.getTargetClass(manager).getName() + "..."); - try { - if(avoidMap.get(ComponentContext.getTargetClass(manager).getName()) != null) { - s_logger.info("Skip manager: " + ComponentContext.getTargetClass(manager).getName() + " as it is already started"); - continue; - } - - if(!manager.configure(manager.getClass().getSimpleName(), params)) { - throw new CloudRuntimeException("Failed to start manager: " + ComponentContext.getTargetClass(manager).getName()); - } - - if (!manager.start()) { - throw new CloudRuntimeException("Failed to start manager: " + ComponentContext.getTargetClass(manager).getName()); - } - avoidMap.put(ComponentContext.getTargetClass(manager).getName(), manager); - - if (manager instanceof ManagementBean) { - registerMBean((ManagementBean) manager); - } - } catch (Exception e) { - s_logger.error("Problems to start manager:" + ComponentContext.getTargetClass(manager).getName(), e); - System.exit(1); - } - } - } - - private void startAdapters(Map avoidMap) { - @SuppressWarnings("rawtypes") - Map adapters = ComponentContext.getApplicationContext().getBeansOfType( - Adapter.class); - - Map params = new HashMap(); - - for(Adapter adapter : adapters.values()) { - try { - s_logger.info("Start adapter: " + ComponentContext.getTargetClass(adapter).getName() + "..."); - - if(avoidMap.get(ComponentContext.getTargetClass(adapter).getName()) != null) { - s_logger.info("Skip adapter: " + ComponentContext.getTargetClass(adapter).getName() + " as it is already started"); - continue; - } - - if(!adapter.configure(adapter.getName(), params)) { - throw new CloudRuntimeException("Failed to configure adapter: " + ComponentContext.getTargetClass(adapter).getName()); - } - if (!adapter.start()) { - throw new CloudRuntimeException("Failed to start adapter: " + ComponentContext.getTargetClass(adapter).getName()); - } - - avoidMap.put(ComponentContext.getTargetClass(adapter).getName(), adapter); - - if (adapter instanceof ManagementBean) { - registerMBean((ManagementBean) adapter); - } - } catch (Exception e) { - s_logger.error("Problems to start adapter:" + ComponentContext.getTargetClass(adapter).getName(), e); - System.exit(1); - } - } - } - - protected void registerMBean(ManagementBean mbean) { - try { - JmxUtil.registerMBean(mbean); - } catch (MalformedObjectNameException e) { - s_logger.warn("Unable to register MBean: " + mbean.getName(), e); - } catch (InstanceAlreadyExistsException e) { - s_logger.warn("Unable to register MBean: " + mbean.getName(), e); - } catch (MBeanRegistrationException e) { - s_logger.warn("Unable to register MBean: " + mbean.getName(), e); - } catch (NotCompliantMBeanException e) { - s_logger.warn("Unable to register MBean: " + mbean.getName(), e); - } - s_logger.info("Registered MBean: " + mbean.getName()); + + enableAdminUser("password"); + return true; } protected Map getConfigs() { diff --git a/server/src/com/cloud/servlet/CloudStartupServlet.java b/server/src/com/cloud/servlet/CloudStartupServlet.java index 6401ff163a9..46be09387ba 100755 --- a/server/src/com/cloud/servlet/CloudStartupServlet.java +++ b/server/src/com/cloud/servlet/CloudStartupServlet.java @@ -16,57 +16,25 @@ // under the License. package com.cloud.servlet; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; +import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import org.apache.log4j.Logger; import org.springframework.web.context.support.SpringBeanAutowiringSupport; -import com.cloud.exception.InvalidParameterValueException; -import com.cloud.server.ConfigurationServer; -import com.cloud.server.ManagementServer; import com.cloud.utils.LogUtils; import com.cloud.utils.SerialVersionUID; import com.cloud.utils.component.ComponentContext; -public class CloudStartupServlet extends HttpServlet implements ServletContextListener { +public class CloudStartupServlet extends HttpServlet { public static final Logger s_logger = Logger.getLogger(CloudStartupServlet.class.getName()); - static final long serialVersionUID = SerialVersionUID.CloudStartupServlet; - + @Override - public void init() throws ServletException { + public void init(ServletConfig config) throws ServletException { LogUtils.initLog4j("log4j-cloud.xml"); - ConfigurationServer c = (ConfigurationServer)ComponentContext.getComponent(ConfigurationServer.Name); - try { - c.persistDefaultValues(); - ManagementServer ms = (ManagementServer)ComponentContext.getComponent(ManagementServer.Name); - ms.startup(); - ms.enableAdminUser("password"); - //ApiServer.initApiServer(); - } catch (InvalidParameterValueException ipve) { - s_logger.error("Exception starting management server ", ipve); - throw new ServletException (ipve.getMessage()); - } catch (Exception e) { - s_logger.error("Exception starting management server ", e); - throw new ServletException (e.getMessage()); - } - } - - @Override - public void contextInitialized(ServletContextEvent sce) { - try { - SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, sce.getServletContext()); - init(); - } catch (ServletException e) { - s_logger.error("Exception starting management server ", e); - throw new RuntimeException(e); - } - } - - @Override - public void contextDestroyed(ServletContextEvent sce) { + SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext()); + ComponentContext.initComponentsLifeCycle(); } } diff --git a/server/src/com/cloud/storage/OCFS2ManagerImpl.java b/server/src/com/cloud/storage/OCFS2ManagerImpl.java index fb73dc4db98..6bbeec40551 100755 --- a/server/src/com/cloud/storage/OCFS2ManagerImpl.java +++ b/server/src/com/cloud/storage/OCFS2ManagerImpl.java @@ -45,6 +45,7 @@ import com.cloud.storage.Storage.StoragePoolType; import com.cloud.storage.dao.StoragePoolDao; import com.cloud.storage.dao.StoragePoolHostDao; import com.cloud.utils.Ternary; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria2; import com.cloud.utils.db.SearchCriteriaService; @@ -52,8 +53,7 @@ import com.cloud.utils.exception.CloudRuntimeException; @Component @Local(value ={OCFS2Manager.class}) -public class OCFS2ManagerImpl implements OCFS2Manager, ResourceListener { - String _name; +public class OCFS2ManagerImpl extends ManagerBase implements OCFS2Manager, ResourceListener { private static final Logger s_logger = Logger.getLogger(OCFS2ManagerImpl.class); @Inject ClusterDetailsDao _clusterDetailsDao; @@ -66,7 +66,6 @@ public class OCFS2ManagerImpl implements OCFS2Manager, ResourceListener { @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; return true; } @@ -82,11 +81,6 @@ public class OCFS2ManagerImpl implements OCFS2Manager, ResourceListener { return true; } - @Override - public String getName() { - return _name; - } - private List> marshalNodes(List hosts) { Integer i = 0; List> lst = new ArrayList>(); diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index fc5c135ebc9..2c59739ed6d 100755 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -177,6 +177,7 @@ import com.cloud.utils.Pair; import com.cloud.utils.UriUtils; import com.cloud.utils.component.ComponentContext; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.GenericSearchBuilder; @@ -211,7 +212,7 @@ import com.cloud.vm.dao.VMInstanceDao; @Component @Local(value = { StorageManager.class, StorageService.class }) -public class StorageManagerImpl implements StorageManager, Manager, ClusterManagerListener { +public class StorageManagerImpl extends ManagerBase implements StorageManager, ClusterManagerListener { private static final Logger s_logger = Logger.getLogger(StorageManagerImpl.class); protected String _name; @@ -941,7 +942,6 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; Map configs = _configDao.getConfiguration("management-server", params); @@ -1200,11 +1200,6 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag return _configMgr.listToCsvTags(_storagePoolDao.searchForStoragePoolDetails(poolId, "true")); } - @Override - public String getName() { - return _name; - } - @Override public boolean start() { if (_storageCleanupEnabled) { diff --git a/server/src/com/cloud/storage/download/DownloadMonitorImpl.java b/server/src/com/cloud/storage/download/DownloadMonitorImpl.java index 3c3baceddeb..2f8d75702fc 100755 --- a/server/src/com/cloud/storage/download/DownloadMonitorImpl.java +++ b/server/src/com/cloud/storage/download/DownloadMonitorImpl.java @@ -93,6 +93,7 @@ import com.cloud.storage.template.TemplateConstants; import com.cloud.storage.template.TemplateInfo; import com.cloud.user.Account; import com.cloud.user.ResourceLimitService; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.JoinBuilder; import com.cloud.utils.db.SearchBuilder; @@ -110,7 +111,7 @@ import edu.emory.mathcs.backport.java.util.Collections; @Component @Local(value={DownloadMonitor.class}) -public class DownloadMonitorImpl implements DownloadMonitor { +public class DownloadMonitorImpl extends ManagerBase implements DownloadMonitor { static final Logger s_logger = Logger.getLogger(DownloadMonitorImpl.class); @Inject @@ -165,7 +166,6 @@ public class DownloadMonitorImpl implements DownloadMonitor { @Inject protected ResourceLimitService _resourceLimitMgr; - private String _name; private Boolean _sslCopy = new Boolean(false); private String _copyAuthPasswd; private String _proxy = null; @@ -183,7 +183,6 @@ public class DownloadMonitorImpl implements DownloadMonitor { @Override public boolean configure(String name, Map params) { - _name = name; final Map configs = _configDao.getConfiguration("ManagementServer", params); _sslCopy = Boolean.parseBoolean(configs.get("secstorage.encrypt.copy")); _proxy = configs.get(Config.SecStorageProxy.key()); @@ -213,11 +212,6 @@ public class DownloadMonitorImpl implements DownloadMonitor { return true; } - @Override - public String getName() { - return _name; - } - @Override public boolean start() { _timer = new Timer(); diff --git a/server/src/com/cloud/storage/resource/DummySecondaryStorageResource.java b/server/src/com/cloud/storage/resource/DummySecondaryStorageResource.java index 9e76e8a0720..877b97c185d 100644 --- a/server/src/com/cloud/storage/resource/DummySecondaryStorageResource.java +++ b/server/src/com/cloud/storage/resource/DummySecondaryStorageResource.java @@ -184,4 +184,34 @@ public class DummySecondaryStorageResource extends ServerResourceBase implements } return tmpltInfo; } + + @Override + public void setName(String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setConfigParams(Map params) { + // TODO Auto-generated method stub + + } + + @Override + public Map getConfigParams() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getRunLevel() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void setRunLevel(int level) { + // TODO Auto-generated method stub + + } } diff --git a/server/src/com/cloud/storage/s3/S3ManagerImpl.java b/server/src/com/cloud/storage/s3/S3ManagerImpl.java index 16e2ad900db..13fe2b76ed1 100644 --- a/server/src/com/cloud/storage/s3/S3ManagerImpl.java +++ b/server/src/com/cloud/storage/s3/S3ManagerImpl.java @@ -78,18 +78,17 @@ import com.cloud.storage.dao.VMTemplateS3Dao; import com.cloud.storage.dao.VMTemplateZoneDao; import com.cloud.storage.secondary.SecondaryStorageVmManager; import com.cloud.utils.S3Utils.ClientOptions; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.Filter; import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.exception.CloudRuntimeException; @Component @Local(value = { S3Manager.class }) -public class S3ManagerImpl implements S3Manager { +public class S3ManagerImpl extends ManagerBase implements S3Manager { private static final Logger LOGGER = Logger.getLogger(S3ManagerImpl.class); - private String name; - @Inject private AgentManager agentManager; @@ -474,10 +473,7 @@ public class S3ManagerImpl implements S3Manager { LOGGER.info(format("Configuring S3 Manager %1$s", name)); } - this.name = name; - return true; - } @Override @@ -492,11 +488,6 @@ public class S3ManagerImpl implements S3Manager { return true; } - @Override - public String getName() { - return this.name; - } - @Override public void propagateTemplateToAllZones(final VMTemplateS3VO vmTemplateS3VO) { diff --git a/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java b/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java index 5a5e2fdc3f0..fca89dcb1cb 100755 --- a/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java +++ b/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java @@ -114,6 +114,7 @@ import com.cloud.user.UserContext; import com.cloud.utils.DateUtil; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.GlobalLock; import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria2; @@ -158,7 +159,7 @@ import com.cloud.vm.dao.VMInstanceDao; // because sooner or later, it will be driven into Running state // @Local(value = { SecondaryStorageVmManager.class }) -public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, VirtualMachineGuru, SystemVmLoadScanHandler, ResourceStateAdapter { +public class SecondaryStorageManagerImpl extends ManagerBase implements SecondaryStorageVmManager, VirtualMachineGuru, SystemVmLoadScanHandler, ResourceStateAdapter { private static final Logger s_logger = Logger.getLogger(SecondaryStorageManagerImpl.class); private static final int DEFAULT_CAPACITY_SCAN_INTERVAL = 30000; // 30 @@ -171,7 +172,6 @@ public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, V private String _mgmt_host; private int _mgmt_port = 8250; - private String _name; @Inject private List _ssVmAllocators; @@ -768,10 +768,6 @@ public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, V return aggregator.getZoneHostInfoMap(); } - @Override - public String getName() { - return _name; - } @Override public boolean start() { @@ -796,8 +792,6 @@ public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, V s_logger.info("Start configuring secondary storage vm manager : " + name); } - _name = name; - Map configs = _configDao.getConfiguration("management-server", params); _secStorageVmMtuSize = NumbersUtil.parseInt(configs.get("secstorage.vm.mtu.size"), DEFAULT_SS_VM_MTUSIZE); diff --git a/server/src/com/cloud/storage/secondary/SecondaryStorageVmDefaultAllocator.java b/server/src/com/cloud/storage/secondary/SecondaryStorageVmDefaultAllocator.java index 635f6648240..7bc80a005d1 100644 --- a/server/src/com/cloud/storage/secondary/SecondaryStorageVmDefaultAllocator.java +++ b/server/src/com/cloud/storage/secondary/SecondaryStorageVmDefaultAllocator.java @@ -25,11 +25,12 @@ import javax.naming.ConfigurationException; import org.springframework.stereotype.Component; +import com.cloud.utils.component.AdapterBase; import com.cloud.vm.SecondaryStorageVmVO; @Component @Local(value={SecondaryStorageVmAllocator.class}) -public class SecondaryStorageVmDefaultAllocator implements SecondaryStorageVmAllocator { +public class SecondaryStorageVmDefaultAllocator extends AdapterBase implements SecondaryStorageVmAllocator { private String _name; private Random _rand = new Random(System.currentTimeMillis()); @@ -40,32 +41,4 @@ public class SecondaryStorageVmDefaultAllocator implements SecondaryStorageVmAll return candidates.get(_rand.nextInt(candidates.size())); return null; } - - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - /* _name = name; - ComponentLocator locator = ComponentLocator.getCurrentLocator(); - ConfigurationDao configDao = locator.getDao(ConfigurationDao.class); - if (configDao == null) { - throw new ConfigurationException("Unable to get the configuration dao."); - } - */ - - return true; - } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } } diff --git a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java index 1209d5cb752..4ad43cc7908 100755 --- a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java +++ b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java @@ -117,6 +117,7 @@ import com.cloud.utils.Pair; import com.cloud.utils.Ternary; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; import com.cloud.utils.db.JoinBuilder; @@ -132,7 +133,7 @@ import com.cloud.vm.dao.UserVmDao; @Component @Local(value = { SnapshotManager.class, SnapshotService.class }) -public class SnapshotManagerImpl implements SnapshotManager, SnapshotService, Manager { +public class SnapshotManagerImpl extends ManagerBase implements SnapshotManager, SnapshotService { private static final Logger s_logger = Logger.getLogger(SnapshotManagerImpl.class); @Inject protected VMTemplateDao _templateDao; @@ -193,7 +194,6 @@ public class SnapshotManagerImpl implements SnapshotManager, SnapshotService, Ma @Inject private ConfigurationDao _configDao; - String _name; private int _totalRetries; private int _pauseInterval; private int _deltaSnapshotMax; @@ -1434,8 +1434,7 @@ public class SnapshotManagerImpl implements SnapshotManager, SnapshotService, Ma @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - + String value = _configDao.getValue(Config.BackupSnapshotWait.toString()); _backupsnapshotwait = NumbersUtil.parseInt(value, Integer.parseInt(Config.BackupSnapshotWait.getDefaultValue())); @@ -1452,11 +1451,6 @@ public class SnapshotManagerImpl implements SnapshotManager, SnapshotService, Ma return true; } - @Override - public String getName() { - return _name; - } - @Override public boolean start() { return true; diff --git a/server/src/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java b/server/src/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java index 18dc1f9d053..cbd2933a1a7 100644 --- a/server/src/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java +++ b/server/src/com/cloud/storage/snapshot/SnapshotSchedulerImpl.java @@ -56,6 +56,7 @@ import com.cloud.utils.DateUtil; import com.cloud.utils.DateUtil.IntervalType; import com.cloud.utils.NumbersUtil; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.TestClock; import com.cloud.utils.db.DB; import com.cloud.utils.db.GlobalLock; @@ -64,10 +65,9 @@ import com.cloud.utils.db.SearchCriteria; @Component @Local(value={SnapshotScheduler.class}) -public class SnapshotSchedulerImpl implements SnapshotScheduler { +public class SnapshotSchedulerImpl extends ManagerBase implements SnapshotScheduler { private static final Logger s_logger = Logger.getLogger(SnapshotSchedulerImpl.class); - private String _name = null; @Inject protected AsyncJobDao _asyncJobDao; @Inject protected SnapshotDao _snapshotDao; @Inject protected SnapshotScheduleDao _snapshotScheduleDao; @@ -335,7 +335,6 @@ public class SnapshotSchedulerImpl implements SnapshotScheduler { @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; _snapshotPollInterval = NumbersUtil.parseInt(_configDao.getValue("snapshot.poll.interval"), 300); boolean snapshotsRecurringTest = Boolean.parseBoolean(_configDao.getValue("snapshot.recurring.test")); @@ -357,11 +356,6 @@ public class SnapshotSchedulerImpl implements SnapshotScheduler { return true; } - @Override - public String getName() { - return _name; - } - @Override @DB public boolean start() { // reschedule all policies after management restart diff --git a/server/src/com/cloud/storage/swift/SwiftManagerImpl.java b/server/src/com/cloud/storage/swift/SwiftManagerImpl.java index 01e2955b540..5a7f01ab20b 100644 --- a/server/src/com/cloud/storage/swift/SwiftManagerImpl.java +++ b/server/src/com/cloud/storage/swift/SwiftManagerImpl.java @@ -53,6 +53,7 @@ import com.cloud.storage.dao.VMTemplateHostDao; import com.cloud.storage.dao.VMTemplateSwiftDao; import com.cloud.storage.dao.VMTemplateZoneDao; import com.cloud.utils.Pair; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.Filter; import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria.Op; @@ -62,10 +63,9 @@ import com.cloud.utils.exception.CloudRuntimeException; @Component @Local(value = { SwiftManager.class }) -public class SwiftManagerImpl implements SwiftManager { +public class SwiftManagerImpl extends ManagerBase implements SwiftManager { private static final Logger s_logger = Logger.getLogger(SwiftManagerImpl.class); - private String _name; @Inject private SwiftDao _swiftDao; @Inject @@ -120,11 +120,6 @@ public class SwiftManagerImpl implements SwiftManager { return swift; } - @Override - public String getName() { - return _name; - } - @Override public boolean start() { if (s_logger.isInfoEnabled()) { @@ -288,8 +283,6 @@ public class SwiftManagerImpl implements SwiftManager { s_logger.info("Start configuring Swift Manager : " + name); } - _name = name; - return true; } diff --git a/server/src/com/cloud/storage/upload/UploadMonitorImpl.java b/server/src/com/cloud/storage/upload/UploadMonitorImpl.java index 8052287c290..77f0d209918 100755 --- a/server/src/com/cloud/storage/upload/UploadMonitorImpl.java +++ b/server/src/com/cloud/storage/upload/UploadMonitorImpl.java @@ -65,6 +65,7 @@ import com.cloud.storage.dao.VMTemplateDao; import com.cloud.storage.dao.VMTemplateHostDao; import com.cloud.storage.secondary.SecondaryStorageVmManager; import com.cloud.utils.NumbersUtil; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.GlobalLock; import com.cloud.utils.exception.CloudRuntimeException; @@ -78,7 +79,7 @@ import com.cloud.vm.dao.SecondaryStorageVmDao; */ @Component @Local(value={UploadMonitor.class}) -public class UploadMonitorImpl implements UploadMonitor { +public class UploadMonitorImpl extends ManagerBase implements UploadMonitor { static final Logger s_logger = Logger.getLogger(UploadMonitorImpl.class); @@ -343,7 +344,6 @@ public class UploadMonitorImpl implements UploadMonitor { @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; final Map configs = _configDao.getConfiguration("ManagementServer", params); _sslCopy = Boolean.parseBoolean(configs.get("secstorage.encrypt.copy")); @@ -365,11 +365,6 @@ public class UploadMonitorImpl implements UploadMonitor { return true; } - @Override - public String getName() { - return _name; - } - @Override public boolean start() { _executor.scheduleWithFixedDelay(new StorageGarbageCollector(), _cleanupInterval, _cleanupInterval, TimeUnit.SECONDS); diff --git a/server/src/com/cloud/tags/TaggedResourceManagerImpl.java b/server/src/com/cloud/tags/TaggedResourceManagerImpl.java index a5fb8a0bcac..e44343dda8e 100644 --- a/server/src/com/cloud/tags/TaggedResourceManagerImpl.java +++ b/server/src/com/cloud/tags/TaggedResourceManagerImpl.java @@ -62,6 +62,7 @@ import com.cloud.user.UserContext; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.DbUtil; import com.cloud.utils.db.Filter; @@ -76,9 +77,8 @@ import com.cloud.vm.dao.UserVmDao; @Component @Local(value = { TaggedResourceService.class}) -public class TaggedResourceManagerImpl implements TaggedResourceService, Manager{ +public class TaggedResourceManagerImpl extends ManagerBase implements TaggedResourceService { public static final Logger s_logger = Logger.getLogger(TaggedResourceManagerImpl.class); - private String _name; private static Map> _daoMap= new HashMap>(); @@ -124,7 +124,6 @@ public class TaggedResourceManagerImpl implements TaggedResourceService, Manager @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; _daoMap.put(TaggedResourceType.UserVm, _userVmDao); _daoMap.put(TaggedResourceType.Volume, _volumeDao); _daoMap.put(TaggedResourceType.Template, _templateDao); @@ -154,12 +153,6 @@ public class TaggedResourceManagerImpl implements TaggedResourceService, Manager return true; } - @Override - public String getName() { - return _name; - } - - private Long getResourceId(String resourceId, TaggedResourceType resourceType) { GenericDao dao = _daoMap.get(resourceType); if (dao == null) { diff --git a/server/src/com/cloud/template/TemplateAdapterBase.java b/server/src/com/cloud/template/TemplateAdapterBase.java index d97f05dcca0..fa677acdc5c 100755 --- a/server/src/com/cloud/template/TemplateAdapterBase.java +++ b/server/src/com/cloud/template/TemplateAdapterBase.java @@ -58,12 +58,12 @@ import com.cloud.user.UserVO; import com.cloud.user.dao.AccountDao; import com.cloud.user.dao.UserDao; import com.cloud.utils.EnumUtils; +import com.cloud.utils.component.AdapterBase; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.UserVmVO; -public abstract class TemplateAdapterBase implements TemplateAdapter { +public abstract class TemplateAdapterBase extends AdapterBase implements TemplateAdapter { private final static Logger s_logger = Logger.getLogger(TemplateAdapterBase.class); - protected String _name; protected @Inject DomainDao _domainDao; protected @Inject AccountDao _accountDao; protected @Inject ConfigurationDao _configDao; @@ -77,26 +77,6 @@ public abstract class TemplateAdapterBase implements TemplateAdapter { protected @Inject HostDao _hostDao; protected @Inject ResourceLimitService _resourceLimitMgr; - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - return true; - } - - @Override - public String getName() { - return _name; - } - - public void setName(String name) { - _name = name; - } - - @Override - public boolean start() { - return true; - } - @Override public boolean stop() { return true; diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java b/server/src/com/cloud/template/TemplateManagerImpl.java index 1ce9578408f..0a464148960 100755 --- a/server/src/com/cloud/template/TemplateManagerImpl.java +++ b/server/src/com/cloud/template/TemplateManagerImpl.java @@ -131,6 +131,7 @@ import com.cloud.user.dao.UserDao; import com.cloud.uservm.UserVm; import com.cloud.utils.NumbersUtil; import com.cloud.utils.component.AdapterBase; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.component.Manager; import com.cloud.utils.concurrency.NamedThreadFactory; @@ -150,9 +151,8 @@ import com.cloud.vm.dao.VMInstanceDao; @Component @Local(value={TemplateManager.class, TemplateService.class}) -public class TemplateManagerImpl implements TemplateManager, Manager, TemplateService { +public class TemplateManagerImpl extends ManagerBase implements TemplateManager, TemplateService { private final static Logger s_logger = Logger.getLogger(TemplateManagerImpl.class); - String _name; @Inject VMTemplateDao _tmpltDao; @Inject VMTemplateHostDao _tmpltHostDao; @Inject VMTemplatePoolDao _tmpltPoolDao; @@ -1010,11 +1010,6 @@ public class TemplateManagerImpl implements TemplateManager, Manager, TemplateSe } } - @Override - public String getName() { - return _name; - } - private Runnable getSwiftTemplateSyncTask() { return new Runnable() { @Override @@ -1064,7 +1059,6 @@ public class TemplateManagerImpl implements TemplateManager, Manager, TemplateSe @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; final Map configs = _configDao.getConfiguration("AgentManager", params); _routerTemplateId = NumbersUtil.parseInt(configs.get("router.template.id"), 1); diff --git a/server/src/com/cloud/upgrade/DatabaseIntegrityChecker.java b/server/src/com/cloud/upgrade/DatabaseIntegrityChecker.java index 1905bb3c2f8..50eb47be027 100755 --- a/server/src/com/cloud/upgrade/DatabaseIntegrityChecker.java +++ b/server/src/com/cloud/upgrade/DatabaseIntegrityChecker.java @@ -29,8 +29,9 @@ import org.springframework.stereotype.Component; import com.cloud.maint.Version; import com.cloud.upgrade.dao.VersionDao; -import com.cloud.upgrade.dao.VersionDaoImpl; +import com.cloud.utils.component.AdapterBase; +import com.cloud.utils.component.ComponentLifecycle; import com.cloud.utils.component.SystemIntegrityChecker; import com.cloud.utils.db.GlobalLock; import com.cloud.utils.db.Transaction; @@ -38,12 +39,13 @@ import com.cloud.utils.exception.CloudRuntimeException; @Component @Local(value = {SystemIntegrityChecker.class}) -public class DatabaseIntegrityChecker implements SystemIntegrityChecker { +public class DatabaseIntegrityChecker extends AdapterBase implements SystemIntegrityChecker { private final Logger s_logger = Logger.getLogger(DatabaseIntegrityChecker.class); @Inject VersionDao _dao; public DatabaseIntegrityChecker() { + setRunLevel(ComponentLifecycle.RUN_LEVEL_FRAMEWORK_BOOTSTRAP); } /* @@ -248,4 +250,15 @@ public class DatabaseIntegrityChecker implements SystemIntegrityChecker { lock.releaseRef(); } } + + @Override + public boolean start() { + try { + check(); + } catch(Exception e) { + s_logger.error("System integrity check exception", e); + System.exit(1); + } + return true; + } } diff --git a/server/src/com/cloud/user/AccountManagerImpl.java b/server/src/com/cloud/user/AccountManagerImpl.java index 09cd8df5b98..eceeb84291c 100755 --- a/server/src/com/cloud/user/AccountManagerImpl.java +++ b/server/src/com/cloud/user/AccountManagerImpl.java @@ -116,6 +116,7 @@ import com.cloud.utils.Pair; import com.cloud.utils.Ternary; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.GlobalLock; @@ -140,10 +141,9 @@ import com.cloud.vm.dao.VMInstanceDao; @Component @Local(value = { AccountManager.class, AccountService.class }) -public class AccountManagerImpl implements AccountManager, AccountService, Manager { +public class AccountManagerImpl extends ManagerBase implements AccountManager, AccountService { public static final Logger s_logger = Logger.getLogger(AccountManagerImpl.class); - private String _name; @Inject private AccountDao _accountDao; @Inject @@ -237,8 +237,6 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag @Override public boolean configure(final String name, final Map params) throws ConfigurationException { - _name = name; - _systemAccount = _accountDao.findById(AccountVO.ACCOUNT_ID_SYSTEM); if (_systemAccount == null) { throw new ConfigurationException("Unable to find the system account using " + Account.ACCOUNT_ID_SYSTEM); @@ -268,11 +266,6 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag return _systemUser; } - @Override - public String getName() { - return _name; - } - @Override public boolean start() { _executor.scheduleAtFixedRate(new AccountCleanupTask(), _cleanupInterval, _cleanupInterval, TimeUnit.SECONDS); diff --git a/server/src/com/cloud/user/DomainManagerImpl.java b/server/src/com/cloud/user/DomainManagerImpl.java index 9df34d1e4c6..5d39360cdcc 100644 --- a/server/src/com/cloud/user/DomainManagerImpl.java +++ b/server/src/com/cloud/user/DomainManagerImpl.java @@ -51,6 +51,7 @@ import com.cloud.storage.dao.DiskOfferingDao; import com.cloud.user.dao.AccountDao; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; import com.cloud.utils.db.SearchBuilder; @@ -61,10 +62,9 @@ import com.cloud.utils.net.NetUtils; @Component @Local(value = { DomainManager.class, DomainService.class }) -public class DomainManagerImpl implements DomainManager, DomainService, Manager { +public class DomainManagerImpl extends ManagerBase implements DomainManager, DomainService { public static final Logger s_logger = Logger.getLogger(DomainManagerImpl.class); - private String _name; @Inject private DomainDao _domainDao; @Inject @@ -92,28 +92,6 @@ public class DomainManagerImpl implements DomainManager, DomainService, Manager return _domainDao.findByUuid(domainUuid); } - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public boolean configure(final String name, final Map params) throws ConfigurationException { - _name = name; - - return true; - } - @Override public Set getDomainChildrenIds(String parentDomainPath) { Set childDomains = new HashSet(); diff --git a/server/src/com/cloud/uuididentity/IdentityServiceImpl.java b/server/src/com/cloud/uuididentity/IdentityServiceImpl.java index 2a93627d503..dd9a4620658 100644 --- a/server/src/com/cloud/uuididentity/IdentityServiceImpl.java +++ b/server/src/com/cloud/uuididentity/IdentityServiceImpl.java @@ -26,13 +26,12 @@ import org.apache.cloudstack.api.IdentityService; import org.springframework.stereotype.Component; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.uuididentity.dao.IdentityDao; @Component @Local(value = { IdentityService.class }) -public class IdentityServiceImpl implements Manager, IdentityService { - private String _name; - +public class IdentityServiceImpl extends ManagerBase implements IdentityService { @Inject private IdentityDao _identityDao; @Override @@ -44,27 +43,4 @@ public class IdentityServiceImpl implements Manager, IdentityService { public String getIdentityUuid(String tableName, String identityString) { return _identityDao.getIdentityUuid(tableName, identityString); } - - @Override - public boolean configure(String name, Map params) - throws ConfigurationException { - _name = name; - - return true; - } - - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } } diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index bd0733f7542..8dd83c6321f 100644 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -218,6 +218,7 @@ import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.PasswordGenerator; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.crypt.RSAHelper; import com.cloud.utils.db.DB; @@ -240,7 +241,7 @@ import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDao; @Local(value = { UserVmManager.class, UserVmService.class }) -public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager { +public class UserVmManagerImpl extends ManagerBase implements UserVmManager, UserVmService { private static final Logger s_logger = Logger .getLogger(UserVmManagerImpl.class); diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java index 4f15cc55777..9b00d7a9837 100755 --- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java @@ -140,6 +140,7 @@ import com.cloud.utils.Journal; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.GlobalLock; @@ -159,10 +160,9 @@ import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.VMInstanceDao; @Local(value = VirtualMachineManager.class) -public class VirtualMachineManagerImpl implements VirtualMachineManager, Listener { +public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMachineManager, Listener { private static final Logger s_logger = Logger.getLogger(VirtualMachineManagerImpl.class); - String _name; @Inject protected StorageManager _storageMgr; @Inject @@ -427,8 +427,6 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene @Override public boolean configure(String name, Map xmlParams) throws ConfigurationException { - _name = name; - Map params = _configDao.getConfiguration(xmlParams); _retry = NumbersUtil.parseInt(params.get(Config.StartRetry.key()), 10); @@ -452,11 +450,6 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene return true; } - @Override - public String getName() { - return _name; - } - protected VirtualMachineManagerImpl() { setStateMachine(); } diff --git a/server/test/com/cloud/agent/MockAgentManagerImpl.java b/server/test/com/cloud/agent/MockAgentManagerImpl.java index f16f50b3763..bdacf68e28a 100755 --- a/server/test/com/cloud/agent/MockAgentManagerImpl.java +++ b/server/test/com/cloud/agent/MockAgentManagerImpl.java @@ -35,10 +35,11 @@ import com.cloud.host.HostVO; import com.cloud.host.Status.Event; import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.resource.ServerResource; +import com.cloud.utils.component.ManagerBase; @Component @Local(value = { AgentManager.class }) -public class MockAgentManagerImpl implements AgentManager { +public class MockAgentManagerImpl extends ManagerBase implements AgentManager { @Override public boolean configure(String name, Map params) throws ConfigurationException { diff --git a/server/test/com/cloud/alert/MockAlertManagerImpl.java b/server/test/com/cloud/alert/MockAlertManagerImpl.java index 3f87193d2f1..f0c67f9ed70 100644 --- a/server/test/com/cloud/alert/MockAlertManagerImpl.java +++ b/server/test/com/cloud/alert/MockAlertManagerImpl.java @@ -22,8 +22,10 @@ import java.util.Map; import javax.ejb.Local; import javax.naming.ConfigurationException; +import com.cloud.utils.component.ManagerBase; + @Local(value = {AlertManager.class}) -public class MockAlertManagerImpl implements AlertManager { +public class MockAlertManagerImpl extends ManagerBase implements AlertManager { /* (non-Javadoc) * @see com.cloud.utils.component.Manager#configure(java.lang.String, java.util.Map) diff --git a/server/test/com/cloud/network/MockFirewallManagerImpl.java b/server/test/com/cloud/network/MockFirewallManagerImpl.java index c7d4e86800a..76dc8439263 100644 --- a/server/test/com/cloud/network/MockFirewallManagerImpl.java +++ b/server/test/com/cloud/network/MockFirewallManagerImpl.java @@ -36,10 +36,11 @@ import com.cloud.network.rules.FirewallRule.Purpose; import com.cloud.user.Account; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; @Local(value = {FirewallManager.class, FirewallService.class}) -public class MockFirewallManagerImpl implements FirewallManager, - FirewallService, Manager { +public class MockFirewallManagerImpl extends ManagerBase implements FirewallManager, + FirewallService { @Override public boolean configure(String name, Map params) diff --git a/server/test/com/cloud/network/MockNetworkManagerImpl.java b/server/test/com/cloud/network/MockNetworkManagerImpl.java index c24493a4b35..6621d1d096e 100755 --- a/server/test/com/cloud/network/MockNetworkManagerImpl.java +++ b/server/test/com/cloud/network/MockNetworkManagerImpl.java @@ -61,6 +61,7 @@ import com.cloud.user.Account; import com.cloud.user.User; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.vm.Nic; import com.cloud.vm.NicProfile; import com.cloud.vm.ReservationContext; @@ -71,7 +72,7 @@ import com.cloud.vm.VirtualMachineProfileImpl; @Component @Local(value = { NetworkManager.class, NetworkService.class }) -public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkService { +public class MockNetworkManagerImpl extends ManagerBase implements NetworkManager, NetworkService { @Override public List getIsolatedNetworksOwnedByAccountInZone(long zoneId, Account owner) { diff --git a/server/test/com/cloud/network/MockNetworkModelImpl.java b/server/test/com/cloud/network/MockNetworkModelImpl.java index 003b718a604..50af79624e2 100644 --- a/server/test/com/cloud/network/MockNetworkModelImpl.java +++ b/server/test/com/cloud/network/MockNetworkModelImpl.java @@ -43,12 +43,13 @@ import com.cloud.offering.NetworkOffering; import com.cloud.offerings.NetworkOfferingVO; import com.cloud.user.Account; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.vm.Nic; import com.cloud.vm.NicProfile; import com.cloud.vm.VirtualMachine; @Local(value = {NetworkModel.class}) -public class MockNetworkModelImpl implements NetworkModel, Manager { +public class MockNetworkModelImpl extends ManagerBase implements NetworkModel { /* (non-Javadoc) * @see com.cloud.utils.component.Manager#configure(java.lang.String, java.util.Map) diff --git a/server/test/com/cloud/network/MockRulesManagerImpl.java b/server/test/com/cloud/network/MockRulesManagerImpl.java index 3687e9c441b..ba3dd413cc3 100644 --- a/server/test/com/cloud/network/MockRulesManagerImpl.java +++ b/server/test/com/cloud/network/MockRulesManagerImpl.java @@ -38,10 +38,11 @@ import com.cloud.user.Account; import com.cloud.uservm.UserVm; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.vm.VirtualMachine; @Local(value = {RulesManager.class, RulesService.class}) -public class MockRulesManagerImpl implements RulesManager, Manager, RulesService { +public class MockRulesManagerImpl extends ManagerBase implements RulesManager, RulesService { @Override public Pair, Integer> searchStaticNatRules( diff --git a/server/test/com/cloud/network/vpn/MockRemoteAccessVPNServiceProvider.java b/server/test/com/cloud/network/vpn/MockRemoteAccessVPNServiceProvider.java index 1a01681a112..1dde4a84ebb 100644 --- a/server/test/com/cloud/network/vpn/MockRemoteAccessVPNServiceProvider.java +++ b/server/test/com/cloud/network/vpn/MockRemoteAccessVPNServiceProvider.java @@ -27,9 +27,10 @@ import com.cloud.network.Network; import com.cloud.network.RemoteAccessVpn; import com.cloud.network.VpnUser; import com.cloud.network.element.RemoteAccessVPNServiceProvider; +import com.cloud.utils.component.ManagerBase; @Local (value = RemoteAccessVPNServiceProvider.class) -public class MockRemoteAccessVPNServiceProvider implements +public class MockRemoteAccessVPNServiceProvider extends ManagerBase implements RemoteAccessVPNServiceProvider { @Override diff --git a/server/test/com/cloud/projects/MockProjectManagerImpl.java b/server/test/com/cloud/projects/MockProjectManagerImpl.java index 309fa45d660..f588381e5f6 100644 --- a/server/test/com/cloud/projects/MockProjectManagerImpl.java +++ b/server/test/com/cloud/projects/MockProjectManagerImpl.java @@ -32,11 +32,12 @@ import com.cloud.exception.ResourceUnavailableException; import com.cloud.projects.ProjectAccount.Role; import com.cloud.user.Account; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.Pair; @Local(value = { ProjectManager.class }) -public class MockProjectManagerImpl implements ProjectManager, Manager { +public class MockProjectManagerImpl extends ManagerBase implements ProjectManager { @Override public Project createProject(String name, String displayText, diff --git a/server/test/com/cloud/resource/MockResourceManagerImpl.java b/server/test/com/cloud/resource/MockResourceManagerImpl.java index a0dad479144..889318bcd46 100644 --- a/server/test/com/cloud/resource/MockResourceManagerImpl.java +++ b/server/test/com/cloud/resource/MockResourceManagerImpl.java @@ -54,10 +54,11 @@ import com.cloud.storage.Swift; import com.cloud.template.VirtualMachineTemplate; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.fsm.NoTransitionException; @Local(value = {ResourceManager.class}) -public class MockResourceManagerImpl implements ResourceManager, Manager { +public class MockResourceManagerImpl extends ManagerBase implements ResourceManager { /* (non-Javadoc) * @see com.cloud.resource.ResourceService#updateHost(com.cloud.api.commands.UpdateHostCmd) diff --git a/server/test/com/cloud/user/MockAccountManagerImpl.java b/server/test/com/cloud/user/MockAccountManagerImpl.java index bc81a6f87cf..e5a7adaf1cc 100644 --- a/server/test/com/cloud/user/MockAccountManagerImpl.java +++ b/server/test/com/cloud/user/MockAccountManagerImpl.java @@ -40,13 +40,14 @@ import com.cloud.projects.Project.ListProjectResourcesCriteria; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; @Component @Local(value = { AccountManager.class, AccountService.class }) -public class MockAccountManagerImpl implements Manager, AccountManager, AccountService { +public class MockAccountManagerImpl extends ManagerBase implements AccountManager, AccountService { @Override diff --git a/server/test/com/cloud/user/MockDomainManagerImpl.java b/server/test/com/cloud/user/MockDomainManagerImpl.java index 0f572d8e0f5..d249c8013d2 100644 --- a/server/test/com/cloud/user/MockDomainManagerImpl.java +++ b/server/test/com/cloud/user/MockDomainManagerImpl.java @@ -32,10 +32,11 @@ import com.cloud.domain.DomainVO; import com.cloud.exception.PermissionDeniedException; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; @Component @Local(value = { DomainManager.class, DomainService.class }) -public class MockDomainManagerImpl implements Manager, DomainManager, DomainService { +public class MockDomainManagerImpl extends ManagerBase implements DomainManager, DomainService { @Override public Domain createDomain(String name, Long parentId, String networkDomain) { diff --git a/server/test/com/cloud/vm/MockUserVmManagerImpl.java b/server/test/com/cloud/vm/MockUserVmManagerImpl.java index c2d6825355c..0b17d6e440c 100644 --- a/server/test/com/cloud/vm/MockUserVmManagerImpl.java +++ b/server/test/com/cloud/vm/MockUserVmManagerImpl.java @@ -68,11 +68,12 @@ import com.cloud.user.Account; import com.cloud.uservm.UserVm; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.exception.ExecutionException; @Component @Local(value = { UserVmManager.class, UserVmService.class }) -public class MockUserVmManagerImpl implements UserVmManager, UserVmService, Manager { +public class MockUserVmManagerImpl extends ManagerBase implements UserVmManager, UserVmService { @Override public UserVmVO findByName(String name) { diff --git a/server/test/com/cloud/vm/MockVirtualMachineManagerImpl.java b/server/test/com/cloud/vm/MockVirtualMachineManagerImpl.java index 71005c70dfc..cdf7be28d88 100755 --- a/server/test/com/cloud/vm/MockVirtualMachineManagerImpl.java +++ b/server/test/com/cloud/vm/MockVirtualMachineManagerImpl.java @@ -48,6 +48,7 @@ import com.cloud.storage.VMTemplateVO; import com.cloud.user.Account; import com.cloud.user.User; import com.cloud.utils.Pair; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.fsm.NoTransitionException; import com.cloud.vm.VirtualMachine.Event; import com.cloud.vm.VirtualMachine.Type; @@ -55,7 +56,7 @@ import com.cloud.vm.VirtualMachineProfile.Param; @Component @Local(value = VirtualMachineManager.class) -public class MockVirtualMachineManagerImpl implements VirtualMachineManager { +public class MockVirtualMachineManagerImpl extends ManagerBase implements VirtualMachineManager { @Override public boolean configure(String name, Map params) throws ConfigurationException { diff --git a/server/test/com/cloud/vpc/MockConfigurationManagerImpl.java b/server/test/com/cloud/vpc/MockConfigurationManagerImpl.java index 8b16c3d2409..0af9f162531 100644 --- a/server/test/com/cloud/vpc/MockConfigurationManagerImpl.java +++ b/server/test/com/cloud/vpc/MockConfigurationManagerImpl.java @@ -79,11 +79,12 @@ import com.cloud.service.ServiceOfferingVO; import com.cloud.storage.DiskOfferingVO; import com.cloud.user.Account; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.vm.VirtualMachine.Type; @Component @Local(value = { ConfigurationManager.class, ConfigurationService.class }) -public class MockConfigurationManagerImpl implements ConfigurationManager, ConfigurationService, Manager{ +public class MockConfigurationManagerImpl extends ManagerBase implements ConfigurationManager, ConfigurationService { @Inject NetworkOfferingDaoImpl _ntwkOffDao; diff --git a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java index cd9bec7fbd0..c1aacff6553 100644 --- a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java +++ b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java @@ -76,6 +76,7 @@ import com.cloud.user.Account; import com.cloud.user.User; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.vm.Nic; import com.cloud.vm.NicProfile; import com.cloud.vm.ReservationContext; @@ -86,7 +87,7 @@ import com.cloud.vm.VirtualMachineProfileImpl; @Component @Local(value = { NetworkManager.class, NetworkService.class }) -public class MockNetworkManagerImpl implements NetworkManager, NetworkService, Manager{ +public class MockNetworkManagerImpl extends ManagerBase implements NetworkManager, NetworkService { @Inject NetworkServiceMapDao _ntwkSrvcDao; @Inject diff --git a/server/test/com/cloud/vpc/MockNetworkModelImpl.java b/server/test/com/cloud/vpc/MockNetworkModelImpl.java index ddffa01fa19..312f9e676bf 100644 --- a/server/test/com/cloud/vpc/MockNetworkModelImpl.java +++ b/server/test/com/cloud/vpc/MockNetworkModelImpl.java @@ -51,12 +51,13 @@ import com.cloud.offerings.NetworkOfferingVO; import com.cloud.offerings.dao.NetworkOfferingServiceMapDao; import com.cloud.user.Account; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.vm.Nic; import com.cloud.vm.NicProfile; import com.cloud.vm.VirtualMachine; @Local(value = {NetworkModel.class}) -public class MockNetworkModelImpl implements NetworkModel, Manager { +public class MockNetworkModelImpl extends ManagerBase implements NetworkModel { @Inject NetworkOfferingServiceMapDao _ntwkOfferingSrvcDao; diff --git a/server/test/com/cloud/vpc/MockResourceLimitManagerImpl.java b/server/test/com/cloud/vpc/MockResourceLimitManagerImpl.java index deb20b0ca90..690aed65677 100644 --- a/server/test/com/cloud/vpc/MockResourceLimitManagerImpl.java +++ b/server/test/com/cloud/vpc/MockResourceLimitManagerImpl.java @@ -32,10 +32,11 @@ import com.cloud.exception.ResourceAllocationException; import com.cloud.user.Account; import com.cloud.user.ResourceLimitService; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; @Component @Local(value = { ResourceLimitService.class }) -public class MockResourceLimitManagerImpl implements ResourceLimitService, Manager{ +public class MockResourceLimitManagerImpl extends ManagerBase implements ResourceLimitService { /* (non-Javadoc) * @see com.cloud.user.ResourceLimitService#updateResourceLimit(java.lang.Long, java.lang.Long, java.lang.Integer, java.lang.Long) diff --git a/server/test/com/cloud/vpc/MockSite2SiteVpnManagerImpl.java b/server/test/com/cloud/vpc/MockSite2SiteVpnManagerImpl.java index 14b7c6035b7..133f3444ebe 100644 --- a/server/test/com/cloud/vpc/MockSite2SiteVpnManagerImpl.java +++ b/server/test/com/cloud/vpc/MockSite2SiteVpnManagerImpl.java @@ -45,11 +45,12 @@ import com.cloud.network.vpn.Site2SiteVpnManager; import com.cloud.network.vpn.Site2SiteVpnService; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.vm.DomainRouterVO; @Component @Local(value = { Site2SiteVpnManager.class, Site2SiteVpnService.class } ) -public class MockSite2SiteVpnManagerImpl implements Site2SiteVpnManager, Site2SiteVpnService, Manager{ +public class MockSite2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpnManager, Site2SiteVpnService { /* (non-Javadoc) * @see com.cloud.network.vpn.Site2SiteVpnService#createVpnGateway(org.apache.cloudstack.api.commands.CreateVpnGatewayCmd) diff --git a/server/test/com/cloud/vpc/MockSite2SiteVpnServiceProvider.java b/server/test/com/cloud/vpc/MockSite2SiteVpnServiceProvider.java index d5c39e4752f..f13c2d1dd93 100644 --- a/server/test/com/cloud/vpc/MockSite2SiteVpnServiceProvider.java +++ b/server/test/com/cloud/vpc/MockSite2SiteVpnServiceProvider.java @@ -27,10 +27,11 @@ import org.springframework.stereotype.Component; import com.cloud.exception.ResourceUnavailableException; import com.cloud.network.Site2SiteVpnConnection; import com.cloud.network.element.Site2SiteVpnServiceProvider; +import com.cloud.utils.component.ManagerBase; @Component @Local({Site2SiteVpnServiceProvider.class}) -public class MockSite2SiteVpnServiceProvider implements Site2SiteVpnServiceProvider { +public class MockSite2SiteVpnServiceProvider extends ManagerBase implements Site2SiteVpnServiceProvider { /* (non-Javadoc) * @see com.cloud.utils.component.Adapter#configure(java.lang.String, java.util.Map) diff --git a/server/test/com/cloud/vpc/MockVpcManagerImpl.java b/server/test/com/cloud/vpc/MockVpcManagerImpl.java index d024018b9ea..0a44a49c5e9 100644 --- a/server/test/com/cloud/vpc/MockVpcManagerImpl.java +++ b/server/test/com/cloud/vpc/MockVpcManagerImpl.java @@ -54,12 +54,13 @@ import com.cloud.user.Account; import com.cloud.user.User; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.vm.DomainRouterVO; import com.cloud.vpc.dao.MockVpcDaoImpl; @Component @Local(value = { VpcManager.class, VpcService.class }) -public class MockVpcManagerImpl implements VpcManager, Manager{ +public class MockVpcManagerImpl extends ManagerBase implements VpcManager { @Inject MockVpcDaoImpl _vpcDao; /* (non-Javadoc) diff --git a/server/test/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java b/server/test/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java index 0ea29d9a2e7..6d8531aa577 100644 --- a/server/test/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java +++ b/server/test/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java @@ -47,6 +47,7 @@ import com.cloud.user.Account; import com.cloud.user.User; import com.cloud.uservm.UserVm; import com.cloud.utils.component.Manager; +import com.cloud.utils.component.ManagerBase; import com.cloud.vm.DomainRouterVO; import com.cloud.vm.NicProfile; import com.cloud.vm.VirtualMachineProfile; @@ -54,8 +55,8 @@ import com.cloud.vm.VirtualMachineProfile.Param; @Component @Local(value = {VpcVirtualNetworkApplianceManager.class, VpcVirtualNetworkApplianceService.class}) -public class MockVpcVirtualNetworkApplianceManager implements VpcVirtualNetworkApplianceManager, -VpcVirtualNetworkApplianceService, Manager { +public class MockVpcVirtualNetworkApplianceManager extends ManagerBase implements VpcVirtualNetworkApplianceManager, +VpcVirtualNetworkApplianceService { /* (non-Javadoc) * @see com.cloud.network.router.VirtualNetworkApplianceManager#sendSshKeysToHost(java.lang.Long, java.lang.String, java.lang.String) diff --git a/usage/src/com/cloud/usage/UsageAlertManagerImpl.java b/usage/src/com/cloud/usage/UsageAlertManagerImpl.java index f6e0374875a..a0765b2b272 100644 --- a/usage/src/com/cloud/usage/UsageAlertManagerImpl.java +++ b/usage/src/com/cloud/usage/UsageAlertManagerImpl.java @@ -40,6 +40,7 @@ import com.cloud.alert.AlertVO; import com.cloud.alert.dao.AlertDao; import com.cloud.configuration.dao.ConfigurationDao; import com.cloud.utils.NumbersUtil; +import com.cloud.utils.component.ManagerBase; import com.sun.mail.smtp.SMTPMessage; import com.sun.mail.smtp.SMTPSSLTransport; @@ -47,18 +48,15 @@ import com.sun.mail.smtp.SMTPTransport; @Component @Local(value={AlertManager.class}) -public class UsageAlertManagerImpl implements AlertManager { +public class UsageAlertManagerImpl extends ManagerBase implements AlertManager { private static final Logger s_logger = Logger.getLogger(UsageAlertManagerImpl.class.getName()); - private String _name = null; private EmailAlert _emailAlert; @Inject private AlertDao _alertDao; @Inject private ConfigurationDao _configDao; @Override public boolean configure(String name, Map params) throws ConfigurationException { - _name = name; - Map configs = _configDao.getConfiguration("management-server", params); // set up the email system for alerts @@ -85,21 +83,6 @@ public class UsageAlertManagerImpl implements AlertManager { return true; } - @Override - public String getName() { - return _name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - @Override public void clearAlert(short alertType, long dataCenterId, long podId) { try { diff --git a/usage/src/com/cloud/usage/UsageManagerImpl.java b/usage/src/com/cloud/usage/UsageManagerImpl.java index 438ab723ec1..3e143b1359b 100644 --- a/usage/src/com/cloud/usage/UsageManagerImpl.java +++ b/usage/src/com/cloud/usage/UsageManagerImpl.java @@ -69,6 +69,7 @@ import com.cloud.user.dao.AccountDao; import com.cloud.user.dao.UserStatisticsDao; +import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; @@ -78,7 +79,7 @@ import com.cloud.utils.db.Transaction; import com.cloud.utils.exception.CloudRuntimeException; @Local(value={UsageManager.class}) -public class UsageManagerImpl implements UsageManager, Runnable { +public class UsageManagerImpl extends ManagerBase implements UsageManager, Runnable { public static final Logger s_logger = Logger.getLogger(UsageManagerImpl.class.getName()); protected static final String DAILY = "DAILY"; @@ -109,7 +110,6 @@ public class UsageManagerImpl implements UsageManager, Runnable { @Inject ConfigurationDao _configDao; private String m_version = null; - private String m_name = null; private final Calendar m_jobExecTime = Calendar.getInstance(); private int m_aggregationDuration = 0; private int m_sanityCheckInterval = 0; @@ -152,8 +152,6 @@ public class UsageManagerImpl implements UsageManager, Runnable { s_logger.info("Implementation Version is " + m_version); } - m_name = name; - Map configs = _configDao.getConfiguration(params); if (params != null) { @@ -222,10 +220,6 @@ public class UsageManagerImpl implements UsageManager, Runnable { return true; } - public String getName() { - return m_name; - } - public boolean start() { if (s_logger.isInfoEnabled()) { s_logger.info("Starting Usage Manager"); diff --git a/utils/src/com/cloud/utils/backoff/impl/ConstantTimeBackoff.java b/utils/src/com/cloud/utils/backoff/impl/ConstantTimeBackoff.java index fb762346d36..976e3690082 100755 --- a/utils/src/com/cloud/utils/backoff/impl/ConstantTimeBackoff.java +++ b/utils/src/com/cloud/utils/backoff/impl/ConstantTimeBackoff.java @@ -25,6 +25,7 @@ import javax.ejb.Local; import com.cloud.utils.NumbersUtil; import com.cloud.utils.backoff.BackoffAlgorithm; +import com.cloud.utils.component.AdapterBase; /** * Implementation of the Agent Manager. This class controls the connection @@ -36,10 +37,9 @@ import com.cloud.utils.backoff.BackoffAlgorithm; * } **/ @Local(value={BackoffAlgorithm.class}) -public class ConstantTimeBackoff implements BackoffAlgorithm, ConstantTimeBackoffMBean { +public class ConstantTimeBackoff extends AdapterBase implements BackoffAlgorithm, ConstantTimeBackoffMBean { int _count = 0; long _time; - String _name; ConcurrentHashMap _asleep = new ConcurrentHashMap(); @Override @@ -63,16 +63,10 @@ public class ConstantTimeBackoff implements BackoffAlgorithm, ConstantTimeBackof @Override public boolean configure(String name, Map params) { - _name = name; _time = NumbersUtil.parseLong((String)params.get("seconds"), 5) * 1000; return true; } - @Override - public String getName() { - return _name; - } - @Override public Collection getWaiters() { return _asleep.keySet(); diff --git a/utils/src/com/cloud/utils/component/Adapter.java b/utils/src/com/cloud/utils/component/Adapter.java index 66326df93f2..ec034745397 100755 --- a/utils/src/com/cloud/utils/component/Adapter.java +++ b/utils/src/com/cloud/utils/component/Adapter.java @@ -16,47 +16,9 @@ // under the License. package com.cloud.utils.component; -import java.util.Map; - -import javax.naming.ConfigurationException; - /** * Adapter defines methods for pluggable code within the Cloud Stack. An * Adapters are a departure from regular structured programming. */ -public interface Adapter { - - /** - * configure is called when an adapter is initialized. - * - * @param name - * The name of the adapter. - * @param params - * A map of configuration parameters. - * @return Returning false means the configuration did not go well and the - * adapter can not be used. - */ - boolean configure(String name, Map params) throws ConfigurationException; - - /** - * - */ - String getName(); - - /** - * startAdapter() signals the adapter that it can start. - * - * @return true if the adapter can start, false otherwise. - */ - boolean start(); - - /** - * stopAdapter() signals the adapter that it should be shutdown. Returns - * false means that the adapter is not ready to be stopped and should be - * called again. - * - * @return true if the adapter can stop, false indicates the adapter is not - * ready to stop. - */ - boolean stop(); +public interface Adapter extends ComponentLifecycle { } diff --git a/utils/src/com/cloud/utils/component/AdapterBase.java b/utils/src/com/cloud/utils/component/AdapterBase.java index 29f3c239017..405762d64f1 100644 --- a/utils/src/com/cloud/utils/component/AdapterBase.java +++ b/utils/src/com/cloud/utils/component/AdapterBase.java @@ -17,47 +17,18 @@ package com.cloud.utils.component; import java.util.List; -import java.util.Map; - -import javax.naming.ConfigurationException; // Typical Adapter implementation. -public class AdapterBase implements Adapter { - protected String _name; +public class AdapterBase extends ComponentLifecycleBase implements Adapter { - @Override - public boolean configure(String name, Map params) throws ConfigurationException { - return true; - } - - @Override - public String getName() { - if(_name == null) - return this.getClass().getSimpleName(); - - return _name; - } - - public void setName(String name) { - _name = name; - } - - @Override - public boolean start() { - return true; - } - - @Override - public boolean stop() { - return true; - } - - public static T getAdapterByName(List adapters, String name) { + public AdapterBase() { + } + + public static T getAdapterByName(List adapters, String name) { for(T adapter : adapters) { if(adapter.getName() != null && adapter.getName().equalsIgnoreCase(name)) return adapter; } return null; } - } diff --git a/utils/src/com/cloud/utils/component/ComponentContext.java b/utils/src/com/cloud/utils/component/ComponentContext.java index 9d5e9c49dfc..1b15f00e301 100644 --- a/utils/src/com/cloud/utils/component/ComponentContext.java +++ b/utils/src/com/cloud/utils/component/ComponentContext.java @@ -17,13 +17,13 @@ package com.cloud.utils.component; -import java.util.ArrayList; -import java.util.Collection; import java.util.HashMap; -import java.util.List; import java.util.Map; -import javax.annotation.PostConstruct; +import javax.management.InstanceAlreadyExistsException; +import javax.management.MBeanRegistrationException; +import javax.management.MalformedObjectNameException; +import javax.management.NotCompliantMBeanException; import javax.naming.ConfigurationException; import org.apache.log4j.Logger; @@ -38,8 +38,9 @@ import org.springframework.context.ApplicationContextAware; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; -import com.cloud.utils.db.GenericDao; import com.cloud.utils.db.TransactionContextBuilder; +import com.cloud.utils.mgmt.JmxUtil; +import com.cloud.utils.mgmt.ManagementBean; /** * @@ -60,93 +61,87 @@ public class ComponentContext implements ApplicationContextAware { public static ApplicationContext getApplicationContext() { return s_appContext; - } + } public static void initComponentsLifeCycle() { - @SuppressWarnings("rawtype") - Collection daos = ComponentContext.getApplicationContext().getBeansOfType(GenericDao.class).values(); - Collection mgrs = ComponentContext.getApplicationContext().getBeansOfType(Manager.class).values(); - Collection adapters = ComponentContext.getApplicationContext().getBeansOfType(Adapter.class).values(); - - Map params = new HashMap(); - for (GenericDao dao : daos) { - try { - s_logger.info("Configuring DAO: " + ComponentContext.getTargetClass(dao).getName()); - dao.configure(dao.getClass().getSimpleName(), params); - } catch (ConfigurationException e) { - s_logger.error("Unable to configure DAO: " + dao.getClass().getSimpleName(), e); - System.exit(1); - } - } - - List avoidMap = new ArrayList(); - for (Manager manager : mgrs) { - if (avoidMap.contains(manager.getName())) { - s_logger.info("Skip manager: " + ComponentContext.getTargetClass(manager).getName() + " as it is already started"); - continue; - } - - try { - s_logger.info("Configuring manager: " + ComponentContext.getTargetClass(manager).getName() + "..."); - manager.configure(manager.getClass().getSimpleName(), params); - avoidMap.add(manager.getName()); - } catch (Exception e) { - s_logger.error("Problems to start manager:" + ComponentContext.getTargetClass(manager).getName(), e); - System.exit(1); - } - } - - for (Adapter adapter : adapters) { - if (avoidMap.contains(adapter.getName())) { - s_logger.info("Skip adapter: " + ComponentContext.getTargetClass(adapter).getName() + " as it is already started"); - continue; - } - - try { - s_logger.info("Configuring adapter: " + ComponentContext.getTargetClass(adapter).getName() + "..."); - adapter.configure(adapter.getName(), params); - avoidMap.add(adapter.getName()); - } catch (Exception e) { - s_logger.error("Problems to start adapter:" + ComponentContext.getTargetClass(adapter).getName(), e); - System.exit(1); - } - } - - avoidMap.clear(); - - for (Manager manager : mgrs) { - if (avoidMap.contains(manager.getName())) { - s_logger.info("Skip start on manager: " + ComponentContext.getTargetClass(manager).getName() + " as it is already started"); - continue; - } - - try { - s_logger.info("Starting manager: " + ComponentContext.getTargetClass(manager).getName() + "..."); - manager.start(); - avoidMap.add(manager.getName()); - } catch (Exception e) { - s_logger.error("Problems to start manager:" + ComponentContext.getTargetClass(manager).getName(), e); - System.exit(1); - } - } - - for (Adapter adapter : adapters) { - if (avoidMap.contains(adapter.getName())) { - s_logger.info("Skip start on adapter: " + ComponentContext.getTargetClass(adapter).getName() + " as it is already started"); - continue; - } - - try { - s_logger.info("Startinging adapter: " + ComponentContext.getTargetClass(adapter).getName() + "..."); - adapter.start(); - avoidMap.add(adapter.getName()); - } catch (Exception e) { - s_logger.error("Problems to start adapter:" + ComponentContext.getTargetClass(adapter).getName(), e); - System.exit(1); - } - } + Map lifecyleComponents = getApplicationContext().getBeansOfType(ComponentLifecycle.class); + + Map[] classifiedComponents = new Map[ComponentLifecycle.MAX_RUN_LEVELS]; + for(int i = 0; i < ComponentLifecycle.MAX_RUN_LEVELS; i++) { + classifiedComponents[i] = new HashMap(); + } + + for(Map.Entry entry : lifecyleComponents.entrySet()) { + classifiedComponents[entry.getValue().getRunLevel()].put(entry.getKey(), entry.getValue()); + } + + // configuration phase + Map avoidMap = new HashMap(); + for(int i = 0; i < ComponentLifecycle.MAX_RUN_LEVELS; i++) { + for(Map.Entry entry : ((Map)classifiedComponents[i]).entrySet()) { + ComponentLifecycle component = entry.getValue(); + String implClassName = ComponentContext.getTargetClass(component).getName(); + s_logger.info("Configuring " + implClassName); + + if(avoidMap.containsKey(implClassName)) { + s_logger.info("Skip configuration of " + implClassName + " as it is already configured"); + continue; + } + + try { + component.configure(component.getName(), component.getConfigParams()); + } catch (ConfigurationException e) { + s_logger.error("Unhandled exception", e); + throw new RuntimeException("Unable to configure " + implClassName, e); + } + + avoidMap.put(implClassName, implClassName); + } + } + + // starting phase + avoidMap.clear(); + for(int i = 0; i < ComponentLifecycle.MAX_RUN_LEVELS; i++) { + for(Map.Entry entry : ((Map)classifiedComponents[i]).entrySet()) { + ComponentLifecycle component = entry.getValue(); + String implClassName = ComponentContext.getTargetClass(component).getName(); + s_logger.info("Starting " + implClassName); + + if(avoidMap.containsKey(implClassName)) { + s_logger.info("Skip configuration of " + implClassName + " as it is already configured"); + continue; + } + + try { + component.start(); + + if(getTargetObject(component) instanceof ManagementBean) + registerMBean((ManagementBean)getTargetObject(component)); + } catch (Exception e) { + s_logger.error("Unhandled exception", e); + throw new RuntimeException("Unable to start " + implClassName, e); + } + + avoidMap.put(implClassName, implClassName); + } + } } - + + static void registerMBean(ManagementBean mbean) { + try { + JmxUtil.registerMBean(mbean); + } catch (MalformedObjectNameException e) { + s_logger.warn("Unable to register MBean: " + mbean.getName(), e); + } catch (InstanceAlreadyExistsException e) { + s_logger.warn("Unable to register MBean: " + mbean.getName(), e); + } catch (MBeanRegistrationException e) { + s_logger.warn("Unable to register MBean: " + mbean.getName(), e); + } catch (NotCompliantMBeanException e) { + s_logger.warn("Unable to register MBean: " + mbean.getName(), e); + } + s_logger.info("Registered MBean: " + mbean.getName()); + } + public static T getComponent(String name) { assert(s_appContext != null); return (T)s_appContext.getBean(name); @@ -182,37 +177,6 @@ public class ComponentContext implements ApplicationContextAware { return s_appContext.getBeansOfType(beanType); } - public static boolean isPrimary(Object instance, Class beanType) { - // we assume single line of interface inheritance of beanType - Class componentType = beanType; - Class targetClass = getTargetClass(instance); - - Class interfaces[] = targetClass.getInterfaces(); - for(Class intf : interfaces) { - if(beanType.isAssignableFrom(intf) && intf != beanType) { - componentType = intf; - break; - } - } - - Map matchedTypes = (Map)ComponentContext.getComponentsOfType(componentType); - if(matchedTypes.size() > 1) { - Primary primary = targetClass.getAnnotation(Primary.class); - if(primary != null) { - s_logger.info(targetClass.getName() + " is the primary component of " + componentType.getName()); - return true; - } - - s_logger.warn(targetClass.getName() + " is not the primary component of " + componentType.getName() + ", there are other candidates"); - for(T candidate : matchedTypes.values()) { - s_logger.warn("Candidate " + getTargetClass(candidate).getName()); - } - return false; - } - - return true; - } - public static Class getTargetClass(Object instance) { while(instance instanceof Advised) { try { diff --git a/utils/src/com/cloud/utils/component/ComponentLifecycle.java b/utils/src/com/cloud/utils/component/ComponentLifecycle.java new file mode 100644 index 00000000000..ea671af0d83 --- /dev/null +++ b/utils/src/com/cloud/utils/component/ComponentLifecycle.java @@ -0,0 +1,58 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// 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. +package com.cloud.utils.component; + +import java.util.Map; + +import javax.naming.ConfigurationException; + +public interface ComponentLifecycle { + public static final int RUN_LEVEL_SYSTEM_BOOTSTRAP = 0; // for system level bootstrap components + public static final int RUN_LEVEL_SYSTEM = 1; // for system level service components (i.e., DAOs) + public static final int RUN_LEVEL_FRAMEWORK_BOOTSTRAP = 2; // for framework startup checkers (i.e., DB migration check) + public static final int RUN_LEVEL_FRAMEWORK = 3; // for framework bootstrap components(i.e., clustering management components) + public static final int RUN_LEVEL_COMPONENT_BOOTSTRAP = 4; // general manager components + public static final int RUN_LEVEL_COMPONENT = 5; // regular adapters, plugin components + public static final int RUN_LEVEL_APPLICATION_MAINLOOP = 6; + public static final int MAX_RUN_LEVELS = 7; + + + String getName(); + void setName(String name); + + void setConfigParams(Map params); + Map getConfigParams(); + + int getRunLevel(); + void setRunLevel(int level); + + public boolean configure(String name, Map params) throws ConfigurationException; + + /** + * Start any background tasks. + * + * @return true if the tasks were started, false otherwise. + */ + public boolean start(); + + /** + * Stop any background tasks. + * + * @return true background tasks were stopped, false otherwise. + */ + public boolean stop(); +} diff --git a/utils/src/com/cloud/utils/component/ComponentLifecycleBase.java b/utils/src/com/cloud/utils/component/ComponentLifecycleBase.java new file mode 100644 index 00000000000..8c7d09da7ba --- /dev/null +++ b/utils/src/com/cloud/utils/component/ComponentLifecycleBase.java @@ -0,0 +1,80 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// 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. +package com.cloud.utils.component; + +import java.util.HashMap; +import java.util.Map; + +import javax.naming.ConfigurationException; + +public class ComponentLifecycleBase implements ComponentLifecycle { + + protected String _name; + protected int _runLevel; + protected Map _configParams = new HashMap(); + + public ComponentLifecycleBase() { + _name = this.getClass().getSimpleName(); + _runLevel = RUN_LEVEL_COMPONENT; + } + + @Override + public String getName() { + return _name; + } + + @Override + public void setName(String name) { + _name = name; + } + + @Override + public void setConfigParams(Map params) { + _configParams = params; + } + + @Override + public Map getConfigParams() { + return _configParams; + } + + @Override + public int getRunLevel() { + return _runLevel; + } + + @Override + public void setRunLevel(int level) { + _runLevel = level; + } + + @Override + public boolean configure(String name, Map params) + throws ConfigurationException { + return true; + } + + @Override + public boolean start() { + return true; + } + + @Override + public boolean stop() { + return true; + } +} diff --git a/utils/src/com/cloud/utils/component/Manager.java b/utils/src/com/cloud/utils/component/Manager.java index da55d0631b0..d53d5aea778 100755 --- a/utils/src/com/cloud/utils/component/Manager.java +++ b/utils/src/com/cloud/utils/component/Manager.java @@ -16,45 +16,9 @@ // under the License. package com.cloud.utils.component; -import java.util.Map; - -import javax.naming.ConfigurationException; - /** * * For now we only expose some simple methods. In the future, we can use this **/ -public interface Manager { - /** - * Configuration with parameters. If there are background tasks, they - * shouldn't be started yet. Wait for the start() call. - * - * @param name - * The managers name. - * @param params - * Configuration parameters. - * @return true if the configuration was successful, false otherwise. - */ - public boolean configure(String name, Map params) throws ConfigurationException; - - /** - * Start any background tasks. - * - * @return true if the tasks were started, false otherwise. - */ - public boolean start(); - - /** - * Stop any background tasks. - * - * @return true background tasks were stopped, false otherwise. - */ - public boolean stop(); - - /** - * Get the name of this manager. - * - * @return the name. - */ - public String getName(); +public interface Manager extends ComponentLifecycle { } diff --git a/utils/src/com/cloud/utils/component/ManagerBase.java b/utils/src/com/cloud/utils/component/ManagerBase.java new file mode 100644 index 00000000000..529ef629201 --- /dev/null +++ b/utils/src/com/cloud/utils/component/ManagerBase.java @@ -0,0 +1,24 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// 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. +package com.cloud.utils.component; + +public class ManagerBase extends ComponentLifecycleBase { + public ManagerBase() { + // set default run level for manager components + setRunLevel(ComponentLifecycle.RUN_LEVEL_COMPONENT_BOOTSTRAP); + } +} diff --git a/utils/src/com/cloud/utils/crypt/EncryptionSecretKeyChecker.java b/utils/src/com/cloud/utils/crypt/EncryptionSecretKeyChecker.java index a9c670d6aa9..63f841dbb7b 100755 --- a/utils/src/com/cloud/utils/crypt/EncryptionSecretKeyChecker.java +++ b/utils/src/com/cloud/utils/crypt/EncryptionSecretKeyChecker.java @@ -35,11 +35,13 @@ import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; import com.cloud.utils.PropertiesUtil; +import com.cloud.utils.component.AdapterBase; +import com.cloud.utils.component.ComponentLifecycle; import com.cloud.utils.component.SystemIntegrityChecker; import com.cloud.utils.exception.CloudRuntimeException; @Local(value = {SystemIntegrityChecker.class}) -public class EncryptionSecretKeyChecker implements SystemIntegrityChecker { +public class EncryptionSecretKeyChecker extends AdapterBase implements SystemIntegrityChecker { private static final Logger s_logger = Logger.getLogger(EncryptionSecretKeyChecker.class); @@ -47,6 +49,10 @@ public class EncryptionSecretKeyChecker implements SystemIntegrityChecker { private static final String s_envKey = "CLOUD_SECRET_KEY"; private static StandardPBEStringEncryptor s_encryptor = new StandardPBEStringEncryptor(); private static boolean s_useEncryption = false; + + public EncryptionSecretKeyChecker() { + setRunLevel(ComponentLifecycle.RUN_LEVEL_FRAMEWORK_BOOTSTRAP); + } @Override public void check() { @@ -144,4 +150,15 @@ public class EncryptionSecretKeyChecker implements SystemIntegrityChecker { s_encryptor.setConfig(stringConfig); s_useEncryption = true; } + + @Override + public boolean start() { + try { + check(); + } catch (Exception e) { + s_logger.error("System integrity check exception", e); + System.exit(1); + } + return true; + } } diff --git a/utils/src/com/cloud/utils/db/GenericDaoBase.java b/utils/src/com/cloud/utils/db/GenericDaoBase.java index 5a166b2c818..623c349e8c5 100755 --- a/utils/src/com/cloud/utils/db/GenericDaoBase.java +++ b/utils/src/com/cloud/utils/db/GenericDaoBase.java @@ -68,6 +68,8 @@ import com.cloud.utils.DateUtil; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; +import com.cloud.utils.component.ComponentLifecycle; +import com.cloud.utils.component.ComponentLifecycleBase; import com.cloud.utils.crypt.DBEncryptionUtil; import com.cloud.utils.db.SearchCriteria.SelectType; import com.cloud.utils.exception.CloudRuntimeException; @@ -111,7 +113,7 @@ import edu.emory.mathcs.backport.java.util.Collections; * **/ @DB -public abstract class GenericDaoBase implements GenericDao { +public abstract class GenericDaoBase extends ComponentLifecycleBase implements GenericDao { private final static Logger s_logger = Logger.getLogger(GenericDaoBase.class); protected final static TimeZone s_gmtTimeZone = TimeZone.getTimeZone("GMT"); @@ -157,9 +159,6 @@ public abstract class GenericDaoBase implements Gene protected static final SequenceFetcher s_seqFetcher = SequenceFetcher.getInstance(); - protected String _name; - protected Map _configParams = new HashMap(); - public static GenericDaoBase getDao(Class entityType) { @SuppressWarnings("unchecked") GenericDaoBase dao = (GenericDaoBase)s_daoMaps.get(entityType); @@ -181,14 +180,6 @@ public abstract class GenericDaoBase implements Gene return _allAttributes; } - public void setConfigParams(Map params) { - _configParams = params; - } - - public Map getConfigParams() { - return _configParams; - } - @SuppressWarnings("unchecked") protected GenericDaoBase() { Type t = getClass().getGenericSuperclass(); @@ -278,6 +269,8 @@ public abstract class GenericDaoBase implements Gene s_logger.trace(info.selectSql); } } + + setRunLevel(ComponentLifecycle.RUN_LEVEL_SYSTEM); } @Override @DB(txn=false) @@ -1766,11 +1759,6 @@ public abstract class GenericDaoBase implements Gene return true; } - @DB(txn=false) - public String getName() { - return _name; - } - @DB(txn=false) public static UpdateBuilder getUpdateBuilder(final T entityObject) { final Factory factory = (Factory)entityObject; @@ -1880,5 +1868,4 @@ public abstract class GenericDaoBase implements Gene return sql; } - }