Commit Graph

31504 Commits

Author SHA1 Message Date
nvazquez ebf42dac50 Add vmware dependency on Veeam plugin 2018-06-04 10:28:33 -03:00
nvazquez cd327b165f Merge branch 'bckuprecframework' of github.com:shapeblue/cloudstack into bckuprecframework 2018-06-01 14:02:20 -03:00
nvazquez 5ed0cf5bdd Add list backups and list policy-VM mappings 2018-06-01 14:01:41 -03:00
Rohit Yadav b259fb7a71 veeam: implement add/remove vm to job and kick adhoc backup job
TODO: stick framework (upper layer APIs) with plugin for end-to-end
phase1 features.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-06-01 14:36:07 +05:30
nvazquez 979f3947b2 List backup policy VM mappings and refactor 2018-05-30 22:36:00 -03:00
Rohit Yadav 400f1412fd wip new method to allow assigning and checking of a VM to a Veeam job
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-05-30 14:01:09 +05:30
nvazquez 01059d9d5f Remove VM from backup policy and improvements 2018-05-30 00:17:40 -03:00
nvazquez bc0c2472e1 Refactor on restore methods 2018-05-27 23:52:21 -03:00
nvazquez 5580fe1863 Adapt Veeam listBackupPolicies call to the framework 2018-05-25 10:41:33 -03:00
Rohit Yadav 3292d99bcb veeam api client: xml parsing+objects for veeam backups and jobs
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-05-25 10:41:33 -03:00
nvazquez 5b181bec37 Sanitize and refactor 2018-05-25 10:41:33 -03:00
nvazquez 9c3db124c5 Refactor 2018-05-25 10:41:33 -03:00
nvazquez 450627e656 Marvin tests for backup policies 2018-05-25 10:41:33 -03:00
nvazquez 3729f156a5 BackupPolicy marvin wrappers and test 2018-05-25 10:41:33 -03:00
nvazquez 526149dc3b Missing header and fix unit test failures 2018-05-25 10:41:32 -03:00
nvazquez 5f00a3e00e Refactor and improvements 2018-05-25 10:41:32 -03:00
nvazquez 9a692752c4 API final additions and schema 2018-05-25 10:41:32 -03:00
Rohit Yadav dc4bf22487 veeam: add wip API client
auth and API listing works for backups and jobs, parsing of XML is next
step

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-05-25 10:41:32 -03:00
nvazquez cabe4e5f54 Refactor and new additions on backup provider 2018-05-25 10:41:32 -03:00
Rohit Yadav 2b8831e54c remove unused class, merge typos
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-05-25 10:41:32 -03:00
Rohit Yadav 68eb42b83c new refactor and simplifications, add veeam plugin skeleton/stub
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-05-25 10:41:32 -03:00
nvazquez a31de6cf36 Big refactor and improvements 2018-05-25 10:41:31 -03:00
nvazquez fcd39839f8 Backup and Recovery Framework and DummyProvider 2018-05-25 10:41:31 -03:00
Rohit Yadav ca17b6a126 Merge branch '4.11': Fixes #2666 conditional template filter (#2669)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-05-24 13:01:23 +05:30
dahn 2fad5bea31 ui: Fixes #2666 conditional template filter (#2669)
This fixes issue of warning when deploying vm as non-root admin user account.
2018-05-24 12:59:57 +05:30
Rohit Yadav 76a4e56ef3 Merge branch '4.11' 2018-05-23 20:42:10 +05:30
dahn 7a3a882d12 server: Fixes #2545 revert dedicate vlan code removal (#2664)
This re-adds logic to allow dedication of public ip/range to a domain and its usage.
2018-05-23 20:40:34 +05:30
Rohit Yadav ebb22a4818 server: Calculate fresh capacity per VM (#2663)
This fixes and ensures that every VM has its capacity individually
calculated, with the initial override of 1.0f as overcommit ratio.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-05-23 16:20:07 +02:00
Frank Maximus 5221778aa4 CLOUDSTACK-10375: Don't create DefaultNuageVspSharedNetworkOfferingWithSGService (#2667) 2018-05-23 16:15:15 +02:00
Rohit Yadav ea373eb1e5
Merge apache/4.11
ui: Fixes #2558 use POST for uploadSslCert API request (#2661)
2018-05-23 09:36:03 +05:30
Gabriel Beims Bräscher eb23d91cf4 ui: Fixes #2558 use POST for uploadSslCert API request (#2661) 2018-05-23 09:34:30 +05:30
Rohit Yadav ada1e730c8 Merge branch '4.11' 2018-05-22 17:03:24 +05:30
Rafael Weingärtner 8b09620d77 CLOUDSTACK-10276: listVolumes not working when storage UUID is not a UUID (#2639)
When configuring a pre-setup primary storage we can enter the name-label of the storage that is going to be used by ACS and is already set up in the host. The problem is that we can use any String of characters there, and this String does not need to be a UUID. When listing volumes from a primary storage that has such conditions, the list will return all of the volumes in the cloud because the “API framework” will ignore that value as it is not a UUID type.
2018-05-22 17:02:40 +05:30
Rohit Yadav 9c1eabfc28 Merge branch '4.11'
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-05-21 16:27:51 +05:30
Gabriel Beims Bräscher 02ece53375 addNicToVirtualMachine: Fixes #2540 handle invalid MAC address arg (#2653)
Look for the next available MAC address if the given MAC address in command addNicToVirtualMachine is invalid (null, empty, blank). Fixes #2540
2018-05-21 16:24:21 +05:30
Mike Tutkowski e471a46a05 managed-storage: handle VM start in a new cluster on different host (#2656)
Example: A VM that uses managed storage is stopped. The VM is then started on a different host in the same cluster. The Start operation fails.

To get around this issue, you must either start the VM up on the same host or on a host in a different cluster.

The reason is due to a slightly erroneous check in VolumeOrchestrator.prepare.

To solve this issue, we should be checking if the cluster ID changes, not if the host ID changes.
2018-05-21 16:22:33 +05:30
Rohit Yadav 7c6777b8d3 Merge branch '4.11': allow config drives on primary storage for KVM (#2651)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-05-21 14:50:55 +05:30
Rohit Yadav acc5fdcdbd
CLOUDSTACK-10290: allow config drives on primary storage for KVM (#2651)
This introduces a new global setting `vm.configdrive.primarypool.enabled` to toggle creation/hosting of config drive iso files on primary storage, the default will be false causing them to be hosted on secondary storage. The current support is limited from hypervisor resource side and in current implementation limited to `KVM` only. The next big change is that config drive is created at a temporary location by management server and shipped to either KVM or SSVM agent via cmd-answer pattern, the data of which is not logged in logs. This saves us from adding genisoimage dependency on cloudstack-agent pkg.

The APIs to reset ssh public key, password and user-data (via update VM API) requires that VM should be shutdown. Therefore, in the refactoring I removed the case of updation of existing ISO. If there are objections I'll re-put the strategy to detach+attach new config iso as a way of updation. In the refactored implementation, the folder name is changed to lower-cased configdrive. And during VM start, migration or shutdown/removal if primary storage is enable for use, the KVM agent will handle cleanup tasks otherwise SSVM agent will handle them.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-05-21 14:27:23 +05:30
Rohit Yadav 2b7d6cf7e0 Merge branch '4.11': Add option on if to VM HA power-on a OOB-shut-off-VM (#2473)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-05-21 13:41:36 +05:30
Rohit Yadav 93e374599a Merge branch '4.11'
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-05-21 13:23:13 +05:30
Slair1 f23278a438 CLOUDSTACK-10309: Add option on if to VM HA power-on a OOB-shut-off-VM (#2473)
When a user shuts down their VM from the guest OS (and VM HA is enabled), the VM just powers itself back on. Our environment is on KVM hosts.

CloudStack does not know the difference between a VM failing or being shutdown from within the guest OS.

This is a major pain point for all our users - especially since they don't pay for VMs when they are shutoff. It is not intuitive for end-users to understand why they can't shutdown VMs from within the guest OS. Especially when they all come from (non-cloudstack) VMware and Hyper-V environments where this is not an issue.

However, if a host fails, we need VM HA to still work.

This PR that creates a configuration option "ha.vm.restart.hostup". With this option set to false, if CloudStack sees a VM shutdown out-of-band, but the host it was on is still online, then it won't power the VM back on. The logic is that since the host is online, it was most likely shutdown from the guest OS.

For when a host actually fails, standard VM HA logic takes over and powers on VMs (if they have VM HA enabled) if the host they were on fails.

If that "ha.vm.restart.hostup" option is true (the default to match current functionality), it works like always, and even in-guest shutdowns of VMs causes CloudStack to power back on the VM.
2018-05-21 13:13:38 +05:30
Mike Tutkowski 7e6fddb7ab managed-storage: Handle Ceph (#2655)
In 4.11.0, I added the ability to online migrate volumes from NFS to managed storage. This actually works for Ceph to managed storage in a private 4.8 branch, as well. I thought I had brought along all of the necessary code from that private 4.8 branch to make Ceph to managed storage functional in 4.11.0, but missed one piece (which is fixed by this PR).
2018-05-21 12:54:42 +05:30
Nicolas Vazquez 06f7e495dc Host Affinity plugin (#2630)
This implements a new host-affinity plugin.
2018-05-21 12:49:08 +05:30
Nicolas Vazquez 9aa1743984 registerIso: Fixes #2654 register iso in all zones (#2652)
Fix to register of iso in all zones. Fixes #2654.
2018-05-21 12:26:31 +05:30
Rafael Weingärtner 0afba54cd5 Re-add code that was missed during merge forward of PR#2629 2018-05-16 17:13:50 -03:00
Rafael Weingärtner 15eddf3dd6 Merge forward branch '4.11' PR #2629
Fix primary storage count when deleting volumes (#2629)
2018-05-16 16:59:17 -03:00
Rafael Weingärtner b9ed42bd29
Fix primary storage count when deleting volumes (#2629)
* Primary Storage count for an account does not decrease when a Data Disk is deleted

When a data disk is created and not attached in a running VM, the "deleteVolume" will not decrement the count for used primary storage in the VMs accounting information. The property that is not being decremented is called "primarystoragetotal"; this information can be retrieved via "listAccounts" API method.

Steps to reproduce this issue:
1 - Create an account, deploy a VM in it
2 - Check the primary storage count for the account with listAccounts API
3 - Create a data disk
4 - Check the primary storage count for the account with listAccounts API
5 - Delete the Data disk
6 - Check the primary storage count for the account with listAccounts API - It is the same as before deleting the data disk (it should not be the same as the value in step 2!)

* formatting and cleanups

* fix imports that were wrongly changed during rebase
2018-05-16 15:28:28 -03:00
Rohit Yadav 4661daa1dd Merge branch '4.11': Fixes #2633 don't block agent for pending tasks on reconnection (#2638)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-05-16 15:36:10 +05:30
Rohit Yadav d893fb5b00
agent: Fixes #2633 don't wait for pending tasks on reconnection (#2638)
When agent loses connection with management server, the reconnection
logic waits for any pending tasks to finish. However, when such tasks
do finish they fail to send an `Answer` back to managements server.
Therefore from a management server's perspective such pending
operations are stuck in a FSM state and need manual removal or fixing.
This is by design where management server's side cmd-answer request
pattern is code/execution dependent, therefore even if the answer
were to be sent when management server came back up (reconnects)
the management server will fail to acknowledge and process the answer
due to missing listeners or being in the exact state to handle answers.

Historically, the Agent would wait to reconnect until the internal
tasks complete but I found no reason why it should wait for reconnection
at all.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-05-16 15:35:00 +05:30
Rohit Yadav a7e248983e Merge branch '4.11': config-drive: use hostname of VM instance of internal VM id (#2645)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-05-16 13:24:14 +05:30