Commit Graph

206 Commits

Author SHA1 Message Date
Hugo Trippaers 676b2d1569 Fix overflow before widening issues reported by Coverity 2014-07-24 13:22:14 +02: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
Hugo Trippaers cd0ef09344 Fix typo and add the right exception to the error map. 2014-06-25 15:51:28 +02:00
Kelven Yang f756d4aa33 Make job info universally available across management server and resource agents 2014-06-24 16:28:22 -07:00
Anshul Gangwar 450d890942 CLOUDSTACK-6830: Fixed during VM migration, volumes on zone wide primary store
requires storage migration resulting in failure of VM migration. This also improves
the hostsformigration api. Firstly we were trying to list all hosts and then
finding suitable storage pools for all volumes and then we were checking whether
vm migration requires storage migration to that host. Now the process is updated.
We are checking for only those volumes which are not in zone wide primary store.
We are verifying by comparing volumes->poolid->clusterid to host clusterid. If it
uses local or clusterids are different then verifying whether host has suitable
storage pools for the volume of the vm to be migrated too.
2014-06-20 16:32:19 +05:30
Kelven Yang f529823566 Add ReflectionUse annotation for marking up *un-used* methods 2014-06-17 17:31:29 -07:00
Rajani Karuturi b666a1f3a5 Fixed issues reported by coverity NPEs, unwritten field access and self assignment
Signed-off-by: Koushik Das <koushik@apache.org>
2014-06-10 14:34:47 +05:30
Prachi Damle 3b3f4577b0 CLOUDSTACK-6476: Basic Zone with Multiple Pods Setup: DHCP server doesnt get deployed in the pod where the VM gets deployed
Changes:
PodId in which the router should get started was not being saved to the DB due to the VO's setter method not following the setXXX format. So when planner loaded the router from DB, it always got podId as null and that would allow planner to deploy the router in any pod. If the router happens to start in a different pod than the user VM, the Vm fails to start since the Dhcp service check fails.

Fixed the VO's setPodId method, that was causing the DB save operation fail.
2014-06-06 16:15:31 -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
Devdeep Singh 245b7f4c39 CLOUDSTACK-6510: Fix gson serialization exception in storage migration. Gson couldn't serialize
a map with volume and storagepool objects for logging. Fixed by using volume and storage pool
ids instead of objects in the map.
2014-05-08 12:23:46 +05:30
Anthony Xu b3491bcbac removed unused command ClusterSyncCommand 2014-05-01 11:45:19 -07:00
Harikrishna Patnala ab39739bd8 CLOUDSTACK-6211: Xenserver - HA - SSVM fails to start due to running out of management Ip ranges when testing host down scenarios
Signed-off-by: Koushik Das <koushik@apache.org>
2014-04-18 17:52:49 +05:30
Prachi Damle 6397f1c82e CLOUDSTACK-6329 [Automation] Changing service offering of VM from medium to small failing with NPE
- The hostAllocators were not getting set
2014-04-17 17:55:17 -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 5e90b75c98 CLOUDSTACK-6402: Fix StopCommand so that VMs are not removed accidentally as part of vmsync
Added a new flag 'checkBeforeCleanup' to StopCommand based on which check is done to see if VM is running in HV host.
If VM is running then in this case it is not stopped and the operation bails out.
Also modified the MS code to call the StopCommand with appropriate value for the flag based on the context.
Currently it is only set to 'true' when called from the new vmsync logic based on powerstate of VM. For rest it
is set to 'false' meaning no change in behaviour.
2014-04-14 16:52:37 +05:30
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
Kelven Yang cd8801f6f7 Do app-level iteration to avoid mysql deadlocks 2014-04-02 15:46:50 -07:00
Edison Su 504a6cdee2 CLOUDSTACK-5432:sync vm and storage commands on mgt server for kvm
Conflicts:

	engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
	server/src/com/cloud/hypervisor/KVMGuru.java
