Commit Graph

57 Commits

Author SHA1 Message Date
Rohit Yadav 7c41a1184c agent: don't investigate if host is null, send alert instead
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-05 16:42:13 +05:30
Rohit Yadav 61dfb2d625 AgentAttache: allow checkonhost command in maintenance, cancel if only allowed
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-05 16:29:03 +05:30
Rohit Yadav 664186f483 CLOUDSTACK-8160: use preferable protocols
(cherry picked from commit debfcdef78)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-01-21 18:04:45 +05:30
Laszlo Hornyak 3577423da9 removed executable flags from java classes
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-11-23 19:49:01 +01:00
Santhosh Edukulla ef6ec7b276 Fixed few coverity issues like invalid boxing unboxing issues, resource leaks, null dereferences 2014-11-13 17:26:24 +05:30
Anthony Xu 4a13f81485 when host is pingtimeout and CCP can not determine the host status, put the host to Alert status , no VM HA. 2014-10-22 15:14:46 -07:00
Anthony Xu 70112bd145 CLOUDSTACK-7761:
Revert "when system VM ping times out, stop system VM"

This reverts commit ee23be1942.
2014-10-21 17:19:57 -07:00
Santhosh Edukulla 31a42d2b7a Fixed few coverity patches
Signed-off-by: Santhosh Edukulla <santhosh.edukulla@gmail.com>
2014-10-09 11:45:26 +05:30
Anthony Xu 847e1e47ae when system VM ping times out, stop system VM 2014-09-30 12:35:44 -07:00
Devdeep Singh 55b4ead495 CLOUDSTACK-7598: When a vm deployed by cloudstack is stopped on the hypervisor
(outside cloudstack), the state of the vm is not updated in cloudstack db. The
ping task was not checking for resource (host) status by default. The power
state of the vms is returned as part of the resource status. Fixed the issue by
making sure ping task atleast tries once to get the resource status.
2014-09-25 13:13:56 +05:30
Hugo Trippaers 8a13f44b44 Remove duplicate field in constructor 2014-09-18 16:02:26 +02:00
Daan Hoogland 7f440854f7 CLOUDSTACK-7184 retry-wait loop config to deal with network glitches
(cherry picked from commit a29f954a26)

Conflicts:
	engine/orchestration/src/com/cloud/agent/manager/DirectAgentAttache.java
