Commit Graph

1138 Commits

Author SHA1 Message Date
Rohit Yadav 85aee8d18d CLOUDSTACK-10013: SystemVM codebase refactorings and improvements
- Refactors and simplifies systemvm codebase file structures keeping
  the same resultant systemvm.iso packaging
- Password server systemd script and new postinit script that runs
  before sshd starts
- Fixes to keepalived and conntrackd config to make rVRs work again
- New /etc/issue featuring ascii based cloudmonkey logo/message and
  systemvmtemplate version
- SystemVM python codebase linted and tested. Added pylint/pep to
  Travis.
- iptables re-application fixes for non-VR systemvms.
- SystemVM template build fixes.
- Default secondary storage vm service offering boosted to have 2vCPUs
  and RAM equal to console proxy.
- Fixes to several marvin based smoke tests, especially rVR related
  tests. rVR tests to consider 3*advert_int+skew timeout before status
  is checked.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-12-23 09:22:44 +05:30
Remi Bergsma 551e11cf3e CLOUDSTACK-10013: Make the generated VR/json files unique (ports #1470)
This ports PR #1470 by @remibergsma.

Make the generated json files unique to prevent concurrency issues:
The json files now have UUIDs to prevent them from getting overwritten
before they've been executed. Prevents config to be pushed to the wrong
router.

2016-02-25 18:32:23,797 DEBUG [c.c.a.t.Request] (AgentManager-Handler-1:null) (logid:) Seq 2-4684025087442026584: Processing:  { Ans: , MgmtId: 90520732674657, via: 2, Ver: v1, Flags: 10, [{"com.cloud.agent.api.routing.GroupA
nswer":{"results":["null - success: null","null - success: [INFO] update_config.py :: Processing incoming file => vm_dhcp_entry.json.4ea45061-2efb-4467-8eaa-db3d77fb0a7b\n[INFO] Processing JSON file vm_dhcp_entry.json.4ea4506
1-2efb-4467-8eaa-db3d77fb0a7b\n"],"result":true,"wait":0}}] }

On the router:
2016-02-25 18:32:23,416  merge.py __moveFile:298 Processed file written to /var/cache/cloud/processed/vm_dhcp_entry.json.4ea45061-2efb-4467-8eaa-db3d77fb0a7b.gz

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-12-23 09:22:44 +05:30
Rohit Yadav a7b233c5dc Merge branch '4.10' 2017-12-23 09:20:24 +05:30
Rohit Yadav bb7d206dab Merge branch '4.9' into 4.10 2017-12-23 09:19:01 +05:30
Frank Maximus c12e1386d3 CLOUDSTACK-10127: For OVS to work use dev/nic id based on mac address for KVM (#2304)
This uses mac address based referencing for nic/dev id for KVM. This fixes openvswitch (ovs) regression.
2017-12-23 09:17:45 +05:30
Sigert Goeminne d49765619d CLOUDSTACK-10024: Network migration support
Co-Authored-By: Frank Maximus frank.maximus@nuagenetworks.net
Co-Authored-By: Raf Smeets raf.smeets@nuagenetworks.net

New API’s:

* migrateNetwork
* migrateVpc
2017-12-21 11:25:17 +01:00
Rafael Weingärtner 3c6df7c970 CLOUDSTACK-10196: Remove ejb-api 3.0 dependency (#2348)
Fixed QuotaAlertManagerImplTest, which was injecting mock objects manually.
2017-12-18 23:59:06 +05:30
Wido den Hollander be3a39ea4f CLOUDSTACK-10177: Only pass IPv6 address to Security Group Python script if present (#2355)
Otherwise we send down a 'null' to a ProcessBuilder in Java instead of a String and this
causes a NPE.

We should check first if the Instance has a IPv6 address before sending it there.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2017-12-11 21:47:50 +05:30
Wido den Hollander fdf2509060 CLOUDSTACK-10160: Fix typo in Libvirt XML definition for Virtio-SCSI (#2341)
* CLOUDSTACK-10160: Fix typo in Libvirt XML definition for Virtio-SCSI

The attribute for the XML element 'controller' should be 'model' and
not 'mode'.

Source: https://libvirt.org/formatdomain.html#elementsControllers

  A scsi controller has an optional attribute model, which is one of
  'auto', 'buslogic', 'ibmvscsi', 'lsilogic', 'lsisas1068', 'lsisas1078',
  'virtio-scsi' or 'vmpvscsi'.

In the current state a regular SCSI device is attached and not a Virtio-SCSI
device.

Signed-off-by: Wido den Hollander <wido@widodh.nl>

* CLOUDSTACK-10160: Add UnitTest for LibvirtVMDef.SCSIDef

To make sure the XML output string is correct

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2017-11-28 09:42:15 +05:30
Wido den Hollander 632479d8f8 CLOUDSTACK-9853: Add support for Secondary IPv6 Addresses and Subnets (#2028)
This commit adds support for passing IPv6 Addresses and/or Subnets as
Secondary IPs.

This is groundwork for CLOUDSTACK-9853 where IPv6 Subnets have to be
allowed in the Security Groups of Instances to we can add DHCPv6
Prefix Delegation.

Use ; instead of : for separating addresses, otherwise it would cause
problems with IPv6 Addresses.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2017-11-22 17:30:33 +05:30
Abhinandan Prateek 4627fb2cd7 CLOUDSTACK-9972: Enhance listVolume API to include physical size and … (#2158)
* CLOUDSTACK-9972: Enhance listVolume API to include physical size and utilization.
Also fixed pool, cluster and pod info

* CLOUDSTACK-9972: Fix volume_view and duplicate API constant

* CLOUDSTACK-9972: Backport Do not allow vms to be deployed on hosts that are in disabled pod

* CLOUDSTACK-9972: Fix localization missing keys

* CLOUDSTACK-9972: Fix sql path
2017-11-05 21:44:43 +05:30
Bitworks Software, Ltd 3381c38cc7 CLOUDSTACK-10073: KVM host RAM overprovisioning (#2266)
Commit enables a new feature for KVM hypervisor which purpose is to increase virtually amount of RAM available beyond the actual limit.
There is a new parameter in agent.properties: host.overcommit.mem.mb which enables adding specified amount of RAM to actually available. It is necessary to utilize KSM and ZSwap features which extend RAM with deduplication and compression.
2017-09-29 11:46:09 +05:30
Wido den Hollander b130e55088 CLOUDSTACK-9397: Add Watchdog timer to KVM Instance (#1707)
The watchdog timer adds functionality where the Hypervisor can detect if an
instance has crashed or stopped functioning.
The watchdog timer adds functionality where the Hypervisor can detect if an
instance has crashed or stopped functioning.

When the Instance has the 'watchdog' daemon running it will send heartbeats
to the /dev/watchdog device.

If these heartbeats are no longer received by the HV it will reset the Instance.

If the Instance never sends the heartbeats the HV does not take action. It only
takes action if it stops sending heartbeats.

This is supported since Libvirt 0.7.3 and can be defined in the XML format as
described in the docs: https://libvirt.org/formatdomain.html#elementsWatchdog

To the 'devices' section this will be added:

In the agent.properties the action to be taken can be defined:

vm.watchdog.action=reset

The same goes for the model. The Intel i6300esb is however the most commonly used.

vm.watchdog.model=i6300esb

When the Instance has the 'watchdog' daemon running it will send heartbeats
to the /dev/watchdog device.

If these heartbeats are no longer received by the HV it will reset the Instance.

If the Instance never sends the heartbeats the HV does not take action. It only
takes action if it stops sending heartbeats.

This is supported since Libvirt 0.7.3 and can be defined in the XML format as
described in the docs: https://libvirt.org/formatdomain.html#elementsWatchdog

To the 'devices' section this will be added:

  <watchdog model='i6300esb' action='reset'/>

In the agent.properties the action to be taken can be defined:

  vm.watchdog.action=reset

The same goes for the model. The Intel i6300esb is however the most commonly used.

  vm.watchdog.model=i6300esb

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2017-09-28 13:56:15 +05:30
Rohit Yadav 774998d76b Updating pom.xml version numbers for release 4.9.4.0-SNAPSHOT
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-09-07 20:21:43 +05:30
Rohit Yadav d2c3408da7 CLOUDSTACK-9782: Improve scheduling of jobs
- Removed three bg thread tasks, uses FSM event-trigger based scheduling
- On successful recovery, kicks VM HA
- Improves overall HA scheduling and task submission, lower DB access

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-08-30 18:06:48 +02:00
Rohit Yadav 212e5ccfa7 CLOUDSTACK-9782: Host HA and KVM HA provider
Host-HA offers investigation, fencing and recovery mechanisms for host that for
any reason are malfunctioning. It uses Activity and Health checks to determine
current host state based on which it may degrade a host or try to recover it. On
failing to recover it, it may try to fence the host.

The core feature is implemented in a hypervisor agnostic way, with two separate
implementations of the driver/provider for Simulator and KVM hypervisors. The
framework also allows for implementation of other hypervisor specific provider
implementation in future.

The Host-HA provider implementation for KVM hypervisor uses the out-of-band
management sub-system to issue IPMI calls to reset (recover) or poweroff (fence)
a host.

The Host-HA provider implementation for Simulator provides a means of testing
and validating the core framework implementation.

Signed-off-by: Abhinandan Prateek <abhinandan.prateek@shapeblue.com>
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-08-30 18:06:48 +02:00
Rohit Yadav d145944be0 Updating pom.xml version numbers for release 4.9.3.0
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-08-28 14:52:37 +02:00
Wido den Hollander 2867080979 CLOUDSTACK-10034: Use libvirt to create new volumes and not rados-java (#2039)
Since libvirt 1.2.2 libvirt will properly create volumes
using RBD format 2.

We can use libvirt to creates the volumes which strips a bit of
code from the CloudStack Agent's responsbility.

RBD format 2 is already used by all volumes created by CloudStack.

This format is the most recent format of RBD and is still actively
being developed.

This removes the support for Ubuntu 12.04 as that does not have the
proper libvirt version available.

Signed-off-by: Wido den Hollander wido@widodh.nl

We can use libvirt to creates the volumes which strips a bit of
code from the CloudStack Agent's responsbility.

RBD format 2 is already used by all volumes created by CloudStack.

This format is the most recent format of RBD and is still actively
being developed.

This removes the support for Ubuntu 12.04 as that does not have the
proper libvirt version available.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2017-08-06 00:04:21 +02:00
Suresh Kumar Anaparti e61815a255 CLOUDSTACK-9794: Unable to attach more than 14 devices to a VM
Updated hardcoded value with max data volumes limit from hypervisor capabilities.

(cherry picked from commit 93f5b6e8a3)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-08-01 20:40:25 +02:00
Wei Zhou c03923c7e7 CLOUDSTACK-9113: skip vm with inconsistent state when getVmNetworkStats 2017-07-23 17:15:23 +02:00
Wei Zhou 960cb84083 CLOUDSTACK-7984: Collect network statistics for VMs on shared network (KVM implementation) 2017-07-23 17:15:23 +02:00
Rohit Yadav 445dbe7c53 Merge remote-tracking branch 'origin/4.10' 2017-07-14 15:00:11 +05:30
Rohit Yadav 32e96abea9 Merge remote-tracking branch 'origin/4.9' into 4.10 2017-07-14 14:59:17 +05:30
Wido den Hollander ca415e7436 CLOUDSTACK-9929: Do not gather statistics for CDROM or FLOPPY devices
Libvirt / Qemu (KVM) does not collect statistics about these either.

On some systems it might even yield a 'internal error' from libvirt
when attempting to gather block statistics from such devices.

For example Ubuntu 16.04 (Xenial) has a issue with this.

Skip them when looping through all devices.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2017-07-14 14:57:11 +05:30
Rajani Karuturi 4bc7c270fa Updating pom.xml version numbers for release 4.11.0.0-SNAPSHOT
Signed-off-by: Rajani Karuturi <rajanikaruturi@gmail.com>
2017-07-12 12:09:38 +05:30
Rajani Karuturi 4f229d19ad Updating pom.xml version numbers for release 4.10.1.0-SNAPSHOT
Signed-off-by: Rajani Karuturi <rajanikaruturi@gmail.com>
2017-07-10 10:36:24 +05:30
Rajani Karuturi 9d2893d44a Updating pom.xml version numbers for release 4.10.0.0
Signed-off-by: Rajani Karuturi <rajanikaruturi@gmail.com>
2017-07-03 10:06:43 +05:30
Rohit Yadav ed376fcad6 Merge remote-tracking branch 'origin/4.9'
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-06-07 11:21:27 +05:30
Rohit Yadav e197652a28 CLOUDSTACK-9860: Fix stackoverflow issue
Fixes issue caused to a PR-refactoring from #2108, reported by
@borisstoyanov

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-06-06 16:14:03 +05:30
Rohit Yadav 8323a175f1 CLOUDSTACK-9860: Power off VMs when stopVM is called with forced=true
The 'force' option provided with the stopVirtualMachine API command is
often assumed to be a hard shutdown sent to the hypervisor, when in fact
it is for CloudStacks' internal use. CloudStack should be able to send
the 'hard' power-off request to the hosts.

When forced parameter on the stopVM API is true, power off (hard shutdown)
a VM. This uses initial changes from #1635 to pass the forced parameter
to hypervisor plugin via the StopCommand, and fixes force stop (poweroff)
handling for KVM, VMware and XenServer.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-05-25 17:25:22 +05:30
Rajani Karuturi e25a444a0c Merge pull request #2121 from bvbharatk/CLOUDSTACK-9641
CLOUDSTACK-9641 In KVM SSVM and CPVM may use the old cmdline data, if…
2017-05-23 10:07:55 +05:30
Bharat Kumar 3c80f00550 CLOUDSTACK-9641 In KVM SSVM and CPVM may use the old cmdline data, if we fail to fetch the new cmdline in the first pass. 2017-05-19 16:50:19 +05:30
Jayapal d04a3e842c CLOUDSTACK-9317: Update review comments and rule state column 2017-05-17 11:08:13 +05:30
Jayapal c20e0ef88f CLOUDSTACK-9317: Fixed disable static nat on leaving ips on interface 2017-05-17 11:03:50 +05:30
Rajani Karuturi 7434d91614 Merge pull request #1873 from Accelerite/dhcpOffloadFix
CLOUDSTACK-9709: Updated the vm ip fetch task to use the correct the …
2017-05-17 10:43:51 +05:30
Rajani Karuturi a4dd6bdeeb Merge pull request #1955 from myENA/virtio-scsi
CLOUDSTACK-8239 Add VirtIO SCSI support for KVM hosts
2017-04-20 15:36:34 +05:30
Rajani Karuturi ec2d4dd422 Merge release branch 4.9 to master
* 4.9:
  CLOUDSTACK-9811: fix duplicated nics on VR caused by nic name p<slot_number>p<port_number>
2017-03-23 15:19:31 +05:30
Wei Zhou bf93b6313e CLOUDSTACK-9811: fix duplicated nics on VR caused by nic name p<slot_number>p<port_number> 2017-03-20 07:32:31 +01:00
Rajani Karuturi ad7ed7a178 Merge pull request #847 from kishankavala/CLOUDSTACK-8880
Bug-ID: CLOUDSTACK-8880: calculate free memory on host before deploying Vm.  free memory = total memory - (all vm memory)With memory over-provisioning set to 1, when mgmt server starts VMs in parallel on one host, then the memory allocated on that kvm can be larger than the actual physcial memory of the kvm host.

Fixed by checking free memory on host before starting Vm.
Added test case to check memory usage on Host.
Verified Vm deploy on Host with enough capacity and also without capacity

* pr/847:
  Bug-ID: CLOUDSTACK-8880: calculate free memory on host before deploying Vm.  free memory = total memory - (all vm memory)

Signed-off-by: Rajani Karuturi <rajani.karuturi@accelerite.com>
2017-03-13 22:20:58 +05:30
Rajani Karuturi 3f0fbf251c Merge pull request #1953 from Accelerite/CLOUDSTACK-9794
CLOUDSTACK-9794: Unable to attach more than 14 devices to a VMUpdated hardcoded value with max data volumes limit from hypervisor capabilities.

* pr/1953:
  CLOUDSTACK-9794: Unable to attach more than 14 devices to a VM

Signed-off-by: Rajani Karuturi <rajani.karuturi@accelerite.com>
2017-03-13 22:19:04 +05:30
Rajani Karuturi 56e851ca46 Merge release branch 4.9 to master
* 4.9:
  moved logrotate from cron.daily to cron.hourly for vpcrouter in cloud-early-config
  CLOUDSTACK-9569: propagate global configuration router.aggregation.command.each.timeout to KVM agent
2017-03-13 22:09:27 +05:30
Rajani Karuturi 7b719c71fc Merge pull request #1856 from ustcweizhou/set-kvm-host-params
[4.9] CLOUDSTACK-9569: propagate global configuration router.aggregation.command.each.timeout to KVM agentThe router.aggregation.command.each.timeout in global configuration is only applied on new created KVM host.
For existing KVM host, changing the value will not be effective.
We need to propagate the configuration to existing host when cloudstack-agent is connected.

* pr/1856:
  CLOUDSTACK-9569: propagate global configuration router.aggregation.command.each.timeout to KVM agent

Signed-off-by: Rajani Karuturi <rajani.karuturi@accelerite.com>
2017-03-13 22:08:47 +05:30
Suresh Kumar Anaparti 93f5b6e8a3 CLOUDSTACK-9794: Unable to attach more than 14 devices to a VM
Updated hardcoded value with max data volumes limit from hypervisor capabilities.
2017-03-13 16:14:12 +05:30
Nathan Johnson 5c476492b1 CLOUDSTACK-8239 - Adding support for virtio-scsi on KVM hosts
This adds support for virtio-scsi on KVM hosts, either
for guests that are associated with a new os_type of 'Other PV Virtio-SCSI (64-bit)',
or when a VM or template is regstered with a detail parameter rootDiskController=scsi.

Update cloudstack add template dialog to allow for selecting rootDiskController with KVM

Update cloudstack kvm virtio-scsi to enable discard=unmap
2017-03-12 10:54:43 -05:00
Jayapal e3ae08b3ee CLOUDSTACK-9709: Updated the vm ip fetch task to use the correct the thread 2017-03-07 09:50:18 +05:30
Kishan Kavala 9a021904af Bug-ID: CLOUDSTACK-8880: calculate free memory on host before deploying Vm. free memory = total memory - (all vm memory) 2017-02-20 11:32:48 +05:30
Rajani Karuturi 7233ac37cd Merge pull request #977 from ustcweizhou/vm-snapshot
[4.10] CLOUDSTACK-8746: VM Snapshotting implementation for KVM

* pr/977:
  Fixes for testing VM Snapshots on KVM. Related to PR 977
  CLOUDSTACK-8746: vm snapshot implementation for KVM

Signed-off-by: Rajani Karuturi <rajani.karuturi@accelerite.com>
2017-01-31 05:58:56 +05:30
Wido den Hollander 84e496b4f9
CLOUDSTACK-676: IPv6 Basic Security Grouping for KVM
This commit implements basic Security Grouping for KVM in
Basic Networking.

It does not implement full Security Grouping yet, but it does:
- Prevent IP-Address source spoofing
- Allow DHCPv6 clients, but disallow DHCPv6 servers
- Disallow Instances to send out Router Advertisements

The Security Grouping allows ICMPv6 packets as described by RFC4890
as they are essential for IPv6 connectivity.

Following RFC4890 it allows:
- Router Solicitations
- Router Advertisements (incoming only)
- Neighbor Advertisements
- Neighbor Solicitations
- Packet Too Big
- Time Exceeded
- Destination Unreachable
- Parameter Problem
- Echo Request

ICMPv6 is a essential part of IPv6, without it connectivity will break or be very
unreliable.

For now it allows any UDP and TCP packet to be send in to the Instance which
effectively opens up the firewall completely.

Future commits will implement Security Grouping further which allows controlling UDP and TCP
ports for IPv6 like can be done with IPv4.

Regardless of the egress filtering (which can't be done yet) it will always allow outbound DNS
to port 53 over UDP or TCP.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2017-01-26 15:36:08 +01:00
Wei Zhou a2428508e2 CLOUDSTACK-8746: vm snapshot implementation for KVM
(1) add support to create/delete/revert vm snapshots on running vms with QCOW2 format
(2) add new API to create volume snapshot from vm snapshot
(3) delete metadata of vm snapshots before stopping/migrating and recover vm snapshots after starting/migrating
(4) enable deleting of VM snapshot on stopped vm or vm snapshot is not listed in qcow2 image.
(5) enable smoke tests for vmsnaphsots on KVM
2017-01-24 21:47:30 +01:00
Rohit Yadav 8b6e96bca9 Updating pom.xml version numbers for release 4.9.3.0-SNAPSHOT
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-01-06 10:40:15 +05:30
Rohit Yadav dfc39c1f08 Updating pom.xml version numbers for release 4.9.2.0
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-01-03 12:28:47 +05:30
Wei Zhou 714221234d CLOUDSTACK-9569: propagate global configuration router.aggregation.command.each.timeout to KVM agent 2016-12-22 12:00:10 +01:00
Rohit Yadav 0dce1c50c1 CLOUDSTACK-9456: Update Spring version in maven poms
- Bump spring-framework version to 4.x and Jetty to version that runs with JDK8
- Bump servet dependency version
- Migrate spring xmls to version 4, fixes schema locations that are 3.0
  dependent in various xmls.
- Fix failing tests due to spring upgrade
  (Thanks @marcaurele Marc-Aurèle Brothier for fixing them)
    * Fix test DeploymentPlanningManagerImplTest
    * Fix GloboDNS test

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-12-16 21:21:20 +05:30
Rohit Yadav 5e19e64f2f Updating pom.xml version numbers for release 4.9.2.0-SNAPSHOT
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-12-16 20:48:16 +05:30
Rohit Yadav af2679959b Updating pom.xml version numbers for release 4.9.1.0
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-12-10 08:38:03 +05:30
Wido den Hollander 2a5f37c1b1
CLOUDSTACK-8715: Add channel to Instances for Qemu Guest Agent
This commit adds a additional VirtIO channel with the name
'org.qemu.guest_agent.0' to all Instances.

With the Qemu Guest Agent the Hypervisor gains more control over the Instance if
these tools are present inside the Instance, for example:

* Power control
* Flushing filesystems
* Fetching Network information

In the future this should allow safer snapshots on KVM since we can instruct the
Instance to flush the filesystems prior to snapshotting the disk.

More information: http://wiki.qemu.org/Features/QAPI/GuestAgent

Keep in mind that on Ubuntu AppArmor still needs to be disabled since the default
AppArmor profile doesn't allow libvirt to write into /var/lib/libvirt/qemu

This commit does not add any communication methods through API-calls, it merely
adds the channel to the Instances and installs the Guest Agent in the SSVMs.

With the addition of the Qemu Guest Agent channel a second channel appears in /dev
on a SSVM as a VirtIO port.

The order in which the ports are defined in the XML matters for the naming inside
the SSVM VM and by not relying on /dev/vportXX but looking for a static name the
SSVM still boots properly if the order in the XML definition is changed.

A SSVM with both ports attached will have something like this:

  root@v-215-VM:~# ls -l /dev/virtio-ports
  total 0
  lrwxrwxrwx 1 root root 11 May 13 21:41 org.qemu.guest_agent.0 -> ../vport0p2
  lrwxrwxrwx 1 root root 11 May 13 21:41 v-215-VM.vport -> ../vport0p1
  root@v-215-VM:~# ls -l /dev/vport*
  crw------- 1 root root 251, 1 May 13 21:41 /dev/vport0p1
  crw------- 1 root root 251, 2 May 13 21:41 /dev/vport0p2
  root@v-215-VM:~#

In this case the SSVM port points to /dev/vport0p1, but if the order in the XML
is different it might point to /dev/vport0p2

By looking for a portname with a pre-defined pattern in /dev/virtio-ports we
do not rely on the order in the XML definition.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2016-11-23 16:01:08 +01:00
Rohit Yadav 0642a6982f
Merge branch '4.9' 2016-11-23 14:22:15 +05:30
Rohit Yadav 55b918076f
Merge branch '4.8' into 4.9 2016-11-23 13:50:15 +05:30
Rohit Yadav ff616e700b Merge pull request #1745 from shapeblue/CLOUDSTACK-9503
CLOUDSTACK-9503: Increased the VR script timeout. Most of the changes are about converting int/long time values to joda Duration.

* pr/1745:
  CLOUDSTACK-9503: Increased the VR script timeout. Most of the changes are about converting int/long time values to joda Duration.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-11-23 13:41:52 +05:30
Rohit Yadav b59db0dc06 Merge pull request #1705 from nemo9cby/CLOUDSTACK-9465
Made the changes to improve logging.CLOUSTACK-9465 Several log refactoring/improvement suggestions.

There are two scenarios of logging which needs refactoring/improvement:

Method invocation replaced by variable

This means that in the logging code, the method invocation is pre-defined as a variable. for simplicity,          the method invocation should be replaced by the variable.

Delete variable which must be null

The variable in the logging code is null, there is no need to put the variable there.

* pr/1705:
  Made the changes to improve logging.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-11-03 16:48:21 +05:30
Abhinandan Prateek 83b5a8b2b2 CLOUDSTACK-9503: Increased the VR script timeout. Most of the changes are about converting int/long time values to joda Duration. 2016-11-01 16:14:23 +05:30
Nemo cd9c7737d1 Made the changes to improve logging. 2016-10-11 12:58:02 -04:00
Wido den Hollander 0beb41b6e7 CLOUDSTACK-9395: Add Virtio RNG device to Instances when configured
By adding a Random Number Generator device to Instances we can prevent
entropy starvation inside guest.

The default source is /dev/random on the host, but this can be configured
to another source when present, for example a hardware RNG.

When enabled it will add the following to the Instance's XML definition:

  <rng model='virtio'>
    <rate period='1000' bytes='2048' />
    <backend model='random'>/dev/random</backend>
  </rng>

If the Instance has the proper support, which most modern distributions have,
it will have a /dev/hwrng device which it can use for gathering entropy.

More information: https://libvirt.org/formatdomain.html#elementsRng
2016-10-04 12:44:55 +02:00
John Burwell 8d11511b1f Adds support for four position versions and optional db upgrades
Often, patch and security releases do not require schema migrations or
data migrations.  However, if an empty upgrade class and associated
scripts are not defined, the upgrade process will break.  With this
change, if a release does not have an upgrade, a noop DbUpgrade is added
to the upgrade path.  This approach allows the upgrade to proceed and
for the database to properly reflect the installed version.  This change
should make the release process simpler as RMs no longer need to
rememeber to create this boilerplate code when starting a new release.

Beginning with the 4.8.2.0 and 4.9.1.0 releases, the project will
formally adopt a four (4) position release number to properly accomodate
rekeases that contain only CVE fixes.  The DatabaseUpgradeChecker and
Version classes made assumptions that they would always parse and
compare three (3) position version numbers.  This change adds the
CloudStackVersion value object that supports both three (3) and four (4)
version numbers.   It encapsulates version comparsion logic, as well as,
the rules to allow three (3) and four (4) to interoperate.

  * Modifies DatabaseUpgradeChecker to handle derive an upgrade path for
  a version that was not explicitly specified.  It determines the
  releases the first release before it with database migrations and uses
  that list as the basis for the list for version being calculated.  A
  noop upgrade is then added to the list which causes no schema changes
  or data migrations, but will update the database to the version.
  * Adds unit tests for the upgrade path calculation logic in
  DatabaseUpgradeChecker
  * Removes dummy upgrade logic for the 4.8.2.0 introduced in previous
  versions of this patch
  * Introduces the CloudStackVersion value object which parses and
  compares three (3) and four (4) position version numbers.  This class
  is intended to replace com.cloud.maint.Version.
  * Adds the junit-dataprovider dependency -- allowing test data to be
  concisely generated separately from the execution of a test case.
  Used extensively in the CloudStackVersionTest.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-08-30 13:32:32 +05:30
Nathan Johnson 46df85c5bf CLOUDSTACK-9461
This converts the rbd raw format on disk to qcow2 for compression.
2016-08-26 09:52:24 -05:00
Rohit Yadav 3a81a4498f Merge branch '4.9' 2016-08-24 12:15:24 +05:30
Rohit Yadav fa3fe7bb05 Merge pull request #1634 from shapeblue/patchviasocket-49-py26fix
[blocker] CLOUDSTACK-9452: add python-argparse dependency on el6,7 rpmsThe patchviasocket script was rewritten in Python from PR #1533 and made
assumptions that Python 2.7 would be available. In case of CentOS, python 2.7
may not be available or installed. This change ensures that python-argparse
is installed which is used by this script.

/cc @wido @sverrirab @karuturi @jburwell

@blueorangutan package

* pr/1634:
  CLOUDSTACK-9452: add python-argparse dependency on el6,7 rpms

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-08-24 12:14:02 +05:30
Rohit Yadav 9555492b4d Merge branch '4.9' 2016-08-23 14:16:53 +05:30
Rohit Yadav f13c224da1 Updating pom.xml version numbers for release 4.9.1.0-SNAPSHOT
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-08-19 13:53:39 +05:30
Will Stevens 740bd45be6 Updating pom.xml version numbers for release 4.8.2-SNAPSHOT
Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-08-15 10:31:09 -04:00
Rohit Yadav 7b8ba24c64 CLOUDSTACK-9452: add python-argparse dependency on el6,7 rpms
The patchviasocket script was rewritten in Python from PR #1533 and made
assumptions that Python 2.7 would be available. In case of CentOS, python 2.7
may not be available or installed. This change ensures that python-argparse
is installed which is used by this script.

Expose cmd error in the logs when patch command fails.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-08-10 16:25:17 +05:30
Will Stevens a63db21d16 Updating pom.xml version numbers for release 4.8.1
Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-08-08 10:06:21 -04:00
Will Stevens 62aa3b2bfa Updating pom.xml version numbers for release 4.10.0-SNAPSHOT
Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-07-29 10:11:34 -04:00
Will Stevens 227ff3884d Updating pom.xml version numbers for release 4.9.0
Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-07-25 16:56:04 -04:00
Aaron Hurt c8fce3ff31 improve logging readability 2016-07-11 12:05:06 -05:00
Aaron Hurt 44491448e3 Cleanup rbd contexts and improve exception logging
We noticed that when an exception occurs within the cleanup loop inside
the deletePhysicalDisk routine that the previously allocated contexts
are not cleaned up.  This seemed to cause an eventual crash of the host
agent after multiple exceptions within the loop.

In addition to ensuring the contexts are always freed we also improved
the logging when exceptions do occur to include the actual return code
from the underlying library in deletePhysicalDisk and deleteSnapshot.
2016-07-08 23:13:33 -05:00
Will Stevens b03a629c6a Merge pull request #1533 from greenqloud/pr-patchviasocket-convert-to-python
Convert patchviasocket to python (removes perl dependency for KVM agent)As requested here: https://github.com/apache/cloudstack/pull/1495

No scripts are using perl so that install requirement can be removed.
The new scripts are using standard python packages only.
Includes extensive unit test.
Note: perl-modules requirement is missing (fixed in mentioned PR) so do not merge that onto master.

* pr/1533:
  Revert "Add perl-modules as install dependency for cloudstack-agent"
  patchviasocket improve error handling
  Convert patchviasocket to python (removes perl dependency for KVM agent)

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-05-25 22:57:08 -04:00
Will Stevens 678b28f273 Merge release branch 4.8 to master
* 4.8:
  CLOUDSTACK-6928: fix issue disk I/O throttling not applied
  CLOUDSTACK-6975: Prevent dnsmasq from starting on backup redundant RvR.
2016-05-25 22:54:23 -04:00
Will Stevens b80696cbc0 Merge release branch 4.7 to 4.8
* 4.7:
  CLOUDSTACK-6928: fix issue disk I/O throttling not applied
  CLOUDSTACK-6975: Prevent dnsmasq from starting on backup redundant RvR.
2016-05-25 22:53:42 -04:00
Sverrir A. Berg 0acd3c12a2 Convert patchviasocket to python (removes perl dependency for KVM agent)
As requested here: https://github.com/apache/cloudstack/pull/1495

No scripts are using perl so that install requirement can be removed.
The new scripts are using standard python packages only.
Includes extensive unit test.
2016-05-20 15:42:34 +00:00
Will Stevens 82b702dc9a Merge pull request #1403 from mike-tutkowski/xs-snapshots
Taking fast and efficient volume snapshots with XenServer (and your storage provider)A XenServer storage repository (SR) and virtual disk image (VDI) each have UUIDs that are immutable.

This poses a problem for SAN snapshots, if you intend on mounting the underlying snapshot SR alongside the source SR (duplicate UUIDs).

VMware has a solution for this called re-signaturing (so, in other words, the snapshot UUIDs can be changed).

This PR only deals with the CloudStack side of things, but it works in concert with a new XenServer storage manager created by CloudOps (this storage manager enables re-signaturing of XenServer SR and VDI UUIDs).

I have written Marvin integration tests to go along with this, but cannot yet check those into the CloudStack repo as they rely on SolidFire hardware.

If anyone would like to see these integration tests, please let me know.

JIRA ticket: https://issues.apache.org/jira/browse/CLOUDSTACK-9281

Here's a video I made that shows this feature in action:

https://www.youtube.com/watch?v=YQ3pBeL-WaA&list=PLqOXKM0Bt13DFnQnwUx8ZtJzoyDV0Uuye&index=13

* pr/1403:
  Faster logic to see if a cluster supports resigning
  Support for backend snapshots with XenServer

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-05-20 08:33:07 -04:00
Wei Zhou 976b3b7df4 CLOUDSTACK-6928: fix issue disk I/O throttling not applied 2016-05-19 11:26:43 +02:00
Will Stevens 7be8585787 Merge pull request #1520 from NuxRo/kvm-numa-cpu-reporting
CPU socket count reporting correctionCPU socket count reporting correction
From https://github.com/MissionCriticalCloud/cosmic-plugin-hypervisor-kvm/pull/16

* pr/1520:
  Remove empty spaces causing the build to fail
  CPU socket count reporting correction

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-05-13 17:02:10 -04:00
Mike Tutkowski 2bd035d199 Support for backend snapshots with XenServer 2016-05-13 01:02:04 -06:00
Will Stevens 8c3722d953 Merge pull request #1444 from rafaelweingartner/workAroundPR780
CLOUDSTACK-8800 : Improved the listVirtualMachines API call to include memory utilization information for a VMThis PR introduces the changes proposed in PR #780 with some work to make the code null safe.

During this PR, I have also removed some unused code.

* pr/1444:
  Removed unnecessary check when creating the “userVmResponse” object.
  Fixed issues from CLOUDSTACK-8800 that were introduced in PR 780
  CLOUDSTACK-8800 : Improved the listVirtualMachines API call to include memory utilization information for a VM for xenserver,kvm and for vmware.

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-05-12 16:49:14 -04:00
Will Stevens fa3bce5a83 Merge pull request #1496 from shapeblue/kvm-ha
CLOUDSTACK-9350: KVM-HA- Fix CheckOnHost for Local storage- KVM-HA- Fix CheckOnHost for Local storage
 - Also skip HA on VMs that are using local storage

* pr/1496:
  CLOUDSTACK-9350: KVM-HA- Fix CheckOnHost for Local storage     - Also skip HA on VMs that are using local storage

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-05-10 23:49:04 -04:00
Will Stevens c9319e21fb Merge pull request #1230 from SafeSwissCloud/CLOUDSTACK-8302
CLOUDSTACK-8302: Removing snapshots on RBDSnapshot removing implemented if primary datastore is RBD
https://issues.apache.org/jira/browse/CLOUDSTACK-8302

* pr/1230:
  CLOUDSTACK-8302 - Cleanup snapshot on KVM with RBD Snapshot removing implemented on RBD. 1. On management side: when created new shanpshot we checking if our primary storage is RBD, then do not remove record from cloud.snapshot_store_ref with link to Ceph image via 'install_path' field. 2. On management side: when removing snapshot, also send command to agent 'DeleteCommand'. 3. On agent side: method implemented 'public Answer deleteSnapshot(final DeleteCommand cmd)'

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-05-04 10:26:01 -04:00
weingartner 866ac7b6e1 Fixed issues from CLOUDSTACK-8800 that were introduced in PR 780
It was worked around some possible runtime exceptions introduced by the
changes that were added by the PR 780. Basically, the points in which a
null pointer exception could happen, we added safety checks to avoid
them. It was create a specific method do that, all together test cases
were created for this newly method that was added.
2016-05-03 14:05:18 -03:00
Maneesha.P 7ad3c5e834 CLOUDSTACK-8800 : Improved the listVirtualMachines API call to include memory utilization information for a VM for xenserver,kvm and for vmware. 2016-04-29 14:06:49 -03:00
Abhinandan Prateek 3b89cbe733 CLOUDSTACK-9350: KVM-HA- Fix CheckOnHost for Local storage
- Also skip HA on VMs that are using local storage
2016-04-29 12:38:33 +05:30
Will Stevens ad61d49d87 Merge release branch 4.8 to master
* 4.8:
  CLOUDSTACK-9142 Migrate VM changes xmlDesc in a safe way
2016-04-28 15:57:43 -04:00
Will Stevens 43ab44dd58 Merge release branch 4.7 to 4.8
* 4.7:
  CLOUDSTACK-9142 Migrate VM changes xmlDesc in a safe way
2016-04-28 15:56:48 -04:00
Will Stevens c03e359824 Merge pull request #1348 from DaanHoogland/CLOUDSTACK-9142
CLOUDSTACK-9142 Migrate VM changes xmlDesc in a safe wayThe problem arises when the origin hypervisor has an ip addres that ends with 1, like '10.10.10.1' and the qemu VM description is containing an address that has that as part of its address, '10.10.10.100' for instance.
now migrating to '10.10.10.10' will change both addresses in the xml description file for qemu. It is fixed and unit tests are added. I am not sure yet how to integration test this. Regression will probably work so creating a PR now.

* pr/1348:
  CLOUDSTACK-9142 Migrate VM changes xmlDesc in a safe way

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-04-28 15:55:09 -04:00
NuxRo 108b3517af Remove empty spaces causing the build to fail 2016-04-27 19:15:02 +01:00
NuxRo 42de1f81ed CPU socket count reporting correction
CPU socket count reporting correction
From https://github.com/MissionCriticalCloud/cosmic-plugin-hypervisor-kvm/pull/16
2016-04-27 10:49:53 +01:00
Dmytro Shevchenko 10ae2aff28 CLOUDSTACK-8302 - Cleanup snapshot on KVM with RBD
Snapshot removing implemented on RBD.
1. On management side: when created new shanpshot we checking if our primary storage is RBD,
then do not remove record from cloud.snapshot_store_ref with link to Ceph
image via 'install_path' field.
2. On management side: when removing snapshot, also send command to agent 'DeleteCommand'.
3. On agent side: method implemented 'public Answer deleteSnapshot(final DeleteCommand cmd)'
2016-04-25 22:14:48 +03:00
Will Stevens f530a4c63a Merge pull request #1200 from koushik-das/CLOUDSTACK-9130
CLOUDSTACK-9130: Make RebootCommand similar to start/stop/migrate agent commands w.r.t. "execute in sequence" flag

RebootCommand now behaves in the same way as start/stop/migrate agent commands w.r.t. to sequential/parallel execution.

* pr/1200:
  CLOUDSTACK-9130: Make RebootCommand similar to start/stop/migrate agent commands w.r.t. "execute in sequence" flag RebootCommand now behaves in the same way as start/stop/migrate agent commands w.r.t. to sequential/parallel execution.

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-04-21 16:35:27 -04:00
Koushik Das d1def0a730 Merge pull request #1287 from DaanHoogland/securityrules-cleanup
SecurityGroupRulesCmd code cleanupWrote a test and cleaned some duplicate code with the objective to evaluate the jenkins pull request process at builds.a.o
worthwhile to keep, IMHO.

* pr/1287:
  SecurityGroupRulesCmd code cleanup review comments handled
  deal with PMD warnings
  code cleanup
  security rules test
  remove autogenerated pydev files

Signed-off-by: Koushik Das <koushik@apache.org>
2016-04-11 21:49:57 +05:30
Will Stevens c48b6c33c0 Revert "Merge pull request #780 from maneesha-p/pull-19" due code quality issues and lack of CI results.
This reverts commit dc0ba6bd1a, reversing
changes made to 63f58dd578.
2016-03-21 17:38:04 -04:00
Maneesha.P 732a85295d CLOUDSTACK-8800 : Improved the listVirtualMachines API call to include memory utilization information for a VM for xenserver,kvm and for vmware. 2016-03-16 16:13:10 +05:30
Remi Bergsma 43ab98d823 Updating pom.xml version numbers for release 4.9.0-SNAPSHOT
Signed-off-by: Remi Bergsma <github@remi.nl>
2016-01-26 15:12:20 +01:00
Remi Bergsma 32fcc47117 Updating pom.xml version numbers for release 4.8.1-SNAPSHOT
Signed-off-by: Remi Bergsma <github@remi.nl>
2016-01-26 09:39:00 +01:00
Remi Bergsma a4ac9d3fff Updating pom.xml version numbers for release 4.7.2-SNAPSHOT
Signed-off-by: Remi Bergsma <github@remi.nl>
2016-01-26 09:33:56 +01:00
Daan Hoogland 8a6afa6d9f CLOUDSTACK-9142 Migrate VM changes xmlDesc in a safe way 2016-01-21 21:32:35 +01:00
Remi Bergsma 62f218b7bd Updating pom.xml version numbers for release 4.8.0
Signed-off-by: Remi Bergsma <github@remi.nl>
2016-01-20 23:43:35 +01:00
Remi Bergsma 26936cdb2b Merge pull request #1242 from wido/fix-kvm-libvirt-test
test: Fix Libvirt test so that it works on WindowsThis test failed on Windows, using the File.separator it should run fine on Windows.

* pr/1242:
  test: Fix Libvirt test so that it works on Windows

Signed-off-by: Remi Bergsma <github@remi.nl>
2016-01-19 17:54:44 +01:00
Remi Bergsma fb658f575d Merge pull request #1226 from borisroman/CLOUDSTACK-9148
Removed .pydevproject from plugin kvm hypervisor.Ping @wido @wilderrodrigues @remibergsma @miguelaferreira

It's there for no apparent reason...

Running integration tests now.

```
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6:12.189s
[INFO] Finished at: Sat Dec 12 02:13:01 CET 2015
[INFO] Final Memory: 102M/808M
[INFO] ------------------------------------------------------------------------
```

* pr/1226:
  Removed .pydevproject from plugin kvm hypervisor.

Signed-off-by: Remi Bergsma <github@remi.nl>
2016-01-17 13:04:58 +01:00
Daan Hoogland d39182f9d4 deal with PMD warnings 2015-12-26 09:02:30 +01:00
Daan Hoogland ffce2d601e remove autogenerated pydev files 2015-12-26 09:02:27 +01:00
Remi Bergsma 8f5a2920e8 Updating pom.xml version numbers for release 4.8.0-SNAPSHOT
Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-21 22:09:31 +01:00
Remi Bergsma 5b112408c7 Updating pom.xml version numbers for release 4.7.1-SNAPSHOT
Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-21 19:55:04 +01:00
Wido den Hollander 268b9b31e7 test: Fix Libvirt test so that it works on Windows 2015-12-14 11:33:47 +01:00
Remi Bergsma 2f26a859a9 Updating pom.xml version numbers for release 4.7.0
Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-13 21:09:53 +01:00
Boris Schrijver 223e3d5466 Removed .pydevproject from plugin kvm hypervisor. 2015-12-13 14:53:08 +01:00
Remi Bergsma bdaa60fd6c Merge release branch 4.6 to master
* 4.6:
  Show actual diff in commits after merge
  CLOUDSTACK-9113: skip vm with inconsistent state when getVmStats/getVmDiskStats
2015-12-12 14:03:43 +01:00
Koushik Das 5b3ffeb6cd CLOUDSTACK-9130: Make RebootCommand similar to start/stop/migrate agent commands w.r.t. "execute in sequence" flag
RebootCommand now behaves in the same way as start/stop/migrate agent commands w.r.t. to sequential/parallel execution.
2015-12-09 15:19:10 +05:30
Wei Zhou 24edf1c1e4 CLOUDSTACK-9113: skip vm with inconsistent state when getVmStats/getVmDiskStats 2015-12-07 12:15:24 +01:00
Nick Livens 0957268e92 CLOUDSTACK-9095 : Hypervisor changes to support UserData for Nuage VSP 2015-12-07 10:26:47 +01:00
Daan Hoogland 638f1cf091 Merge pull request #1049 from DaanHoogland/CLOUDSTACK-9047
CLOUDSTACK-9047 rename enumsmake enums adhere to best practice naming conventions

* pr/1049:
  CLOUDSTACK-9046 rename enums to adhere to naming conventions
  CLOUDSTACK-9046 renamed enums in kvm plugin
  CLOUDSTACK-9047 use 'State's only with context   there are more types called 'State'   (or to be called so but now 'state')   So remove imports and prepend their enclosing class/context to them.

Signed-off-by: Daan Hoogland <daan@onecht.net>
2015-12-06 20:17:04 +01:00
Josh Harshman b6c900fdde CLOUDSTACK-9004: Add features to HyperVEnlightenmentFeatureDef
Add function to set vapic, spinlock and retries
Add function to get retry value
Modify toString to output appropriate XML for spinlock value if set

CLOUDSTACK-9004: Add features to HyperVEnlightenmentFeatureDef

Refactored set methods to get rid of code duplication.
Modified unit tests accordingly
2015-12-03 16:49:00 -08:00
Remi Bergsma 4ecfc29267 Merge release branch 4.6 to master
* 4.6:
  Use version for RC branch name instead of branch
  make sure all files are updates with new version
  Update L10N resource files with 4.6 strings from Transifex (20151129)
  Fix secondary storage not working with swift
  CLOUDSTACK-9083: Add disk serial to kvm virt xml
2015-11-30 22:30:52 +01:00
Rohit Yadav 12c395b560 CLOUDSTACK-9083: Add disk serial to kvm virt xml
Adds disk serial ids based on volume uuids to the virt xml. This may be useful
for appliances/software that needs some serial ids on the VM disks. This does not
impact existing/running VMs, the vm virt xmls will be updates for running VMs
the next time they are stopped/started.

For testing, disk serial (of debian based systemvm) in the virt xml matched that
in /sys/devices/pci0000:00:0000:00:07.0/virtio4/block/vda/serial.

We currently don't support scsi-blcok devices for which serial is not supported,
for this we've added a DeviceType (LUN) which may be used in future and a check
to not add the serial to the xml if disk type is LUN.
Refer: https://libvirt.org/formatdomain.html#elementsDisks

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-11-25 14:58:42 +05:30
Daan Hoogland 08eb96776a CLOUDSTACK-9037 patterns can be more elaborate then prefixes. 2015-11-23 11:48:44 +01:00
cirstofolini 1a64c247ad Removed unnecessary @Local annotations and their respective imports from the ComponentLifecycleBase class and its subclasses. 2015-11-21 18:31:11 -02:00
Remi Bergsma 7665bdc815 Merge pull request #1083 from borisroman/CLOUDSTACK-9062
CLOUDSTACK-9062: Improve S3 implementation.The S3 implementation is far from finished, this commit focuses on the bases.

 - Upgrade AWS SDK to latest version.
 - Rewrite S3 Template downloader.
 - Rewrite S3Utils utility class.
 - Improve addImageStoreS3 API command.
 - Split various classes for convenience.
 - Various minor improvements and code optimizations.

A side effect of the new AWS SDK is that it, by default, uses the V4 signature. Therefore I added an option to specify the Signer, so it stays compatible with previous versions.

Please review thoroughly, both code inspection and (automated) integration tests. Currently no integration tests are available specifically for S3. Therefore the implementation is needed to be tested manually, for now...

What I tested:
 - Greenfield install -> will download latest systemvm template automatically to S3.
 - Upload a template/iso
 - Download a template/iso
 - Restart of management server -> list available templates -> doesn't download them again if available.

* pr/1083:
  CLOUDSTACK-9062: Improve S3 implementation.

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-20 22:27:17 +01:00
Boris Schrijver 5c0366c99e CLOUDSTACK-9062: Improve S3 implementation.
The S3 implementation is far from finished, this commit focusses on the bases.

 - Upgrade AWS SDK to latest version.
 - Rewrite S3 Template downloader.
 - Rewrite S3Utils utility class.
 - Improve addImageStoreS3 API command.
 - Split various classes for convenience.
 - Various minor improvements and code optimalisations.

A side effect of the new AWS SDK is that it, by default, uses the V4 signature. Therefore I added an option to specify the Signer, so it stays compatible with previous versions.
2015-11-19 15:29:10 +01:00
Wilder Rodrigues 942aa17d0c CLOUDSTACK-9067 - Replaces hardcoded paths with the VRScripts constants. 2015-11-18 13:12:45 +01:00
Daan Hoogland 962d4b4afe CLOUDSTACK-9046 renamed enums in kvm plugin 2015-11-16 13:41:14 +00:00
Remi Bergsma 1f53f2a93e Updating pom.xml version numbers for release 4.7.0-SNAPSHOT
Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-15 18:54:13 +01:00
Remi Bergsma b38c3bed0c Updating pom.xml version numbers for release 4.6.1-SNAPSHOT
Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-13 21:27:57 +01:00
Remi Bergsma e31ade03c6 Updating pom.xml version numbers for release 4.6.0
Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-10 15:45:34 +01:00
Remi Bergsma 0b4cc5de87 Merge pull request #986 from wido/kvm-libvirt-unittests
Add Unit Tests for Libvirt/KVM storage codeThese classes were not covered by Unit Tests and this commit
adds some tests for their basic functionality.

* pr/986:
  Add Unit Tests for Libvirt/KVM storage code

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-02 17:53:31 +01:00
Wido den Hollander 602231132d kvm: Add UnitTests for LibvirtUtilitiesHelper
These were lacking, but this helper is used in various places
inside the KVM code.

Some simple tests to verify the helper is doing what we expect it
to do.
2015-10-30 12:34:00 +01:00
Wido den Hollander 7568f2123c Add Unit Tests for Libvirt/KVM storage code
These classes were not covered by Unit Tests and this commit
adds some tests for their basic functionality.
2015-10-27 13:21:28 +01:00
Daan Hoogland 5a134a6fe6 unit test for interface patterns in libvirt compute resource 2015-10-24 00:57:01 +02:00
Daan Hoogland f1ea27ed37 Merge branch 'pr/966' into interfacePatternCheck 2015-10-23 17:10:03 +02:00
David Mabry e1a401c023 Added support for KVM teamd devices to LibvirtComputingResource.java. This will allow users to utilze teamd nic teaming devices named team*. 2015-10-22 10:19:50 -05:00
Wido den Hollander d413b2c375 CLOUDSTACK-8879: Depend in rados-java 0.2.0
This should fix the CloudStack Agent from crashing when it has to
handle more then 16 RBD snapshots on one Volume.
2015-09-25 11:01:03 +02:00
Wido den Hollander 4f409a7c17 CLOUDSTACK-8645: Improve logging of RBD functionality in KVM
A simple commit which changes a couple of log lines.
2015-09-15 10:10:04 +02:00
Satoru Nakaya e8c5ed4e3d CLOUDSTACK-8838: Allow ensX enoX enpX enxX format for nics in CentOS 7 2015-09-13 22:13:30 +09:00
Kevin McCormick 99d20234d4 CLOUDSTACK-8678: Reserve RAM for KVM host OS
Use host.reserved.ram.mb agent property to modify total system RAM
before reporting to management server.

Remove dom0ram variable and its min/max calculation. Just reserve a
default of 1GB, unless overridden by host.reserved.mem.mb property.
2015-09-03 10:07:22 -07:00
Rohit Yadav dd9ba48efa Merge pull request #753 from shapeblue/master-CLOUDSTACK-8762
CLOUDSTACK-8762: Check to confirm disk activity before starting a VMImplements a VM volume/disk file activity checker that checks if QCOW2 file
has been changed before starting the VM. This is useful as a pessimistic
approach to save VMs that were running on faulty hosts that CloudStack could
try to launch on other hosts while the host was not cleanly fenced. This is
optional and available only if you enable the settings in agent.properties
file, on per-host basis.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

* pr/753:
  CLOUDSTACK-8762: Check to confirm disk activity before starting a VM

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-09-02 14:55:54 +05:30
Wei Zhou c0a0aec0f9 Merge pull request #732 from ustcweizhou/revert-volume-snapshot-master
Guys, can you review it? things need to be discussed:
(1) this supports KVM/QCOW2 only. Anyone want to implement for other Hypervisor/format ?
(2) The original data volume (on primary storage) will be removed.
(3) The script uses the default timeout in libvirtComputingResource. Do we need to add one in global configuration (like copy.volume.wait or backup.snapshot.wait, create.volume.from.snapshot.wait)
(4) In scripts/storage/qcow2/managesnapshot.sh, I use "qemu-img convert -f qcow2 -O qcow2" to copy the snapshot from secondary to primary (hence there is no base image file), instead of "cp -f", this is because convert is faster than cp in my testing.

* pr/732:
  CLOUDSTACK-5863: revert volume snapshot for KVM/QCOW2

Signed-off-by: Wei Zhou <w.zhou@tech.leaseweb.com>
2015-09-01 16:18:40 +02:00
Mike Tutkowski c5a0d5e01c Support live migration on older version of Libvirt 2015-08-31 22:06:51 -06:00
Rajani Karuturi 8bc0294014 Revert "Merge pull request #714 from rafaelweingartner/master-lrg-cs-hackday-003"
This reverts commit cd7218e241, reversing
changes made to f5a7395cc2.

Reason for Revert:

noredist build failed with the below error:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile) on project cloud-plugin-hypervisor-vmware: Compilation failure
[ERROR] /home/jenkins/acs/workspace/build-master-noredist/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java:[484,12] error: non-static variable logger cannot be referenced from a static context
[ERROR] -> [Help 1]

even the normal build is broken as reported by @koushik-das on dev list
http://markmail.org/message/nngimssuzkj5gpbz
2015-08-31 11:27:57 +05:30
Rafael Weingartner 3818257a68 Solved jira ticket: CLOUDSTACK-8750 2015-08-28 22:35:08 -03:00
Rohit Yadav 52a98fa6cf CLOUDSTACK-8762: Check to confirm disk activity before starting a VM
Implements a VM volume/disk file activity checker that checks if QCOW2 file
has been changed before starting the VM. This is useful as a pessimistic
approach to save VMs that were running on faulty hosts that CloudStack could
try to launch on other hosts while the host was not cleanly fenced. This is
optional and available only if you enable the settings in agent.properties
file, on per-host basis.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-28 16:05:30 +05:30
Koushik Das e401d39d0b Merge pull request #741 from koushik-das/code_cleanup
messages: Removed unused agent command AttachVolumeCommand and corresponding answer AttachVolumeAnswer

These types are not used anywhere in the orchestration layer.

Signed-off-by: Koushik Das <koushik@apache.org>
2015-08-27 17:13:25 +05:30
Rohit Yadav e2a0d18a84 Merge pull request #696 from iwebhosting/rbd-live-resize
Default to notify only script to handle non-CLVM/QCOW cases.This relates to [CLOUDSTACK-8732](https://issues.apache.org/jira/browse/CLOUDSTACK-8732)

Before this commit the call to `getResizeScriptType` would throw an exception (earlier versions returned `null`, which was fine) - this caused the RBD case to fail. By changing the default to notify only we fix the case for any non-CLVM and non-QCOW cases, too.

This is RBD for now, but this should extend to new storage types supported by Libvirt natively in future.

This is my first attempted contribution: I can see a case for adding RBD logic to the actual getResizeScriptType call, too, but I felt that putting it `LibvirtResizeVolumeCommandWrapper.java` kept the special-casing of RBD (and comments about that) in one place.

### Caveat:

With Libvirt 1.2.2 this actually doesn't do the right thing - but it does do what the documentation *says* should be the right thing, so I'm going to test if this is a Libvirt bug which is fixed in a later version.

(To make it work I need to execute something like:

    virsh blockresize --path vda --size 100G i-7-44-VM

where vda is the path as far as the *guest* is concerned, and not an `rbd/` path - which *should* work, but doesn't.)

* pr/696:
  Default to notify only script to handle non-CLVM/QCOW cases.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-26 16:00:01 +05:30
Rohit Yadav 5d232ea3d9 Merge pull request #735 from shapeblue/kvm-linkbr-checks-master
CLOUDSTACK-8749: Add checks to prevent malformed/unexpected inputBased on @jburwell's comment on PR #718

* pr/735:
  CLOUDSTACK-8749: Add checks to prevent malformed/unexpected input

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-26 14:18:40 +05:30
Rohit Yadav 7e455fa2b7 CLOUDSTACK-8749: Add checks to prevent malformed/unexpected input
Based on @jburwell's comment on PR #718

This closes #735

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-26 13:34:21 +05:30
Koushik Das e1db6efc74 Removed unused agent command AttachVolumeCommand and corresponding answer AttachVolumeAnswer 2015-08-26 09:50:23 +05:30
Remi Bergsma 87fdb521f0 CLOUDSTACK-8443: don't try to fix co-mounted cgroups
This setting works on CentOS 6 / RHEL 6 but does nothing, as
"cpu" cgroup is not mounted. On CentOS 7 / RHEL 7 systemd does
mount cgroups and "cpu" is co-mounted with "cpuacc". Hence, if
we specify "cpu" then this results in an error because it can
only use them both, or none.

By removing the setting, we rely on the default of qemu, which
is:
cgroup_controllers = ["cpu", "devices", "memory", "blkio", "cpuacct", "net_cls"]

Only if they are really mounted, they will be used. So, this will
work on both version 6 and 7.

The 'fix script' didn't work well, as after a reboot you'd still have qemu
throwing errors. Now we can handle the co-mountedcgroups.
2015-08-24 15:49:40 +02:00
Wei Zhou 92344c006d CLOUDSTACK-5863: revert volume snapshot for KVM/QCOW2 2015-08-24 11:01:50 +02:00
Rohit Yadav 3fd35dd4a7 CLOUDSTACK-8749: KVM - cleanup linklocal interface based on names
This tries to avoid cleaning by a device name.

This closes #718

(cherry picked from commit 74f697a2dd)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-19 21:43:24 +05:30
Remi Bergsma caa524b01b Merge pull request #630 from manuiiit/pull-2
Fixed Coverity issue "Dereference null return value"Fixed Coverity issue "Dereference null return value"

* pr/630:
  Fixed Coverity issue "Dereference null return value"

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-08-17 08:38:38 +02:00
manuiiit 3cc0fecccc Fixed Coverity issue "Dereference null return value" 2015-08-15 01:34:24 +05:30
Aaron Brady 77a96ed1f7 Default to notify only script to handle non-CLVM/QCOW cases.
Before this commit the call to `getResizeScriptType` would throw
an exception (earlier versions returned `null`, which was fine) -
this caused the RBD case to fail. By changing the default to
notify only we fix the case for any non-CLVM and non-QCOW cases.

This is RBD for now, but this should extend to new storage
types suppored by Libvirt natively in future.
2015-08-14 12:15:07 +01:00
Rohit Yadav 869a83f8f8 plugins: fix test case, interface usage and checkstyle import issue
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-14 12:23:50 +05:30
Rohit Yadav 5d29b63cfa CLOUDSTACK-8613, CLOUDSTACK-6301: Dump KVM domain XML with secure flag
When dumping XML use appropriate flags:

1, VIR_DOMAIN_XML_SECURE (dump security sensitive information too)
8, VIR_DOMAIN_XML_MIGRATABLE (dump XML suitable for migration)

Source:
https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainXMLFlags

This fixes CVE 2015-3252: VNC password lost during VM migration across KVM
hosts. The issue is also seen when a VM is rebooted.

(cherry picked from commit cb2aca7516)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-14 10:57:36 +05:30
Daan Hoogland e2b6237464 CLOUDSTACK-8656: debug messages on interupted exceptions 2015-07-30 16:03:10 +02:00
Maneesha P 1f09b8c3bf Fixed Coverity issue "Dereference null return value"
added a not null check and a CloudRuntimeException in case of null

Signed-off-by: Rajani Karuturi <rajanikaruturi@gmail.com>

This closes #617
2015-07-23 15:46:17 +05:30
Wido den Hollander d1f76a2a84 CLOUDSTACK-8628: kvm: Disable Fencing when no NFS storage pools are present
On NFS we write a heartbeat, but without those we can not safely
fence off a host.

If we fence without knowing about a heartbeat we can cause a split-brain situation.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2015-07-17 12:33:11 +02:00
Daan Hoogland c53959513e findbugs: create wrapper to deal with static field
Signed-off-by: Daan Hoogland <daan.hoogland@gmail.com>

This closes #573
2015-07-14 11:50:39 +02:00
Daan Hoogland 10853bfa8a adhere to naming conventions for enums
Signed-off-by: Daan Hoogland <daan.hoogland@gmail.com>
2015-07-14 11:50:39 +02:00
Wido den Hollander 63688e70a0 kvm: More verbose logging around storage pools in the Agent 2015-07-13 16:53:26 +02:00
Wido den Hollander 24f8e66e93 kvm: Write Libvirt instead of LibVirt 2015-07-13 16:22:33 +02:00
Wido den Hollander 7c37ba73a3 kvm: Add more verbose logging about what is happening with Libvirt connections 2015-07-13 16:21:41 +02:00
Daan Hoogland bcc8182f2f findbugs: write to static from instance these are the trivial cases of ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD as reported by findbugs
Signed-off-by: Daan Hoogland <daan.hoogland@gmail.com>

This closes #539
2015-07-09 15:01:58 +02:00
Daan Hoogland 31c6b14dd4 Merge branch 'improvement/CLOUDSTACK-8607' change the host password on the host itself via the updateHostPassword API
- Make sure the new password replaces the old one in the queue
    - Updated the patch files for XenServer
    - Updated the script path on LibvirtComputing class
    - Adding update_host_passwd to VRScripts
    - Add implementation to CitrixUpdateHostPasswordCommandWrapper
    - Improve testUpdateHostPasswordCommand() unit test on CitrixRequestWrapperTest
    - Adding update_host_passwd.sh script
    - Adding the host IP address as an instance variable on UpdateHostPasswordCommand
    - Improving the Unit Test (LibvirtComputingResourceTest) to get it covering the new code
    - Make sure doUpdateHostPassword() doesn't get called if flag is set to false
    - Do not update XenServer hosts if the cluster ID is not informed

    This closes #559
2015-07-06 16:15:22 +02:00
wilderrodrigues e348e76eee CLOUDSTACK-8607 - Improving unit tests
- Adding more unit tests as suggested by Daan and Rajani.
   - Mocking SshHelper and the Script classes, used by Citrix and Libvirt resources respectively.
2015-07-06 14:58:17 +02:00
wilderrodrigues efa34361df CLOUDSTACK-8607 - Changed update script to return exit code based on the result
- Changed location of the update_host_passwd script
   - Updated the patch files for XenServer
   - Updated the script path on LibvirtComputing class
   - Removed the hostIP from the LibvirtUpdateHostPasswordCommandWrapper execute() method
2015-07-03 14:29:57 +02:00
Kishan Kavala 3a19a8916e BUG-ID:CLOUDSTACK-7472: kvmclock fix for LXC is not required after fixing CLOUDSTACK-8177
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #557
2015-07-03 15:21:18 +05:30
wilderrodrigues 0dd02ce043 CLOUDSTACK-8607 - Adding support to update host passwd on XenServer hypervisors
- Adding update_host_passwd to VRScripts
   - Add accessor method to host password on CitrixResourceBase
   - Add implementation to CitrixUpdateHostPasswordCommandWrapper
   - Improve testUpdateHostPasswordCommand() unit test on CitrixRequestWrapperTest
   - Add line to patch files on xenserver directory

Concerning the LibVirt change:

   - I forgot to assing the return of the getDefaultHypervisorScriptsDir() method to the hypervisorScriptsDir variable
2015-07-03 10:24:44 +02:00
wilderrodrigues 47c7a1083f CLOUDSTACK-8607 - Adding update_host_passwd.sh script
- Modifying the LibvirtUpdateHostPasswordCommandWrapper in order to execute the script on the host
   - Adding the script path to LibvirtComputingResource
   - Adding the host IP address as an instance variable on UpdateHostPasswordCommand
   - Improving the Unit Test (LibvirtComputingResourceTest) to get it covering the new code
2015-07-02 14:54:51 +02:00
wilderrodrigues 527d6ee77b Making possible to update KVM hosts password in the database via the API
- Make sure the doUpdateHostPassword() method returns the result from the answer, not always true
   - Added the LibvirtUpdateHostPasswordCommandWrapper class, which will handle the changes in the KVM agent
     That's will be further implemented in the future. The command will avoid the agent to complain about Unsupported command
   - Added a test to make sure the current implementation of the comment works
     - If changes in the future, it will also require changes. In that way, we make sure nobody will break it

Signed-off-by: wilderrodrigues <wrodrigues@schubergphilis.com>

This closes #527
2015-06-29 09:59:12 +02:00
Daan Hoogland bbb165a037 findbugs: use preferred encoding explicitly 2015-06-20 10:36:15 +02:00
Daan Hoogland e3407a3939 findbugs: encoding using preferred Charset 2015-06-19 23:03:05 +02:00
Wido den Hollander 4b4c52ea77 CLOUDSTACK-8560: Stat the resulting image after copying from template and return the size
This way we update the DB with the actual size of the disk after deployment from template
2015-06-15 17:55:56 +02:00
Rafael da Fonseca ccd7d41ee3 Resolve findbugs encoding warning
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #392
2015-06-15 12:07:55 +03:00
Rafael da Fonseca f8b364b7c7 Was safe either way as this piece of code should only run in linux, this just gets rid of the findbugs warning
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #402
2015-06-15 12:04:47 +03:00
Rafael da Fonseca 3299f23ea2 Fix findbugs encoding warning in LibvirtCreatePrivateTemplateFromVolumeCommandWrapper Libvirt templates should be written in UTF-8, default was already doing that so this just gets rid of the findbugs warning
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #401
2015-06-15 12:04:24 +03:00
Rafael da Fonseca 949e97dec6 Fix findbugs warning in LibvirtConsoleProxyLoadCommandWrapper Encoding is now specified in both server and clients for the console proxy getstatus command For some reason, findbugs did not detect unsafe encoding issue in ConsoleProxyResource.java, is properly specified now though... CitrixConsoleProxyLoadCommandWrapper was specifying system default encoding for operation, should be ok because default for xenserver is UTF-8 since it's linux based, but it's best to specify exact encoding set on the server end to be consistent
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-06-15 12:04:18 +03:00
wilderrodrigues 93845afd53 Using a try-wioth resrouce block as suggested in @DaanHoogland review.
Signed-off-by: Daan Hoogland <daan.hoogland@gmail.com>

This closes #355
2015-06-04 12:34:05 +02:00
wilderrodrigues 7f4e2c7cf0 Renaming the variable from "s" to "script"
Signed-off-by: Daan Hoogland <daan.hoogland@gmail.com>
2015-06-04 12:34:05 +02:00
wilderrodrigues 6138d9a690 Coverity issue 1116812 - Replacing concatenation with optionsBuffer.append(option.getKey()).append('=').append(option.getValue()).append(',');
Signed-off-by: Daan Hoogland <daan.hoogland@gmail.com>
2015-06-04 12:34:05 +02:00
wilderrodrigues 9ff38486a1 Coverity issue 1116677 - Avoiding catching only Exception. Makes the code too britle. - Catching the QemuImgException and throwing it to be caught further in the code - Surrounding the output stream with try/catch and throwing it to be further handled in the code. Closing the output stream quietly.
Signed-off-by: Daan Hoogland <daan.hoogland@gmail.com>
2015-06-04 12:34:05 +02:00
wilderrodrigues 6271663682 Formatting the code - Adding final modifier and indenting the code
Signed-off-by: Daan Hoogland <daan.hoogland@gmail.com>
2015-06-04 12:34:04 +02:00
Daan Hoogland 3d4d152753 CID 1302976 Scanner in try-with-resource
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #352
2015-06-04 00:09:40 +02:00
Daan Hoogland 109b6e94d3 CID 1302974: Scanner in try-with-resource
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #353
2015-06-04 00:09:16 +02:00
Rohit Yadav f341246888 CLOUDSTACK-8530: KVM hosts without active agents should be in Disconnected state
KVM hosts which are actuall up, but if their agents are shutdown should be put
in disconnected state. This would avoid getting the VMs HA'd and other commands
such as deploying a VM will exclude that host and save us from errors.

The improvement is that, we first try to contact the KVM host itself. If it fails
we assume that it's disconnected, and then ask its KVM neighbours if they can
check its status. If all of the KVM neighbours tell us that it's Down and we're
unable to reach the KVM host, then the host is possibly down. In case any of the
KVM neighbours tell us that it's Up but we're unable to reach the KVM host then
we can be sure that the agent is offline but the host is running.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
Signed-off-by: wilderrodrigues <wrodrigues@schubergphilis.com>

This closes #340
2015-06-02 13:27:16 +02:00
wilderrodrigues 607a63b12d Mocking the Connect object used in the LibvirtMigrateCommandWrapper
When executing the tests in an environment where Libvirt is also installed, it
caused errors.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #342
2015-06-01 21:11:25 +02:00
wilderrodrigues b267c5fc5a Replacing real IPs by 127.0.0.1. - It was causing problems in some environments - The Ips should have been removed in a previous commit, but some of them were missed
Signed-off-by: wilderrodrigues <wrodrigues@schubergphilis.com>

This closes #325
2015-05-29 11:25:40 +02:00
wilderrodrigues ce9014d2ec Fix the NPE tht was being caught by the executeRequest() method. - The LibvirtUtilitiesHelper should have been injected, but it did not work on the Agent side. Due to that, when sending a StartCommand we were experiencing NPE, which made impossible to get SSVM/CPVM started. - The LibvirtUtilitiesHelper class is now being instantiated withing the LibvirtComputingResource
Signed-off-by: Daan Hoogland <daan.hoogland@gmail.com>

This closes #318
2015-05-27 13:19:57 +02:00
Rohit Yadav cde6ef94b8 CLOUDSTACK-8247: Pull average Cpu util report between polling
Pull average Cpu util report between polling intervals instead of since boot
instead of using values since uptime

(cherry picked from commit 04176eaf17)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

Conflicts:
	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java

This closes #297
2015-05-25 15:52:00 +02:00
Rohit Yadav 9dcfbceae7 kvm: for disabling pxe, pass empty file
Passing the file argument to the xml break for EL 7.1, the fix removes
the argument as just passing rombar='off' with its file arg to be empty string.

This closes #290

(cherry picked from commit aafa0c80b3)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-25 00:31:32 +02:00
Rohit Yadav d7f4498f76 kvm: Strip trailing comma for qemu-img convert options
Fix trailing comma for qemu-img convert options, Qemu 2.0+ not tolerant to it

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 90ac1aba13)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-22 13:33:54 +01:00
Rohit Yadav c37060a1ff CLOUDSTACK-8338: Fix hypervisor stats reporting for KVM on EL7
EL7 has a different output to 'free', use /proc/meminfo instead of a tool to be
more consistent across distros

(cherry picked from commit 212a05a345)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

Conflicts:
	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
2015-05-22 12:10:54 +01:00
wilderrodrigues 3efdc6c356 CLOUDSTACK-8502
Using Annotations on the Libvirt wrappers in order to increase maintainability
  - All wrappers modified
  - All 143 unit tests are green
2015-05-21 13:37:27 +02:00
wilderrodrigues 14c123e082 Merge branch 'fix/libvirt_unittests_timeout' of https://github.com/schubergphilis/cloudstack
This closes #270
2015-05-20 15:56:13 +02:00
wilderrodrigues 982a0235a0 CLOUDSTACK-8486
Removing real IPs from the tests because they cause a long running time for LibvirtComputingResourceTest
    - In a local machine it takes 1.977s, but in a KVM test environment it's taking 257.879 sec
2015-05-20 14:52:08 +02:00
Wido den Hollander 3894d34b2c CLOUDSTACK-8489: Set smbios information for guest
This allows a guest to easily detect that it is running inside CloudStack
and see which UUID it has.
2015-05-20 13:28:56 +02:00
wilderrodrigues ab7473eea0 Changing the JUnit runner in order to avoid problems with Java 8 - All tests passed using different approaches - Maven with parameters: -Dmaven.compiler.source=1.8 -Dmaven.compiler.target=1.8 - Maven without parameters
All builds were executed using javac 1.8.0_31

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #266
2015-05-20 09:53:46 +01:00
wilderrodrigues 0cdb4b6108 Fixing the testGetHostStatsCommand test under LibvirtComputingResourceTest. - Removed the expected value from the Test annotation - Mocking the bash path in order to avoid environment/OS issues
Fixing typo on LibvirtRequestWrapper
  - Replace linbvirtCommands by libvirtCommands on LibvirtRequestWrapper

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #255
2015-05-18 20:07:02 +02:00
wilderrodrigues c7d2e444d2 Fixing license header in a file added during the LibVirt refactor
- New class is MigrateKVMAsync
2015-05-13 11:56:43 +02:00
wilderrodrigues f575206ad4 Fixing testModifySshKeysCommand in the LibvirtComputingResourceTest class
- The test was okay, but when running in an environment where a /root/.ssh/id_rsa existed, it would return true then fail
  - We now mock the calls to methods that return the key paths, instead of relying in the static variables
2015-05-08 19:53:03 +02:00
wilderrodrigues 74ad48db55 Refactoring the LibvirtComputingResource
- Adding LibvirtStartCommandWrapper
  - 8 unit tests added
  - KVM hypervisor plugin with 23.2% coverage
2015-05-06 19:24:16 +02:00
wilderrodrigues 09656ca84e Refactoring the LibvirtComputingResource
- Adding LibvirtNetworkElementCommandWrapper and LibvirtStorageSubSystemCommandWrapper
  - 2 unit tests added
  - KVM hypervisor plugin with 22.2% coverage

I also refactored the StorageSubSystemCommand interface into an abstract class
  - Remove the pseudo-multiple-inheritance implementation
    - The StorageSubSystemCommand was an interface, not related to the Command class
      and its implementation were extending the Command class anyway. The whole structure is better now.
2015-05-06 19:24:16 +02:00
wilderrodrigues 08106e34d0 Refactoring the LibvirtComputingResource
- Adding LibvirtResizeVolumeCommandWrapper
  - 5 unit tests added
  - KVM hypervisor plugin with 22.1% coverage
2015-05-06 19:24:15 +02:00
wilderrodrigues ae505e7bef Refactoring the LibvirtComputingResource
- Addin LibvirtPvlanSetupCommandWrapper
  - 6 unit tests added
  - KVM hypervisor plugin with 21% coverage

From the 6 tests added, 2 were extra tests to increase the coverage of the LibvirtStopCommandWrapper
  - Increased from 35% to 78.7%
2015-05-06 19:24:15 +02:00
wilderrodrigues 7fd43f33d3 Refactoring the LibvirtComputingResource
- 5 unit tests added
  - KVM hypervisor plugin with 20.1% coverage
2015-05-06 19:24:15 +02:00
wilderrodrigues 0b1b2b6d92 Refactoring the LibvirtComputingResource
- Adding LibvirtCopyVolumeCommandWrapper

Refactoring the LibvirtUtilitiesHelper
  - Changing method name

Did not add any test to this commit due to the refactor mentioned abot.
Will proceed and add the tests

i# Please enter the commit message for your changes. Lines starting
2015-05-06 19:24:15 +02:00
wilderrodrigues 885b9e45d7 Renaming LibvirtConnectionWrapper to LibvirtUtilitiesHelper
- Gave it a better, more suggestive, name since I now added other methods to the class.
  - It makes easier to mock objects and get a better coverage of the classes
2015-05-06 19:24:14 +02:00
wilderrodrigues b3913ca1fb Refactoring the LibvirtComputingResource
- Adding LibvirtCreatePrivateTemplateFromSnapshotCommandWrapper
  - 5 unit tests added
  - KVM hypervisor plugin with 19.5% coverage
2015-05-06 19:24:14 +02:00
wilderrodrigues bcf78d3b43 Refactoring the LibvirtComputingResource
- Adding LibvirtBackupSnapshotCommandWrapper, LibvirtCreatePrivateTemplateFromVolumeCommandWrapper and LibvirtManageSnapshotCommandWrapper
  - 3 unit tests added
  - KVM hypervisor plugin with 18.3% coverage

Less tests added to those classes because the code is quite complex and way too long.
The tests added are just covering the new flow, to make sure it works fine. I will come back to those classes later.
2015-05-06 19:24:13 +02:00
wilderrodrigues 52d9f0c206 Refactoring the LibvirtComputingResource
- Adding LibvirtNetworkUsageCommandWrapper, LibvirtPlugNicCommandWrapper and LibvirtUnPlugNicCommandWrapper
  - 9 unit tests added
  - KVM hypervisor plugin with 18.3% coverage
2015-05-06 19:24:13 +02:00
wilderrodrigues ff7ae9ca0c Refactoring the LibvirtComputingResource
- Adding LibvirtCreateVolumeFromSnapshotCommandWrapper, LibvirtFenceCommandWrapper and LibvirtSecurityGroupRulesCommandWrapper
  - 6 unit tests added
  - KVM hypervisor plugin with 17.2% coverage
2015-05-06 19:24:13 +02:00
wilderrodrigues 3c8b217262 Refactoring the LibvirtComputingResource
- Adding LibvirtCheckOnHostCommandWrapper and LibvirtOvsCreateTunnelCommandWrapper
  - 4 unit tests added
  - KVM hypervisor plugin with 16.2% coverage
2015-05-06 19:24:12 +02:00
wilderrodrigues 6748a73b82 Refactoring the LibvirtComputingResource
- Adding 4 new command wrappers
  - 12 unit tests added
  - KVM hypervisor plugin with 15.5% coverage
2015-05-06 19:24:12 +02:00
wilderrodrigues 5499eecd33 Refactoring the LibvirtComputingResource
- Adding 7 new command wrappers
  - 10 unit tests added
  - KVM hypervisor plugin with 14.8% coverage
2015-05-06 19:24:12 +02:00
wilderrodrigues 4887ce7254 Refactoring the LibvirtComputingResource
- Adding LibvirtOvsDestroyBridgeCommandWrapper, LibvirtOvsSetupBridgeCommandWrapper
  - 4 unit tests added
  - KVM hypervisor plugin with 13.9% coverage

More tests added to cover LibvirtPrepareForMigrationCommandWrapper
  - Coverage of this wrapper broght from 37% to 90.6%
  - 4 new tests added
2015-05-06 19:24:11 +02:00
wilderrodrigues 0d860af659 Refactoring the LibvirtComputingResource
- Adding LibvirtDeleteStoragePoolCommandWrapper, LibvirtGetStorageStatsCommandWrapper and LibvirtUpgradeSnapshotCommandWrapper
  - 7 unit tests added
  - KVM hypervisor plugin with 13.6% coverage
2015-05-06 19:24:11 +02:00
wilderrodrigues 8268d353a2 Refactoring the LibvirtComputingResource
- Adding LibvirtPrimaryStorageDownloadCommandWrapper
  - 4 unit tests added
  - KVM hypervisor plugin with 13.3% coverage
2015-05-06 19:24:11 +02:00
wilderrodrigues 4472cade2f Refactoring the LibvirtComputingResource
- Adding LibvirtDestroyCommandWrapper
  - 2 unit tests added
  - KVM hypervisor plugin with 12.9% coverage
2015-05-06 19:24:11 +02:00
wilderrodrigues cb4670279f Refactoring the LibvirtComputingResource
- Adding LibvirtCreateCommandWrapper and LibvirtMaintainCommandWrapper
  - 4 unit tests added
  - KVM hypervisor plugin with 12.7% coverage
2015-05-06 19:24:10 +02:00
wilderrodrigues 6f757c6bf0 Refactoring the LibvirtComputingResource
- Adding LibvirtModifySshKeysCommandWrapper
  - 1 unit test added
  - KVM hypervisor plugin with 12.3% coverage
2015-05-06 19:24:10 +02:00
wilderrodrigues f14c7c2074 Refactoring the LibvirtComputingResource
- Adding LibvirtGetVncPortCommandWrapper
  - 2 unit tests added
  - KVM hypervisor plugin with 12.1% coverage
2015-05-06 19:20:43 +02:00
wilderrodrigues 7319a12600 Refactoring the LibvirtComputingResource
- Adding LibvirtCheckConsoleProxyLoadCommandWrapper, LibvirtConsoleProxyLoadCommandWrapper, LibvirtWatchConsoleProxyLoadCommandWrapperand CitrixConsoleProxyLoadCommandWrapper
  - 2 unit tests added
  - KVM hypervisor plugin with 12% coverage

Refactored the CommandWrapper interface in order to remove the esecuteProxyLoadScan, which is now
implemented bu subclasses.
2015-05-06 19:20:43 +02:00
wilderrodrigues 08a9523dcd Fixing assertion on the tests that are execting exceptions 2015-05-06 19:20:43 +02:00
wilderrodrigues 40886b337c Refactoring the LibvirtComputingResource
- Adding LibvirtAttachVolumeCommandWrapper
  - 3 unit tests added
  - KVM hypervisor plugin with 11.7% coverage
2015-05-06 19:20:42 +02:00
wilderrodrigues 4d216f1a63 Refactoring the LibvirtComputingResource
- Adding LibvirtAttachIsoCommandWrapper, LibvirtAttachIsoCommandWrapper and LibvirtAttachIsoCommandWrapper
  - 7 unit tests added
  - KVM hypervisor plugin with 11.5% coverage
2015-05-06 19:20:42 +02:00
wilderrodrigues be1e517615 Refactoring the LibvirtComputingResource
- Adding LibvirtPingTestCommandWrapper
  - 3 unit tests added
  - KVM hypervisor plugin with 11.2% coverage
2015-05-06 19:20:42 +02:00
wilderrodrigues 28e55462f1 Refactoring the LibvirtComputingResource
- Adding LibvirtMigrateCommandWrapper
  - 1 unit tests added
  - KVM hypervisor plugin with 10.9% coverage
2015-05-06 19:20:41 +02:00
wilderrodrigues d730efb866 Refactoring the LibvirtComputingResource
- Adding LibvirtCheckHealthCommandWrapper and LibvirtPrepareForMigrationCommandWrapper
  - 2 unit tests added
  - KVM hypervisor plugin with 10.8% coverage
2015-05-06 19:20:41 +02:00
wilderrodrigues 54f68f519f Removing the CheckStateCommand form the IF statement on LibvirtComputingResource
- It's not used and if so would cause an infinite loop.
2015-05-06 19:20:41 +02:00
wilderrodrigues 6e568125fc Refactoring the LibvirtComputingResource
- Adding LibvirtGetHosStatsCommandWrapper
  - 1 unit test added
  - KVM hypervisor with 10.5% coverage

Tests are a bit limited on this one becuause of the current implementation. Would clean it up later in a separate branch
2015-05-06 19:20:41 +02:00
wilderrodrigues 7a90c018fb Refactoring the LibvirtComputingResource
- Adding LibvirtRebootCommandWrapper and LibVirtRebootRouterCommandWrapper
  - 2 unit tests added
  - KVM hypervisor with 10.5% coverage
2015-05-06 19:20:40 +02:00
wilderrodrigues 51093afcf1 Refactoring the LibvirtComputingResource
- Adding LibvirtGetVmDiskStatsCommandWrapper
  - 1 unit test

Added getConnection() to LibvirtConnectionWrapper
2015-05-06 19:20:40 +02:00
wilderrodrigues 7086d64387 Refactoring the LibvirtComputingResource
- Adding LibvirtGetVmStatsCommandWrapper
  - 3 unit tests

Refactored the LibvirtConnectiobn by surrounding it with an wrapper.
  - Make it easier to cover the static/native calls
  - Added better coverage to StopCommand tests
2015-05-06 19:20:40 +02:00
wilderrodrigues 508f10527f Refactoring the LibvirtComputingResource
- Adding LibvirtStopCommandWrapper
  - LibvirtRequestWrapper
  - 1 unit tests

Refactored the RequestWrapper to make it better.
  - Changes also applied to the CitrixRequestWrapper
2015-05-06 19:20:39 +02:00
Laszlo Hornyak 58e5dca8ef CLOUDSTACK-8335: removed ceph repository - artifact resolved from maven central
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
Signed-off-by: Rajani Karuturi <rajanikaruturi@gmail.com>
2015-05-01 11:10:06 +05:30
Rohit Yadav 1d99a38096 CLOUDSTACK-8424: enable cpu flags only for guest VMs
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-30 04:13:07 +02:00
Daan Hoogland 7b10591758 findbugs: String.split() will not return nulls by contract 2015-04-29 16:07:38 +02:00
Rajani Karuturi 0b8355920e Merge branch 'volume-upload' into master
This closes #206
2015-04-29 11:12:53 +05:30
Rohit Yadav 29b8800660 kvm: add VMXNET3 nic adapter to nic models
Linux kernel supports vmxnet3, allowing it in KVM plugin would allow us to
run ESX hosts on KVM hosts using CloudStack with vmxnet3 nic which can be
passed as VM's nicAdapter detail

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit e02d787f30)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-28 18:23:55 +02:00
Rohit Yadav 58cc569273 CLOUDSTACK-8424: Add cpu features if guest.cpu.features is set
This improvements checks for "guest.cpu.features" property which is a space
separated list of cpu features that is specific for a host. When added, it
will add  <feature policy='require' name='{{feature-you-listed}}'/> in the
<cpu> section of the generated vm spec xml.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit ea7fd37783)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-28 13:19:49 +02:00
Laszlo Hornyak 9cf31b0714 CLOUDSTACK-8335: removed libvirt.org repository
The only artifact resolved from libvirt.org was org.libvirt:libvirt:0.5.1
this artifact is now available from maven's default central repository

This closes #180

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-24 16:58:59 +02:00
Rohit Yadav 05e4ba7350 kvm: fallback to eu.ceph.com mvn repo as ceph.com is down
As suggested by Wido on the dev ML changing the repo to eu.ceph.com to avoid
build failures. Will revert if ceph.com is up again.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit c9fd57fff3)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-16 17:37:11 +05:30
Remi Bergsma ac06ec02eb kvm: improve CentOS 7 support
CentOS 7 does not ship with ifconfig anymore. We should use ip commands instead.
This also works on older versions, like CentOS 6 and Ubuntu 12.x/14.x, that we
support.

This closes #165

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-14 16:51:14 +05:30
Rohit Yadav ccf13ec04e kvm: xml escape password
(cherry picked from commit 13de2691fd)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

Conflicts:
	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
2015-04-13 16:10:42 +05:30
KC Wang 01864ef77c CLOUDSTACK-6697: bigswitch networking plugin update
1. provide compatibility with the Big Cloud Fabric (BCF) controller
   L2 Connectivity Service in both VPC and non-VPC modes
2. virtual network terminology updates: VNS --> BCF_SEGMENT
3. uses HTTPS with trust-always certificate handling
4. topology sync support with BCF controller
5. support multiple (two) BCF controllers with HA
6. support VM migration
7. support Firewall, Static NAT, and Source NAT with NAT enabled option
8. add VifDriver for Indigo Virtual Switch (IVS)

This closes #151

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-09 13:02:02 +05:30
Daan Hoogland 6a821730ce Boolean -> boolean 2015-03-25 22:20:40 +01:00
Daan Hoogland 048212b117 findbugs: Boolen function should not return null 2015-03-25 21:46:47 +01:00
Laszlo Hornyak 9a38b2f7de CLOUDSTACK-8304: disable snapshots from non-snapshot repositories
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
Signed-off-by: Rajani Karuturi <rajanikaruturi@gmail.com>

This closes #100
2015-03-10 17:19:09 +05:30
Sanjay Tripathi 520d96724a CLOUDSTACK-8312: The storage usage of "Primary Storage Allocated" is incorrect. 2015-03-10 16:52:25 +05:30
Marcus Sorensen 57cd7f3db5 LibvirtComputingResource: Support 'Oracle Linux 7' as pv guest
Change-Id: Ib3fd2fec7434564e937ac5b6b3cfee472a5fdc98
2015-03-03 10:44:12 -08:00
Laszlo Hornyak 0fda5a03a4 CLOUDSTACK-8292: fix for java 1.8 compilation
Refactored to use the XPatch expressions to check the generated domain xml rathern than string comparison.

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2015-02-28 20:11:46 +01:00
Marcus Sorensen 77d11eb1a3 LibvirtComputingResource: Fix coverity scan, recent bugfixes revealed a potential unhandled null in getResizeScriptType
Change-Id: I5715a4424646261f2c43cd5e0a16fd72dd12c753
2015-02-23 16:56:19 -08:00
Marcus Sorensen 6c05d9f572 CLOUDSTACK-8263: KVM - virsh resize doesnt refresh libvirt's view of the volume size, refresh pool
Change-Id: I5ea54f7389d72b57bb625e4d87b45b65eb0c96cd
2015-02-18 12:55:53 -08:00
Marcus Sorensen 9bf2626e57 CLOUDSTACK-8263: KVM - use virsh instead of libvirt for resizing qcow2, as libvirt bindings are insufficient
Change-Id: I08246219cb1469a46dc6a9ec76a8c3a67b0b8bf6
2015-02-17 18:09:41 -08:00
Marcus Sorensen ed8184a5b2 CLOUDSTACK-8263: KVM - notify qemu process of resized volume for libvirt-resized storage
Change-Id: Iddd8bb068855d3565075d3ecf7c6c0f074d00e1a
2015-02-17 14:25:55 -08:00
Mike Tutkowski 5e142f59ef CLOUDSTACK-8233 kvmtimer fix 2015-02-08 17:48:06 -07:00
Mike Tutkowski 6cd2b53790 Adding in the license text 2015-02-03 18:22:18 -07:00
Marcus Sorensen ca2c3c30e2 Dynamic storage adaptor for KVM 2015-02-03 12:08:24 -07:00
Rohit Yadav d5db87f381 CLOUDSTACK-8198: Use random local storage UUID
Earlier host addition of multiple hosts with local storage failed due to
same local storage UUID being used where the storage path is same.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit bf17f640c6)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-03 22:36:46 +05:30
Marcus Sorensen 65e8e50dec LibvirtComputingResource: GuestOSName for OracleLinux 2015-01-29 08:28:55 -07:00
Marcus Sorensen fa76b3c9f5 LibvirtComputingResource: make Oracle linux support virtio
Conflicts:
	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
2015-01-28 23:41:33 -07:00
Marcus Sorensen 35ede0418a CLOUDSTACK-8177
KVM: disable tickpolicy for kvmclock. Newer libvirt enforces that
kvmclock cannot accept parameters.
2015-01-23 02:46:16 -07:00
Marcus Sorensen 455998ce95 LibvirtComputingResource: Expose KVMStoragePoolManager
KVMStoragePoolManager is a singleton in practice, any plugin
or extension of LibvirtComputingResource will need to act on
the specific instance of KVMStoragePoolManager that LibvirtComputingResource
has initialized. Therefore, expose this variable for those who
wish to call storage commands from plugins or extensions.

Conflicts:

	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
2015-01-23 02:45:54 -07:00
Kishan Kavala 85bd96c6b2 While deploying Vm with DataDisk in LXC, if the rbd image mapping on the host fails, deploy Vm should fail 2015-01-07 15:09:57 +05:30
Wei Zhou 4eedfe53fc CLOUDSTACK-2823: pass cmdline info to system vms for 30 times 2014-12-08 15:45:29 +01:00
Rajani Karuturi b6c86bdb75 changed commons-io version to the latest stable 2.4
also updated version numbers in all the poms its used.
2014-11-28 17:01:16 +05:30
Wei Zhou daa57f67d6 CLOUDSTACK-6893: fix enum ValueOf issue which causes systemvm fail to start
(cherry picked from commit 63ff5a7cbc)
(cherry picked from commit d0e0edca11)
2014-11-27 16:58:08 +01:00
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
Laszlo Hornyak b2023d04ba Simplification on Properties handling
- Added method to create properties and load contents from file

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-11-23 19:48:56 +01:00
Wido den Hollander 69ee01af9d CLOUDSTACK-3383: Fetch CPU utilization more reliable.
This should fix that we can't gather CPU statistics on hypervisors
> Ubuntu 12.04
2014-11-12 09:54:54 +01:00
Daan Hoogland abff49d5b3 CID-1250770 pass through mkdirs() return value 2014-11-11 10:32:46 +01:00
Santhosh Edukulla 94ee16a719 Fixed the wrong if else statement 2014-11-10 22:33:19 +05:30
Santhosh Edukulla 1aef5cba66 Fixed Coverity Issues 2014-11-03 16:45:30 +05:30
Logan Barfield 3a52a83fae Fixed root disk resize on deploy for RBD.
Signed-off-by: Wido den Hollander <wido@widodh.nl>
2014-10-31 22:17:27 +01:00
punith-cloudbyte 09a62b8389 new managed nfs storage adapter
Signed-off-by: Mike Tutkowski <mike.tutkowski@solidfire.com>
2014-10-30 16:07:59 -06:00
Hugo Trippaers 4ebaf0a583 Bump master version to 4.6.0-SNAPSHOT after branching 4.5.0-SNAPSHOT 2014-10-29 14:54:23 +01:00
Hugo Trippaers f5353d30f5 Merge branch 'bugfix/CID-1249800' 2014-10-29 09:42:05 +01:00
Hugo Trippaers 320544fa51 CID-1249800 Fix a coverity bug, but disable the code its used in as it
needs rethinking
2014-10-29 09:38:40 +01:00
Hugo Trippaers ab980cd3b7 CID-1249801 This should be a string comparison, not an object comparison 2014-10-29 09:24:19 +01:00
Mike Tutkowski 0cea0346ae Support for back-end snapshots on primary storage 2014-10-21 16:01:14 -06:00
Edison Su 1a98992c5a fix kvm issue, for windows sever 2008, it will crash without hyperv enlightment featre enabled 2014-10-21 10:32:29 -07:00
Santhosh Edukulla 0a9742f914 Fixed few coverity issues
Signed-off-by: Santhosh Edukulla <santhosh.edukulla@gmail.com>
2014-10-14 17:16:50 +05:30
Edison Su 5ff1ece2be if guest network type is vlan://untagged, and traffic label is used, kvm agent needs to honor traffic label 2014-10-09 16:43:00 -07:00
Edison Su 6dc6e8a900 if libvirt version is < 10.10(below rhel 6.5), won't set nic throttling 2014-10-09 16:36:22 -07:00
Wido den Hollander 4ee82f1f40 kvm: Add better logging when fetching a volume from libvirt
Clearly show if a volume is found and if not, that the pool is being refreshed
and the fetch is tried again.

Due to my commit b53a9dcc9f the chance of a volume
not being found is slightly bigger, but the performance gain is enormous on larger
deployments.

This is why we clearly have to log that we are refreshing the pool information
when a volume is not found.

It could be that a volume is created on host A and a few seconds later host B tries
to access the volume. In that case host B's libvirt doesn't know about the volume
yet and has to refresh the pool before it does.
2014-10-10 01:00:54 +02:00
Hugo Trippaers 783ed9be98 "Fixing" a Coverity/Findbugs finding. 2014-09-30 14:42:08 +02:00
Hugo Trippaers 586e00cee1 CID-1241965 Fix potential NPE 2014-09-30 11:43:02 +02:00
Wido den Hollander b53a9dcc9f CLOUDSTACK-7641: Do not always ask libvirt to refresh a storage pool
On larger (especially RBD) storage pools this can take a lot of
time slowing operations like creating volumes down.

The getStorageStats command will still ask a pool to be refreshed so
that the management server has accurate information about the storage pools.

On larger deployments, with thousands of volumes in one pool, this should
significantly improve storage related operations
2014-09-28 20:51:10 +02:00
Hugo Trippaers c20336c1ab CID-1240107 Remove unused variable 2014-09-23 11:06:41 +02:00
Rohit Yadav b1d0df16cf CID-1116258: Guard _storagePools using synchronized in KVMStoragePoolManager
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-09-18 11:48:11 +02:00
Rohit Yadav e1842a9d53 CID-1199715: Remove dead code from LibvirtStorageAdaptor
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-09-17 16:30:42 +02:00
Kishan Kavala f0e82f340a CLOUDSTACK-7543: Attach RBD disk for LXC during start. Moved rbd map code seperate method. When adding block device, qemu driver should not be used for LXC 2014-09-15 10:15:54 +05:30
Kishan Kavala 4f3de024de Add script to ensure cgroups are not co-mounted in rhel7/lxc. If required, script will unmount co-mounted cgroups and remount them seperately 2014-09-11 14:34:40 +05:30
Kishan Kavala 41fdc418ff CLOUDSTACK-7472: Disable kvmclock for LXC 2014-09-05 19:38:55 +05:30
Kishan Kavala 6f7c4863a2 CLOUDSTACK-7473: Vm migration is not supported for LXC. When host is put in maintenance mode, stop the Vms instead of migrating 2014-09-04 20:59:19 +05:30
Rajani Karuturi 17164c3c83 Fixed CLOUDSTACK-6942: LXC: optimize template copy to primary
saving LXC template as tar to primary and extracting it only when
required.
This would improve the template copy time.

Reviewed By: Kishan Kavala
2014-09-04 14:56:29 +05:30
Hugo Trippaers dc3f0cbc63 Improve the handling of the findbug exclude files 2014-09-03 10:41:22 +02:00
Kishan Kavala 718fd5f39f CLOUDSTACK-7445: Number whitespaces in "rbd showmapped" command varies in plain format. Use regex in grep to workaround. 2014-08-27 16:13:35 +05:30
Kishan Kavala 30ecf935e8 CLOUDSTACK-7315: Set LXC volumes format as DIR. Use rm command to delete LXC volumes. Libvirt delete volume does not handle directories 2014-08-26 13:57:48 +05:30
Kishan Kavala 656fc69f39 remove trailing comma in options sent to qemu-img 2014-08-22 15:39:04 +05:30
Wido den Hollander ab7c1f34d6 kvm: Do not print the whole exception when pool is not found in libvirt
This causes the logs to be filled with Exceptions which aren't nice for
users to read
2014-08-20 14:00:29 +02:00
Wido den Hollander 1ed0fe4ee7 kvm: Throw a proper exception when pool could not be fetched from libvirt
Otherwise NULL is returned and leads to a NPE further up the chain.
2014-08-20 13:39:52 +02:00
Wido den Hollander eeac81838f kvm: Return capitalized NONE when no disk cache mode is set
This caused Instances not to start under rare circumstances
2014-08-18 23:58:50 +02:00
Edison Su a1bee2cb61 measure how long it takes to create a snaphsot 2014-08-12 15:13:42 -07:00
Likitha Shetty f803100813 CLOUDSTACK-6969. Data Volume Shrink operation failing with "Unexpected Exception".
For ResizeVolume API command -
1. If hypervisor resource throws an exception, handle the NPE thrown by the job framework.
2. Improve user error message in case of RuntimeException by throwing the exception instead of 'Unexpected Exception'.
2014-08-01 16:23:47 +05:30
Santhosh Edukulla 44709111a3 Added Coverity Fixes 2014-07-31 15:01:30 +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
Wido den Hollander 7542ffc482 CLOUDSTACK-6181: Set the correct flags when resizing RBD 2014-07-26 11:39:28 +02:00
Santhosh Edukulla 3f6d5e392f Fixed Coverity Issues Reported 2014-07-25 16:43:29 +05:30
amoghvk c804660c74 CLOUDSTACK-7168: Revert "Fixed Coverity Issues reported" that broke CI
This reverts commit 4523490d44.
2014-07-23 11:37:36 -07:00
Wido den Hollander 173909e99d CLOUDSTACK-6181: Allow RBD volumes to be resized
We don't need an external script to investigate the format of the RBD volume,
we only have to ask Libvirt to resize the volume and that will ask librbd to
do so.
2014-07-22 22:28:34 +02:00
Santhosh Edukulla 4523490d44 Fixed Coverity Issues reported
Signed-off-by: Santhosh Edukulla <santhosh.edukulla@gmail.com>
2014-07-22 18:03:36 +05:30
Kishan Kavala 7d3f381d94 Set mapped device path while detaching rbd disk 2014-07-22 17:50:58 +05:30
Suresh Ramamurthy 03de9cc335 CLOUDSTACK-6845 : NuageVsp Network plugin
Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
2014-07-21 10:49:49 +02:00
Marcus Sorensen 849049a2f0 KVM: Allow changing VM video card via agent.properties. This change in
LibvirtVMDef can also be leveraged to add the option to service offering
or template hardware selection (as nic and disk types do).
2014-07-18 16:52:51 -06:00
Edison Su 9fb93fe5b3 CLOUDSTACK-7110: introduced by c1116142a3, if it's a data volume, mgt server doesn't send image format to agent 2014-07-18 12:03:10 -07:00
Hugo Trippaers 5651a13cfd Remove duplicated code 2014-07-18 09:28:42 +02:00
amoghvk 3d8dd1c921 Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/cloudstack 2014-07-14 17:30:12 -07:00
Amogh Vasekar 09069fcc87 CLOUDSTACK-6358: Add missing patches in master for KVM 2014-07-14 16:51:55 -07:00
Edison Su e1095b0110 revert the change made by commit: a600d840 2014-07-14 14:10:16 -07:00
ynojima e7392cdac6 Remove "--output" option from qemu-img info command call
since the option is not supported by qemu-img in CentOS 6.3
2014-07-13 00:33:16 -06:00
Hugo Trippaers b9145beab6 Fix CID 1116267 Don't modify the set while the iterator is still in use. 2014-07-04 16:48:28 +02:00
Santhosh Edukulla a600d8408e Fixed Resource Leaks, null dereferences, few other issues reported by coverity 2014-07-04 16:17:58 +05:30
Wido den Hollander 84cfb47281 kvm: Use getStoragePool after createStoragePool when we create a libvirt pool
This removes some redundant code
2014-05-28 10:34:20 +02:00
Marcus Sorensen 7ce3034299 CLOUDSTACK-6790: Disable PXE ROM for system vm nics 2014-05-27 16:52:26 -06:00
Marcus Sorensen f3a0d257b8 CLOUDSTACK-6788: Add agent property to optionally disable kvmclock on guests 2014-05-27 16:16:41 -06:00
Wido den Hollander 48899e4c81 CLOUDSTACK-6783: Return a proper LibvirtStoragePool object after creating the pool
In situations where libvirt lost the storage pool the KVM Agent will re-create the
storage pool in libvirt.

This could be then libvirt is restarted for example.

The object returned internally was missing essential information like the sourceDir
aka the Ceph pool, the monitor IPs, cephx information and such.

In this case the first operation on this newly created pool would fail. All operations
afterwards would succeed.
2014-05-27 16:21:07 +02:00
Wido den Hollander a7004db7c8 rbd: Create snapshot for cloning operations only when it is required
We used to create the snapshot after the copy from Secondary Storage,
but it could be that we never use the snapshot.

Now we check if the snapshot exists prior to performing the cloning operation
2014-05-02 11:55:34 +02:00
Wido den Hollander 3962577329 CLOUDSTACK-4549: Do not force RBD snapshot backups to RAW format
Since we use qemu-img to copy from RBD to Secondary Storage we no
longer have to force to RAW images, but can stick with QCOW2

When the snapshot backups are QCOW2 format they can easily be deployed
again when restoring from a backup
2014-05-01 21:03:11 +02:00
Wido den Hollander c1116142a3 kvm: Better handle different volume formats when creating a volume
The KVMStorageProcessor no longer has a hardcoded if-statement which sets
RBD volumes to RAW, this is now handled in the LibvirtStorageAdapter

The Management Server still sends QCOW2 as format. That's a fix for later.
2014-05-01 21:03:11 +02:00
Murali Reddy 42b5e1858c incorporate change in getGuestNicModel signature, while handling OVS in
OvsVifDriver
2014-04-25 15:41:02 +05:30
Murali Reddy 771abe4286 fix KVM plug-in for OVS tunnel network. Fix addreses two issues.
fix  mismatch of ovs-host-setup, ovs_host_setup used Libvirt resource and
scripts

plug the nic to OVS bridges created for the tunnel network.

Conflicts:
	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/OvsVifDriver.java
2014-04-25 15:02:17 +05:30
Marcus Sorensen 6ca4e3acb6 CLOUDSTACK-6500: Make KVM agent aware of rootDiskController
and nicAdapter parameters passed in StartCommand, provided
    by template details
2014-04-24 19:01:33 -06:00
Wido den Hollander c9b22af6c7 kvm: Add more log lines around storage pool operations 2014-04-17 17:42:17 +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
Wido den Hollander 8d2baf8017 rbd: Use qemu-img to backup up a RBD snapshot to Secondary Storage
This reduces the amount of time and storage it takes dramatically. We no longer
do a full copy, but a sparse copy. The destination image is still in RAW
format, but we only copy over used blocks.

Qemu is also better in doing this then us doing it in Java code.
2014-04-11 14:00:08 +02:00
Marcus Sorensen 11f5bdd78d CLOUDSTACK-6191 Add support for specifying volume provisioning
type (thin, sparse, fat) in disk/compute offerings.

Submitted-by: Yoshikazu Nojima <mail@ynojima.net>
Reviewed-by: Marcus Sorensen, Mike Tutowski
2014-04-10 09:23:04 -06:00
Wido den Hollander 4ba688f07d kvm: Add more debugging information when a volume is deleted.
There was no clear reference of libvirt being instructed to remove
the volume
2014-04-10 14:33:49 +02:00
Kishan Kavala 85072cb6b9 CLOUDSTACK-6371: Set snapshot size in copycommand answer during snapshot backup 2014-04-10 14:45:14 +05:30
Wido den Hollander 0615d4e6a5 rbd: Check if a snapshot is protected before trying to unprotect
Otherwise a RBDException will be thrown with the message that the snapshot
isn't protected.
	modified:   plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java
2014-04-10 05:30:06 +02:00
Anthony Xu 8d1c90684f make sure volumeUuid is not full path 2014-04-08 16:34:59 -07:00
Wido den Hollander 6da087e601 rbd: Add some more debugging while deleting a physical disk 2014-04-07 06:20:57 +02:00
Sheng Yang b2ffd86570 CLOUDSTACK-6309: Fix timeout in KVM when execute VR commands
Timeout is in seconds rather than milliseconds.
2014-03-31 11:30:06 -07:00
edison d1d855fef4 CLOUDSTACK-5857: for some reasons, delete secondary pool failed during copy template from secondary storage to primary storage, but the volume is already copied to primary storage, we didn't clean up the volume on primary storage, then all the following copy the same template to primary storage failed, as we are always using the same uuid when creating a new volume, libvirt complaining that the volume already exists.
Current fix is ignoring "the delete secondary storage error".
2014-03-28 16:23:34 -07:00
edison a8bfb3dd00 CLOUDSTACK-5737: ignore umount secondary storage failure during backup snapshot 2014-03-28 16:22:24 -07:00
Edison Su b1bba4b3fb CLOUDSTACK-5737: isExternalSnapshot should return true for CLVM and RBD only 2014-03-28 16:14:59 -07:00
Daan Hoogland 8b62b2cb92 findbugs: exclude known spiffy hacks a.k.a. false positives 2014-03-28 14:28:10 +01:00
Marcus Sorensen 7390f99afb CLOUDSTACK-6292: Fix live migration of KVM when vnc ip address
changes

Submitted-by: Yoshikazu Nojima
2014-03-27 16:45:42 -06:00
Kishan Kavala fe7b753b03 CLOUDSTACK-6122: Map rbd image on host before attaching to Vm 2014-03-27 14:53:36 +05:30
Wido den Hollander 9763faf85e rbd: Use qemu-img to convert from QCOW2 templates to RBD directly.
This saves the step of writing to a temporary image in /tmp first before
writing to RBD.

This is possible due to a new version in librbd. With the rbd_default_format
setting we can now force qemu-img to create format 2 RBD images.

This is available since Ceph version 0.67.5 (Dumpling).
2014-03-24 16:35:13 +01:00
Sheng Yang 1d3a6eaa50 CLOUDSTACK-6047: Fix timeout issue when try to execute aggregated commands
Add executeInVR() with timeout interface to VirtualRouterDeployer

AggregationControlCommand with Action.Finish may take longer than normal command
since it would execute all the commands in one execution, and it may result in
SSH timeout for SshHelper or other mechanism communicate with VR.

Introduce an new executeInVR() interface with added timeout period for waiting
FinishAggregationCommand to complete execution.
2014-03-18 17:43:59 -07:00
Marcus Sorensen d638d04cbf CLOUDSTACK-6181: Merge of resize root feature (resize-root branch) 2014-03-14 07:17:33 -06:00
Hugo Trippaers 4402685e11 Update master to 4.5.0-SNAPSHOT 2014-03-14 14:55:26 +01:00
Murali Reddy 36541a2f4c adding distributed routing support for KVM OVS
some check style error fixes
2014-03-14 16:56:38 +05:30
Murali Reddy e045883c52 introduce OvsNetworkTopologyGuru that has convinenace functions to
- get the hosts on which VPC spans given vpc id
   - get the VM's in the VPC
   - get the hosts on which a network spans
   - get the VPC's to which a hosts is part of
   - get VM's of a VPC on a hosts

introduces capability to build a physical toplogy representation of a
VPC. This json file is encapsulated in
OvsVpcPhysicalTopologyConfigCommand, and is used to send full topology
to hypervisor hosts. On hypervisor this json config can be used to setup
tunnels, configure bridge, add flow rules etc

Ovs GURU, to use different broasdcast scheme VS://vpcid.gerkey for the
networks in VPC that use distributed routing

each VIF and tunnel interface to carry the network UUID in other/options
config
2014-03-14 16:56:37 +05:30
Alena Prokharchyk 6c23e201ad 1) More fixes for the problems found by findBugs
2) Corrected some logging in  MidoNetPublicNetworkGuru - removed .toString method call on the objects in the log body as toString is called on the object by default when use log4j
2014-03-13 16:05:45 -07:00
Kishan Kavala 6d4b979c4d CLOUDSTACK-6122: LXC systemVms run on KVM. If they are not included in the VmState report, MS assumes that system Vms are not running. MS will stop these Vms and spin new ones. So on LXC hosts, KVM Vms also have to be included in the Vmlist 2014-03-11 23:49:28 +05:30
Marcus Sorensen c874e20c24 CLOUDSTACK-6225: Check libvirt version and volume format before
adding flag VIR_STORAGE_VOL_RESIZE_ALLOCATE to resize volume
libvirt call
2014-03-11 11:13:12 -06: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
Marcus Sorensen e5449e29c9 CLOUDSTACK-6203: KVM Migration fixes. Moved migration to a thread
so we can monitor it and potentially take action to make migration
complete if admin has defined such.
2014-03-05 12:24:04 -07:00
Marcus Sorensen fb0b2eb267 CLOUDSTACK-6192: Return failure on StartCommand and PrepareForMigrationCommand
when connectPhysicalDisk fails, rather than continuing on
2014-03-04 14:18:51 -07:00
Wido den Hollander 1f9649bc3b kvm: Fix a NullPointerException which occurs when storage pool creation fails
Also make the logging around creating a RBD storage pool a bit better when creating
that fails.
2014-03-04 16:03:11 +01:00
Kelven Yang 414b1cbb22 let KVM only report running VM to workaround the problem when KVM still keeps stopped-VM around in some cases 2014-02-28 15:35:59 -08:00
Jayapal cb1c287433 CLOUDSTACK-6183: Unplug the nic when all the ips from the public subnet is released 2014-02-28 16:46:57 +05:30
Min Chen a6f17675d4 CLOUDSTACK-6175:s3.singleupload.max.size option not applicable for
backup snapshot on KVM.
2014-02-26 15:13:49 -08:00
Wido den Hollander abf3c055c2 templates: Add FreeBSD 10 template
With VirtIO enabled on KVM. FreeBSD 10 supports VirtIO for both the
network and the disks. This frees us from IDE and E1000 which should
also improve performance.
2014-02-25 14:56:24 +01:00
Niels de Vos 14689d7810 Gluster should store volumes in qcow2 format
By default all network disks are in RAW format. Gluster works fine with
QCOW2 which has some advantages.

Disks are by default in QCOW2 format. It is possible to run into
a mismatch, where the disk is in QCOW2 format, but QEMU gets started
with format=raw. This causes the virtual machines to lockup on boot.

Failures to start a virtual machine can be verified by checking the log
of the virtual machine, and compare the output of 'qemu-img info'.

In /var/log/libvirt/qemu/<VM>.log find the URL for the drive:

    -drive file=gluster+tcp://...,format=raw,..

Compare this with the 'qemu-img info' output of the same file, mounted
under /mnt/<pool-uuid>/<img-uuid>:

    # qemu-img info /mnt/<pool-uuid>/<img-uuid>
    ...
    file format: qcow2
    ...

This change makes passes the format when creating a disk located on RBD
(RAW only) and Gluster (QCOW2).

Signed-off-by: Niels de Vos <ndevos@redhat.com>
2014-02-25 12:08:46 +01:00
Hugo Trippaers 52c4f00b26 Findbugs: Fix potential NPE 2014-02-24 14:07:33 +01:00
Hugo Trippaers 6b61fd7d09 Fix CID 1186644: ES: Checking String equality using == or != 2014-02-24 14:06:40 +01:00
Marcus Sorensen 4fcd0b1a1f if libvirt fails to attach disks, call disconnectPhysicalDisk to clean up 2014-02-20 15:43:27 -07:00
Niels de Vos fe83a85436 Add support for Primary Storage on Gluster using the libvirt backend
The support for Gluster as Primary Storage is mostly based on the
implementation for NFS. Like NFS, libvirt can address a Gluster environment
through the 'netfs' pool-type.
2014-02-20 14:52:01 +01:00
Sheng Yang 5332f67ae8 CLOUDSTACK-6047: Make sure every commands to VR resource is NetworkElementCommand 2014-02-19 19:46:49 -08:00
Marcus Sorensen df77c4310a CLOUDSTACK-6103: Pass VM iso information along with
PrepareForMigrationCommand, so that destination hypervisor can
mount pool. This further exposed an issue for KVM where iso
was not getting cleaned up upon successful migration, fixed as well.
2014-02-14 00:34:48 -07:00
Laszlo Hornyak bdf50f6d24 Remove assertion
The assertion is built on the assumption that cpuinfo_max_freq is readable by user, which may not be universaly true.
2014-02-10 19:56:54 +01:00
Laszlo Hornyak ab15653d68 Revert "Temporarily ignore getCpuSpeed test"
This reverts commit e4a91d3610.
2014-02-10 19:40:37 +01:00
Laszlo Hornyak e4a91d3610 Temporarily ignore getCpuSpeed test
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 23:13:55 +01:00
Laszlo Hornyak 55b6b6d50b Boolean expression simplification
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 19:19:20 +01:00
Laszlo Hornyak d6a6e8dfa5 Minor Boolean expression simplification
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 19:05:28 +01:00
Laszlo Hornyak 74a3cb4d5e String concatenation cleanup
Replaced string concatenation in loop with StringBuilder

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 19:01:45 +01:00
Laszlo Hornyak 8e3ae40ba2 removed self-assignment
It must have been a copy-paste from the other constructor.

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 18:46:36 +01:00
Laszlo Hornyak d22b65f45f replaced Integer reference comparsion with .equals
By default only the Integers between -128..127 are cached (unless overridden by java.lang.Integer.IntegerCache.high system property)
If the inbound or outbound values are higher, the reference comparison won't work.

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 18:39:03 +01:00
Laszlo Hornyak 3e3ded75f4 safely close resource with java 1.7 resource block
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 18:27:54 +01:00
Laszlo Hornyak 5e4fec9eca removed unused variables
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 16:55:27 +01:00
Laszlo Hornyak e52a276104 cleanup in LibvirtComputingResource
- minor resource leak cleaned up
- cpu-speed reading method extracted
- test added
- logging added in case of exception

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 16:50:10 +01:00
Wido den Hollander 1baebebda6 test: Expand LibvirtDomainXMLParserTest with Interface test 2014-02-06 14:40:40 +01:00
Wido den Hollander 41c7e22eee test: Add test for LibvirtDomainXMLParser
A couple of changes where made to other classes as well to add
some features to allow more extensive testing.
2014-02-06 14:23:25 +01:00
Wido den Hollander 3989d6c481 kvm: Resize volumes using libvirt
This saves us a lot of code and libvirt is probably a better
place to do this.

libvirt-java now has the support we want, so we can now resize volumes
with libvirt.

(C)LVM volumes can't be resized using libvirt, so we have to
invoke a resize script for that.
2014-02-04 14:26:51 +01:00
Wido den Hollander 5ae12f31b7 rbd: Set client timeout to 30 seconds.
By default the client_mount_timeout setting in librados is 300 seconds,
but that causes the connect to the Ceph cluster to block for 5 minutes
if the Ceph cluster is not available.

This patch is not ideal, but it mitigates the problem for now.

At a later point all this librados/librbd code should go back to libvirt
again, but the current versions of libvirt in the distributions are
to old for all the features we require.

For now this should prevent the CloudStack agent blocking for 5 minutes
when the Ceph cluster isn't available.

This is also tracked at the Ceph tracker: http://tracker.ceph.com/issues/6507
2014-02-03 16:07:00 +01:00
Marcus Sorensen 05189361b7 CLOUDSTACK-5968 last patch fixes setting low currentMemory during
overprovision, this one explicitly tells libvirt we dont want a
balloon device (won't use it anyway, and will just suck up a percent
of vm memory)
2014-01-28 11:51:23 -07:00
Marcus Sorensen 1530c162e5 CLOUDSTACK-5968 create vm.memballoon.disable agent parameter 2014-01-28 10:44:44 -07:00
Marcus Sorensen daeea46da0 CLOUDSTACK-5956 remove persist flag during live migration 2014-01-27 11:04:05 -07:00
Laszlo Hornyak 884e8c6510 replaced Long instantiation with parseLong
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-01-25 16:11:51 +01:00
Sheng Yang 3c955c3659 CLOUDSTACK-5779: Make VmwareResource use VirtualRoutingResource 2014-01-24 19:57:52 -08:00
Sheng Yang 285f23f11b CLOUDSTACK-5779: Generalize calling to execute or create file for KVM 2014-01-24 18:28:25 -08:00
Wido den Hollander dad98ef4de test: Add UnitTest for LibvirtSecretDef 2014-01-23 21:09:25 +01:00
Hugo Trippaers 50b6de4714 Findbugs finding : Fix potential NPE 2014-01-23 16:14:56 +00:00
Wido den Hollander 5747b80124 test: Add UnitTest for Libvirt Storage Pool definitions 2014-01-22 21:52:39 +01:00
Wido den Hollander f7ee27cd1c test: Add Unit Test for LibvirtVMDef DiskDef 2014-01-22 00:04:29 +01:00
Jayapal a41c9b9631 CLOUDSTACK-5867 Fixed service monitor command path 2014-01-16 11:29:03 +05:30
Alex Huang 68b8891c62 Removed all reminants of the IdentityService. Created the KeysManager to move the management
of keys out of management server
2014-01-14 13:11:35 -08:00
Mike Tutkowski 929838c8eb Merge from 4.3: CLOUDSTACK-5662: XenServer can't discover iSCSI targets with different credentials 2014-01-09 22:42:14 -07:00
Marcus Sorensen 0911b73c83 CLOUDSTACK-5430: NPE can be thrown in disconnectPhysicalDiskViaVmSpec in
certain failure scenarios. This can only be triggered if other bugs allow
pools to be deleted while VMs are using them.
2014-01-08 09:42:19 -07:00
Hugo Trippaers 8ddcc9ba80 Set unique gre key for every network.
Set interface id to nic uuid when creating the vif.
2014-01-08 16:00:59 +01:00
Hugo Trippaers 725bed43b4 Wei Zhou found another statement that was effected by commit 3a999e7 in
OvsVifDriver.isBridgeExists.
2014-01-02 15:12:11 +01:00
Hugo Trippaers c024a93826 Commit 3a999e7 changed the return values for the Script.execute function, this introduced a bug in the openvswitch bridge detection code. 2014-01-02 13:40:06 +01:00
Marcus Sorensen c99f0f925b CLOUDSTACK-5697 - public ip ranges should allow VNI rather than only working with untagged 2013-12-31 16:09:52 -07:00
Marcus Sorensen bb8b2805b6 CLOUDSTACK-5432: KVM - LibvirtStorageAdaptor only needs to disconnectPhysicalDiskByPath
for ISO-based disks. At least, that's how it was in 4.2, so restoring to that functionality.
2013-12-26 23:14:23 -07:00
Marcus Sorensen 8455a0677a CLOUDSTACK-5654: Don't pass empty string to BroadcastDomainType.Vlan.toUri
when attempting to parse VLAN/VNI from bridge's physical ethernet device
2013-12-26 16:52:33 -07:00
Marcus Sorensen 7644b92a8b account for vxlan interfaces named vx<vni> 2013-12-19 17:42:42 -07:00
Marcus Sorensen 95364a4022 CLOUDSTACK-5531
Initial support for vhd, raw, vmdk image formats on KVM. Tested all formats with local and CLVM.
2013-12-16 14:32:51 -07:00
Marcus Sorensen 2f53295151 CLOUDSTACK-5521: Create multi-core topology when deploying KVM virtual machines with many cores 2013-12-16 16:12:43 -07:00
Min Chen 46d1e1afb2 CLOUDSTACK-5446:KVM-Secondary Store down-Even after secondary store is
brought back up after being down for few hours,snapshot jobs do not get
triggered with reason "there is other active snapshot tasks on the
instance to which the volume is attached".
2013-12-13 22:04:29 -08:00
Alex Huang be5e5cc641 All Checkstyle problems corrected 2013-12-12 12:26:07 -08:00
tuna 61e80f030a remove unused code 2013-12-09 23:33:15 +07:00
tuna c7dab82dc4 move cloudstack_pluginlib 2013-12-09 23:33:15 +07:00
tuna 3df8b912fc add kvm support & LB service 2013-12-09 23:33:14 +07:00
Wido den Hollander 088247b61b kvm: Force the default disk cache mode to none.
Not doing this caused the cache mode to be null for SystemVMs for their CDROM/ISO.
2013-12-09 16:49:17 +01:00
Wei Zhou d473d5a36a CLOUDSTACK-5293: get vm disk statistics only from DISK (not for ISO/FLOPPY) 2013-11-28 10:47:51 +01:00
Wei Zhou 2145505d30 CLOUDSTACK-5280: fix issue in getBroadcastUriFromBridge
(cherry picked from commit 96842475d9)

Conflicts:

	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
2013-11-26 23:37:39 +01:00
Alex Huang 433a631916 Reformat of source code to set a stable base for the future. I couldn't get checkstyle enabled. There's still about a thousand errors from checkstyle. Most of it from length errors from comments and strings. Will attempt to remove those tonight. This change is so large I just want to get it in before any merge nightmares. The changes are fairly minor though and I did a full compile and start a server with the reformat code. 2013-11-21 07:56:47 -08:00
Hugo Trippaers cf715ff491 Bump 4.3.0 to 4.4.0 in master 2013-11-21 16:01:15 +01: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
Edison Su 2d42b2d1ab Add logs in case ipassoccmd failed 2013-11-20 15:07:02 -08:00
Wido den Hollander 1edaa36cc6 CLOUDSTACK-1302: Allow a cache mode per disk offering
Per disk offering the setting none, writeback or writethrough can be set

This allows for both safety and performance for writes.
2013-11-20 17:11:10 +01:00
Alex Huang 8d62744681 Reformat all source code. Added checkstyle to check the source code 2013-11-20 07:26:53 -08:00
Kelven Yang fc9adec72e CLOUDSTACK-669: Add host level side-by-side VM state report for graceful sync model migration 2013-11-12 18:32:51 -08:00
Laszlo Hornyak b2f06aae68 fix long cast to double
- the result of dividing long with long resulted in loss of precision both for network and IO
- unit tests included

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2013-11-09 09:04:05 +01:00
Wei Zhou 4674ae4dd3 CLOUDSTACK-5076: fix wrong bridge name in vm domain xml desc after upgrade from 4.0 or before to 4.2
(cherry picked from commit 86976fb298)
2013-11-08 15:40:14 +01:00
Wei Zhou c2fc6e69b5 check Linux bridge status before remove it (Cherry-picked from commit a33f0e7bdd) 2013-11-08 09:00:12 +01:00
ynojima b864e677e5 CLOUDSTACK-5039 bugfix: live migration failure in KVM env.
Signed-off-by: ynojima <mail@ynojima.net>
2013-11-07 20:56:23 +05:30
ynojima 494ccd821d Bugfix: VR has double NICs connected to Public network
replace vlanid wih broadcast uri to support vxlan to identify whether id is VLAN ID or VNI

Signed-off-by: ynojima <mail@ynojima.net>
Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
2013-11-07 11:17:59 +01:00
Jayapal 88170f9a79 CLOUDSTACK-4736 Monitoring service kvm vmware resource changes 2013-11-06 18:37:43 +05:30
Harikrishna Patnala a286dec098 CLOUDSTACK-4908: CPU socket count of host Adding cpu socket count of the host in hostresponse
Signed-off-by: Koushik Das <koushik@apache.org>
2013-11-05 16:12:36 +05:30
Marcus Sorensen c2e2f6ce63 relax KVM agent setup to allow non-bridge traffic labels
(guest bridges are created on physical device, no need for bridge traffic label)
2013-11-01 18:16:54 -06:00
John Kinsella 47641637f6 Summary: LibvirtStorageAdaptor.getPhysicalDisk() to recogize .raw extension
Detail: getPhysicalDisk() was not matching on volumes with .raw, so
instead setting disk format to QCOW2.

BUG-ID: CLOUDSTACK-5018
Bugfix-for:
Reviewed-by:
Reported-by:
Signed-off-by: John Kinsella <jlk@stratosec.co> 1383287538 -0700
2013-10-31 23:32:18 -07:00
Wei Zhou bad23908c2 remove unused file lock codes from LibvirtStorageAdaptor.java
(cherry picked from commit 4b8d636ce6)
2013-10-31 11:37:25 +01:00
Hugo Trippaers 9d2271d115 Revert "fixed m2eclipse error" because it breaks packaging
This reverts commit 5bcd8280fd.
2013-10-30 20:17:59 +01:00
Anthony Xu 5bcd8280fd fixed m2eclipse error 2013-10-29 15:20:49 -07:00
Marcus Sorensen 4a9f05bda0 CLOUDSTACK-4967
1) vxlan will use bridge scheme 'brvx-<vni>'. Multiple physical networks can host guest
traffic type with vxlan isolation, so long as they don't use the same VNI range.

2) Guest traffic labels can be physical interface if bridge by given name is not found.
Normally we take traffic label name, find the matching bridge, then resolve that to a
physical interface. Then we create guest bridges on that interface. Now we can just
specify the interface.
2013-10-29 15:34:39 -06:00
Mike Tutkowski 858ce76665 Extend support of CloudStack-managed storage to KVM 2013-10-27 22:30:03 -06:00
Laszlo Hornyak c17831532e InputStream use fix in LibvirtComputingResource
- Properties object polulation using PropertiesUtil.loadFromFile

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2013-10-26 17:47:34 +02:00
Darren Shepherd 891b85d516 Add missing licenses 2013-10-23 15:20:08 -07:00
Darren Shepherd e3280bdba2 Merge remote-tracking branch 'origin/spring-modularization'
Conflicts:
	client/tomcatconf/applicationContext.xml.in
	client/tomcatconf/nonossComponentContext.xml.in
	client/tomcatconf/simulatorComponentContext.xml.in
	framework/db/src/com/cloud/utils/db/Transaction.java
	plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java
	server/src/com/cloud/api/ApiServer.java
	server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
2013-10-23 11:14:42 -07:00