2014-03-28 16:24:07 -07:00
Anthony Xu 6d103e62fe use correct interval for cleanTask and transitionTask 2014-03-26 14:22:27 -07:00
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 e3fc5a4d46 vm meta sync sync xstoolsversion as well 2014-03-24 15:48:21 -07:00
Laszlo Hornyak 2c4ac5e4d3 removed some redundant Boolean isntantiations
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-03-22 18:34:45 +01:00
Kelven Yang ce1e53f451 Fix style-check issue after cherry-picks 2014-03-18 17:00:08 -07:00
Kelven Yang d9506d2a05 Let VMSync be aware of HA take-over on VM state management. 2014-03-18 16:45:45 -07:00
Nitin Mehta 5d19a936a2 CLOUDSTACK-6247: Usage Events - hide them when display flag is off in the context of "Ability to have better control over first class objects in CS" feature
Work done for network offering.
2014-03-18 14:00:55 -07:00
Mike Tutkowski d55c4dd804 CLOUDSTACK-6170 2014-03-14 23:47:20 -06:00
Kelven Yang 5e4a4e8b34 Fix a regression that caused API job to return prematurely. 2014-03-14 17:31:16 -07:00
Kelven Yang ec01791936 Fix the missing java imports from automatic merge 2014-03-14 14:22:23 -07:00
Kelven Yang 12f7cbcb76 Deal with concurrent state update for VM and Host objects. 2014-03-14 14:07:39 -07:00
Kelven Yang 4399e245f4 A typo that leads to opposite decision on determine whether or not to notify out-of-band VM state changes. 2014-03-13 17:17:15 -07:00
Kelven Yang 5a75a3e1f9 Give graceful state transition period to live with race-condition on VM startup time 2014-03-13 16:59:56 -07:00
Kelven Yang 6ad245e675 Restore to old HA logic, but suppress VM state change on resource state report to avoid interferring HA. 2014-03-13 16:59:56 -07:00
Kelven Yang 53f306e8e2 Send StopCommand(Cleanup) if out-of-band power-off VM is detected. 2014-03-13 16:59:56 -07:00
Alena Prokharchyk 1b83698dac deployVm/startVm APIs: ability to define deploymentPlanner for VmToStart in the api call (available to ROOT admin only) 2014-03-13 10:23:34 -07:00
Sanjay Tripathi c7d31fe288 CLOUDSTACK-4760 : Enabling GPU support for XenServer.
CLOUDSTACK-4762 : Enabling VGPU support for XenServer.

This feature is to enable the GPU-passthrough and vGPU functionality,
with the help of this feature, admins/users will be able to leverage
the GPU graphics unit power by deploying a virtul machine with GPU or
vGPU support or by changing the service offering of an existing VM
at any later point of time. There GPU/vGPU enabled VMs are able to run
graphical applications.
For now, this feature is only supported with XenServer hypervisor but
can be extended to add the support of other hypervisors.
2014-03-11 15:44:51 +05:30
Mike Tutkowski c427e8db1c CLOUDSTACK-6170 2014-03-07 15:38:50 -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
Anthony Xu ad88bbb684 Use seperate path to sync VM metadata for XS
VM status sync only does VM status sync
2014-03-05 15:44:50 -08:00
Anthony Xu ab1d3af460 Use seperate path to sync VM metadata for XS
VM status sync only does VM status sync
2014-03-05 15:44:50 -08:00
Alena Prokharchyk 5a8d165afa CLOUDSTACK-6198: use List DS for storing NicProfiles as public network can have more than one nic
Conflicts:
	engine/api/src/com/cloud/vm/VirtualMachineManager.java
	engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
	engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
	engine/orchestration/src/org/apache/cloudstack/engine/orchestration/CloudOrchestrator.java
	engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
	plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java
	plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java
	plugins/network-elements/juniper-contrail/src/org/apache/cloudstack/network/contrail/management/ServiceManagerImpl.java
	server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
	server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
	server/test/com/cloud/vpc/MockNetworkManagerImpl.java
	services/secondary-storage/controller/src/org/apache/cloudstack/secondarystorage/SecondaryStorageManagerImpl.java