2014-09-18 12:55:05 +02:00
Rohit Yadav 2cd99e3e72 CID-1116245: Lock for getting answers from SynchronousListener
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-09-18 11:56:29 +02:00
Rohit Yadav 3640c61207 CID-1116248: Synchornize method in SynchronousListener
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-09-18 11:54:31 +02:00
Anthony Xu e5a91e40dd in tagCommand, AsyncJobExecutionContext doesn't need to be created if it doesn't exist 2014-09-17 18:15:41 -07:00
Min Chen d5a8f1d875 CLOUDSTACK-7553: Clean up cached agentMap and pingMap in case of agents
connecting back to a different MS.
2014-09-15 17:37:51 -07:00
Likitha Shetty 8ce6eba549 CLOUDSTACK-7415. Host remains in Alert after vCenter restart.
Management server PingTask should update PingMap entry for an agent only if it is already present in the Management Server's PingMap.
2014-08-25 13:24:28 +05:30
Santhosh Edukulla e4d6cd8e6a Fixed coverity reported concurrency issues
Signed-off-by: Santhosh Edukulla <santhosh.edukulla@gmail.com>
2014-08-05 12:16:08 +05:30
Santhosh Edukulla b7d3f1bd30 Fixed few coverity issues for resource synchronization 2014-08-04 16:09:26 +05:30
Anthony Xu 330c4ba578 completed the new vmsync TODOs in the code.
removed old vmsync logic
2014-07-28 12:51:37 -07:00
Hugo Trippaers e78bb1d225 Switch the catch to Throwable. Uncaught exceptions in a scheduled
threadpool executor will not report or log uncaught exceptions but will
kill the thread causing unexplained timeouts in CS.
2014-07-16 16:24:55 +02:00
Santhosh Edukulla 97d296bfbd Fixed Coverity reported performance issues like inefficient string concatenations, wrong boxing or unboxing types, inefficent map element retrievals
Signed-off-by: Daan Hoogland <daan@onecht.net>
2014-07-01 22:06:25 +02:00
Kelven Yang f756d4aa33 Make job info universally available across management server and resource agents 2014-06-24 16:28:22 -07:00
Koushik Das d5754d9101 CLOUDSTACK-6740: Direct agent command throttling improvements
List of changes:
1. Created a separate thread pool for handling cron and ping tasks. The size of the pool is based on direct.agent.pool.size. The existing direct agent pool will run all commands other than cron and ping.
2. For normal tasks (generated as part of user/admin API calls), if throttle limit is reached then tasks get queued up for subsequent execution once threads are available.
3. For cron and ping tasks (internally generated by MS like ping, VM sync etc.), if throttle limit is reached then these gets rejected. Since these are internally generated these can be rejected without any issues.
2014-05-22 14:15:42 +05:30
Anthony Xu b3491bcbac removed unused command ClusterSyncCommand 2014-05-01 11:45:19 -07:00
Ding Yuan c031eb7d38 CLOUDSTACK-6242: exception handling improvements
Signed-off-by: Daan Hoogland <daan@onecht.net>
2014-04-15 08:07:15 +02:00
Koushik Das 54e9a98e8b CLOUDSTACK-6362: Parallel VM deployment - direct.agent.thread.cap needs to default to 1.0 (currently 0.1) to allow for parallel Vm deployments. 2014-04-09 12:28:01 +05:30
Alex Huang 4ebb92c492 Fixed some warnings about using a deprecated constructor 2014-03-25 16:48:27 -07:00
Alex Huang f445274ed3 Added a config to enable checking whether a db transaction is wrapped around communications with the agent. If it is, an exception is thrown. This assert has actually been there because it is part of CloudStack's design principle to not use db transactions as a way to enforce atomicity in executing things on hardware resources. However, the assert has been ignored since the move to maven which is not good with enabling asserts. Since then, there's been a lot of commands added that actually runs within db transaction. This is a big no no as the problem is that the remote operation may take a long time and the db can actually close the connection, causing a rollback of the transaction. We should not depend on transactions to enforce the atomicity anyways. 2014-03-25 16:35:49 -07:00
Anthony Xu 370554e9d9 only ping timeout trigger host HA, otherwise there may be two threads try to HA the same VM 2014-03-05 16:50:33 -08:00
Kelven Yang 90262a81ec Do not do investigation for SSVM/CPVM agent host upon disconnect. 2014-02-28 15:36:00 -08:00
wrodrigues 3a7e4103fc FindBugs findings: fixing equals() methods in 2 classes; commenting out dead variable in 1 class; adding 5 tests to cover the changes in the equals() methods.
Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
2014-02-25 15:18:16 +01:00
Hugo Trippaers 26b32141a8 Findbugs : Fixes for several findings
Made a comment on the use of ConcurrentHashMap for _agent
Conflicts:
	engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
2014-02-14 18:37:45 +01:00
Daan Hoogland 9778481d85 findbugs: handling of long values and wrappers 2014-02-03 20:19:11 +01:00
Devdeep Singh c75f8bcc06 CLOUDSTACK-5420: The agent manager wasn't transitioning the host to maintenance
mode if their are no vms running on the host. Made the change to do so.
2013-12-26 11:15:51 +05:30
Alex Huang be5e5cc641 All Checkstyle problems corrected 2013-12-12 12:26:07 -08:00
Alena Prokharchyk bd6f706b72 CLOUDSTACK-5261: added support for Alert publishing via ROOT Admin API
Conflicts:
	engine/orchestration/src/com/cloud/agent/manager/AgentManagerImpl.java
	engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
	engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
	engine/storage/volume/src/org/apache/cloudstack/storage/datastore/provider/DefaultHostListener.java
	engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
	plugins/hypervisors/hyperv/src/com/cloud/hypervisor/hyperv/discoverer/HypervServerDiscoverer.java
	plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
	plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
	server/src/com/cloud/alert/AlertManagerImpl.java
	server/src/com/cloud/alert/ConsoleProxyAlertAdapter.java
	server/src/com/cloud/alert/SecondaryStorageVmAlertAdapter.java
	server/src/com/cloud/configuration/ConfigurationManagerImpl.java
	server/src/com/cloud/ha/HighAvailabilityManagerExtImpl.java
	server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
	server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
	server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
	server/src/com/cloud/vm/UserVmManagerImpl.java
	usage/src/com/cloud/usage/UsageAlertManagerImpl.java
	usage/src/com/cloud/usage/UsageManagerImpl.java