2014-03-04 15:37:52 -08:00
Kelven Yang 90262a81ec Do not do investigation for SSVM/CPVM agent host upon disconnect. 2014-02-28 15:36:00 -08:00
Kelven Yang b21662f890 make sure XS report VM state even if there is no running VM on the host. 2014-02-28 15:35:59 -08:00
Kelven Yang 7c7bd0934a pass InsufficientCapacityException across job boundary since some HA logic relies on it. Reviewed-By: Self 2014-02-28 15:35:59 -08:00
Kelven Yang 537bf7ced1 add job path to help associate an API job to related internal job. Reviewed-By: Self 2014-02-28 15:35:59 -08:00
Kelven Yang fed85813e9 use lock table for locking 2014-02-28 15:35:58 -08:00
Kelven Yang e6e12e33de VirtualMachineManager.checkWorkItems() uses wrong time unit 2014-02-28 15:35:58 -08:00
Kelven Yang 38a1300141 pass NULL host when performing state transition to follow-up with VM power-off report 2014-02-28 15:35:58 -08:00
Kelven Yang fa7d9ad1a8 VirtualMachineManager.migrateAway() need to put under management of new sync model 2014-02-28 15:35:58 -08:00
Kelven Yang 434f8dab72 Remove the hacking way of blocking VM state transition introduced by individual VM snapshot orchestration flow 2014-02-28 15:35:58 -08:00
Kelven Yang 58c26ee128 return the correct NicProfile after job completion for VPC AddVmToNetwork command 2014-02-28 15:35:58 -08:00
Kelven Yang 18b5fb5a3c do not shutdown alien VMs upon host startup. Send StopCommand for out-of-band stopped VM to restore legacy XS/KVM behave 2014-02-28 15:35:58 -08:00
Kelven Yang 85adaf83c7 check report-missing event for VM in starting state. 2014-02-28 15:35:57 -08:00
Kelven Yang 13e956a10c Add a missing initialization call to setup EntityManager in VmMigrateWork 2014-02-28 15:35:57 -08:00
Kelven Yang 86a63c49bc propagate job execution runtime exception to API context 2014-02-28 15:35:57 -08:00
Kelven Yang 206a9ed53f disable XS full host sync and delta sync when new sync model is enabled 2014-02-28 15:35:57 -08:00
Kelven Yang 90ea3249a8 disable cluster-scope report from XS resource 2014-02-28 15:35:57 -08:00
Kelven Yang 5d73217723 process the missing power report of a VM that exists in CloudStack but not in hypervisor 2014-02-28 15:35:57 -08:00
Kelven Yang fda7219646 CLOUDSTACK-5928: disable host delta sync when new VM sync is enabled 2014-02-28 15:35:57 -08:00
Kelven Yang 441be43b8c CLOUDSTACK-5358: Bring back concurrency control in sync-queue management 2014-02-28 15:35:57 -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
Koushik Das 167babd8c8 CLOUDSTACK-6124: During MS maintenance unfinished work items are not cleaned up resulting in them getting repeated for every subsequent maintenance
Updating the op_it_work table entry appropriately in db once the unfinished work item is completed.
2014-02-21 16:29:51 +05:30
Hugo Trippaers 97bad4f9b3 Fix checkstyle and license issues 2014-02-14 18:37:47 +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
Alena Prokharchyk e0de79b170 Resource metadata: by default, all metadata is set with display=true (meaning that the detail is avaialble for display to the regular user). If admin wants to set a specific detail to be false, he has to specify it explicitly in addResourceDetail command 2014-02-10 12:05:59 -08:00
Daan Hoogland 9778481d85 findbugs: handling of long values and wrappers 2014-02-03 20:19:11 +01:00
Koushik Das 580ebb0010 CLOUDSTACK-5989: Trying to start a vm while 'vm snapshot' is in progress results in inconsistency
The fix is to fail the start operation if a vm snapshot is in progress
2014-01-31 10:39:43 +05:30
Laszlo Hornyak ebf57654e7 replaced Long instantiations with Autoboxing
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-01-25 15:01:03 +01:00
Mike Tutkowski b5b4607f79 CLOUDSTACK-5873: [Automation] Failed to attach volume to VM, if the vm is created with option startvm=false 2014-01-22 11:17:39 -07:00
Mike Tutkowski 90e945fd74 Fixing an issue with expunge logic 2014-01-20 16:25:39 -07:00
Mike Tutkowski 37332ad9d4 CLOUDSTACK-5873: [Automation] Failed to attach volume to VM, if the vm is created with option startvm=false 2014-01-18 18:07:10 -07:00
Kelven Yang a9733b5df2 CLOUDSTACK-5731: Use general instance type to categorize VM work jobs to correctly serialize VM operations 2014-01-17 11:55:14 -08:00
Anthony Xu 58a9a9b0cd only send stop command when agent reports VM running and CS thinks it is stopped. 2014-01-17 11:50:13 -08:00
Mike Tutkowski e9c9887ee0 CLOUDSTACK-5873: [Automation] Failed to attach volume to VM, if the vm is created with option startvm=false 2014-01-16 12:20:54 -07:00
Kelven Yang 7164fc6e73 CLOUDSTACK-5696: Fix sync issue with out-of-band changes 2014-01-15 13:11:02 -08:00
Mike Tutkowski 7ef78aac40 Merge from 4.3: CLOUDSTACK-5662: XenServer can't discover iSCSI targets with different credentials 2014-01-09 22:37:39 -07:00
Mike Tutkowski 6944bf9bba Merge from 4.3: CLOUDSTACK-5662: XenServer can't discover iSCSI targets with different credentials 2014-01-09 22:02:43 -07:00
Kelven Yang 1e2e1ea051 CLOUDSTACK-5765: cleanup internal serialization and exception propagation issues 2014-01-09 14:29:13 -08:00
Kelven Yang 0965adb003 CLOUDSTACK-5672: Fix VM work job serialization issues in Add/Remove nic 2014-01-09 14:29:12 -08:00
Kelven Yang 87381d4236 CLOUDSTACK-5725: put origin flow context id into log4j context prefix to link jobs with the orchestration work flow in logging 2014-01-09 14:29:12 -08:00
Kelven Yang ad6454d2bf CLOUDSTACK-5767: Remove the logic of using underlying job related fields for volume specific logic. 2014-01-09 14:29:12 -08:00
Kelven Yang 737a382c38 Fix a typo caused problem in attach-volume process 2014-01-09 14:29:12 -08:00
Kelven Yang 0587382265 CLOUDSTACK-669: Finalize VM work dispatching mechanism to avoid big switch statement 2014-01-09 14:29:12 -08:00
Kelven Yang a6f126d24e Fix a style-check problem after cherry-pick 2014-01-09 14:29:12 -08:00
Kelven Yang 8c93bd6080 CLOUDSTACK-669: Convert volume snapshot orchestration flow to make it be serialized with other VM operations 2014-01-09 14:29:12 -08:00
Kelven Yang bf9a554522 CLOUDSTACK-669: covert VMsnapshot orchestration flows to make them be serialized with other VM operations 2014-01-09 14:29:12 -08:00
Harikrishna Patnala 00e67f57e7 CLOUDSTACK-5827: [Automation] Destroy VM failed, while deleting account
Signed-off-by: Koushik Das <koushik@apache.org>
2014-01-08 18:38:59 +05:30
Koushik Das 6d75c31958 CLOUDSTACK-5002: unable to destroy vm ;VM destroy failed in Stop i-2-59-VM Command due to You gave an invalid object reference. The object may have recently been deleted.
This is happening as concurrent operations are happening on the same VM. Earlier this was not seen as all vm operations were synchronized at agent layer. By making execute.in.sequence
global config to false this restriction is no longer there. In the latest code operations to a single vm are synchronized by maintaining a job queue. In some scenarios the destroy vm operation
was not going through this job queue mechanism and so was resulting in failures due to simultaneous operations.
2014-01-07 14:23:26 +05:30
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
Nitin Mehta 1c0b8db01b CLOUDSTACK-4941:
Adding the missing file
During HA and maintenance call different planners (if the original planners are not able to find capacity) which skip some heurestics
2013-12-18 16:27:20 -08:00
Kelven Yang 3c965d0685 CLOUDSTACK-669: convert volume attach/detach flows to make them be serialized with other VM operations 2013-12-18 16:14:07 -08:00
Min Chen afcf967d24 Revert "CLOUDSTACK-4941:"
This reverts commit 231e7c01f2.
2013-12-18 16:01:37 -08:00
Nitin Mehta 231e7c01f2 CLOUDSTACK-4941:
During HA and maintenance call different planners (if the original planners are not able to find capacity) which skip some heurestics
2013-12-18 14:58:37 -08:00
Prachi Damle 6d6d11f7a4 CLOUDSTACK-4852: Since upgrade to 4.2 only users at the zone-attached domain level can manipulate VMs
Changes:
- Removing the trailing spaces in the file
2013-12-17 14:55:59 -08:00
Prachi Damle 78e4dd8566 CLOUDSTACK-4852: Since upgrade to 4.2 only users at the zone-attached domain level can manipulate VMs
Changes:
- The vmprofile owner passed in to the planner should be the VM's account and not the caller
- Do not do the access check for Root Admin

Conflicts:

	server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
2013-12-17 14:55:56 -08:00
Kelven Yang 719271b1d9 Fix tab and trailing spaces 2013-12-16 15:15:30 -08:00
Kelven Yang 9d3827e6fe CLOUDSTACK-669: refactor VM work job dispatcher to allow volume/snapshot manager to participate serialized job handling 2013-12-16 15:15:30 -08:00
Alex Huang be5e5cc641 All Checkstyle problems corrected 2013-12-12 12:26:07 -08:00
Kelven Yang 26c1ba296c CLOUDSTACK-669: put user vm work under new vmsync model 2013-12-11 16:29:59 -08:00