listAlerts: introduced new parameter "name" to the alertResponse

Conflicts:
	api/src/org/apache/cloudstack/api/command/admin/resource/ListAlertsCmd.java
	server/src/com/cloud/alert/AlertManagerImpl.java
	usage/src/com/cloud/usage/UsageAlertManagerImpl.java

Added new Admin API - generateAlert. Available to ROOT admin only

Conflicts:
	api/src/org/apache/cloudstack/alert/AlertService.java
	api/src/org/apache/cloudstack/api/BaseCmd.java
	usage/src/com/cloud/usage/UsageAlertManagerImpl.java

listAlerts: implemented search by alert name

Conflicts:
	api/src/org/apache/cloudstack/alert/AlertService.java
	api/src/org/apache/cloudstack/api/command/admin/resource/ListAlertsCmd.java
	engine/schema/src/com/cloud/alert/AlertVO.java
2013-12-04 10:05:46 -08:00
Alena Prokharchyk e8ec75a2b5 Removed unused agent lb timer 2013-11-21 14:29:40 -08:00
Alex Huang d620df2bdd Reformatted all of the code. 2013-11-21 06:15:26 -08:00
Alex Huang 224f479974 Removed trailing spaces 2013-11-21 04:08:01 -08:00
Alex Huang 8d62744681 Reformat all source code. Added checkstyle to check the source code 2013-11-20 07:26:53 -08:00
Laszlo Hornyak 6f3688d13d Fill the creationMonitors based on priority
If not priotity, append to the end of the list.

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2013-11-08 21:51:04 +01:00
Koushik Das 269a4ef11e CLOUDSTACK-4855: Throttle based on the # of outstanding requests to the directly managed HV host (direct agents)
Cloudstack sends requests to directly managed HV hosts (direct agents) using the direct agent thread pool. The size of the pool is determined by global config direct.agent.pool.size defaulted to 500.

Currently there is no restriction on the number of threads a direct agent can use from this shared thread pool to send requests to the host. This is fine as long as the host is responding to requests
in a reasonable amount of time. But if there is a considerable delay in getting response, the thread remain blocked for that much time. As more commands are send to the slow host threads keep getting
blocked. This can eventually lead to a situation where requests to healthy hosts cannot be processed as there are not enough free threads.

The problem being addressed here is to localize the impact of few bad hosts, so that entire management server is not affected.

One such way is to throttle based on the # of outstanding requests on per host basis. The outstanding requests to a host will be a % of direct agent pool size. This is configurable based on
direct.agent.thread.cap. The default value is 0.1 or 10%, a value of 1 would mean the old behavior where there is no upper cap. This will ensure that the impacted host will be bound by a upper cap on the number of threads it can use to process requests and not the entire pool.
2013-11-04 14:52:26 +05:30
Darren Shepherd 711ad386d1 Random cleanup 2013-10-16 16:18:49 -07:00
Darren Shepherd f62e28c1ec New Transaction API
Introduction of a new Transaction API that is more consistent with the style
of Spring's transaction managment.  The existing Transaction class was renamed
to TransactionLegacy.  All of the non-DAO code in the management server has been
updated to use the new Transaction API.
2013-10-16 09:21:00 -07:00
Marcus Sorensen 4e0e7410e9 Store agent hostname in attache, print it in logs wherever possible. This
was discussed on the mailing list as a useful debugging tool, currently
the log prints the DB id of the agent, which makes admins have to look
it up to know where the Command was run.
2013-10-14 11:46:01 -06:00
Alena Prokharchyk 66185076df Addded back Agent Load Balancing functionality (was temporarely disabled in master by vmSync merge) 2013-10-07 09:46:52 -07:00
Darren Shepherd aed5e9dc2a Add Manage Context framework
The managed context framework provides a simple way to add logic
to ACS at the various entry points of the system.  As threads are
launched and ran listeners can be registered for onEntry or onLeave
of the managed context.  This framework will be used specifically
to handle DB transaction checking and setting up the CallContext.
This framework is need to transition away from ACS custom AOP to
Spring AOP.
2013-10-02 13:09:52 -07:00
Alex Huang b60eef3e82 Added comments and finished off the work 2013-09-28 07:53:28 -07:00
Alex Huang e8cac2c5d8 Changed SearchCriteria2 to GenericQueryBuilder to reflect the same placement 2013-09-28 07:53:26 -07:00