Commit Graph

332 Commits

Author SHA1 Message Date
Marcus Sorensen 883210e1fe Revert "Summary: Use hypervisor as clock source for system vms"
removing due to CLOUDSTACK-2872, ubuntu 12.04's libvirt isn't new enough

This reverts commit c7ebcb4e8c.
2013-08-06 23:10:33 -06:00
Min Chen 45c34b9ca8 CLOUDSTACK-4116: Volume operations fail: InvocationTargetException when
invoking RPC callback for command: createVolumeCallback
2013-08-06 15:41:58 -07:00
Marcus Sorensen e5741863f7 Summary: Quiet erroneous stopVM failures on kvm
Detail: Cloudstack tries to stop VMs all the time, for all sorts of reasons,
but usually just to get into a known state.  Libvirt throws an exception of
'Domain not found' when attempting to stop a VM that doesn't exist. This causes
problems for troubleshooting real issues. Domain not found should equate
to success if trying to stop.

BUG-ID: CLOUDSTACK-4011
Bugfix-for: 4.2
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1375825281 -0600
2013-08-06 15:46:36 -06:00
Wei Zhou 5cb090ed40 CLOUDSTACK-2729: move unlock to finally block to handle failed libvirt operations 2013-08-06 12:40:06 +02:00
Wei Zhou 1e4ff7f453 CLOUDSTACK-2729: use file lock to prevent concurrent refreshPool/deleteVolume on KVM shared storage pool
Signed-off-by: Edison Su <sudison@gmail.com>
2013-08-05 11:24:03 -07:00
Wido den Hollander 52099e42b8 rbd: Move some logic from LibvirtComputingResource into KVMStorageProcessor
All this logic was in LibvirtComputingResource but seems redundant. Move it
into the KVMStorageProcessor
2013-08-05 17:34:13 +02:00
Wido den Hollander 3fb58c42c4 CLOUDSTACK-4004: Fix attaching a newly allocated RBD image to an Instance
Signed-off-by: Wido den Hollander <wido@42on.com>
2013-08-02 13:19:12 +02:00
JijunLiu 2903bb5fd9 Add cpu model for kvm guest.Now all the kvm guest's cpu model is 'QEMU Virtual CPU version xxx'. This will affect the activation of Windows OS and low performance. I add three mode for user to indicate the guest cpu model.add libvirt version check
Signed-off-by: Wei Zhou <w.zhou@leaseweb.com>
2013-08-02 11:56:59 +02:00
Edison Su 3a928d7db0 CLOUDSTACK-4008: return virtual size of volume in KVM 2013-08-01 13:25:49 -07:00
Chip Childers 8225374138 Updating pom.xml version numbers for release 4.3.0-SNAPSHOT
Signed-off-by: Chip Childers <chipchilders@apache.org>
2013-08-01 10:35:00 -04:00
Wido den Hollander b611394cca rbd: Enable snapshotting of RBD images
Signed-off-by: Wido den Hollander <wido@42on.com>
2013-08-01 01:12:42 +02:00
Toshiaki Hatano 7774ecfd5a CLOUDSTACK-3959: [KVM] agent setup failed when physical interface name is in pXpY format
Add handling.

Signed-off-by: Edison Su <sudison@gmail.com>
2013-07-30 16:17:12 -07:00
Alex Huang 3d2e49bcfc Changed the log4j config files to log org.apache.cloudstack in debug and change the layout format 2013-07-26 20:35:49 -07:00
Edison Su 7f200d966e CLOUDSTACK-3681: fix bunch of bugs related to vmware, regarding to snapshot 2013-07-24 19:06:30 -07:00
Min Chen 2f1d4dd0ba CLOUDSTACK-3665:KVM specific issue in create volume from snapshot. 2013-07-24 18:36:28 -07:00
Jayapal 2d6644d961 CLOUDSTACK-2433 Enable rps and rfs in virtual router 2013-07-17 16:59:59 +05:30
Edison Su bf32776f9f be able to upload template into swift 2013-07-16 18:07:06 -07:00
Kishan Kavala ea3a77e2af CLOUDSTACK-3484: Removed method synchornization in libvirt and virtual router resources 2013-07-16 19:14:31 +05:30
Wei Zhou f89848b0db CLOUDSTACK-2823: move kernelVersion to global configuration in LibvirtComputingResource.java 2013-07-15 10:54:38 +02:00
Toshiaki Hatano b134854937 CLOUDSTACK-3431: KVM: cloudstack-plugin-hypervisor-kvm with BridgeVifDriver doesn't cleanup vNet due to multiple reasons
- Move vnetBridge clean up function from LibvirtComputingResource to BridgeVifDriver
-- since only BridgeVifDriver have to handle this event
- LibvirtComputingResource now properly call VifDriver.unplug() when it receives UnPlugCommand

- Remove not working and no longer used method getVnet(String) from VirtualMachineName
- Remove not working and no longer used method getVnet() from StopCommand
- Remove unused constructer StopCommand(VirtualMachine, String, boolean) from StopCommand
- Remove unused member vnet from StopCommand
- Remove unused member _modifyVlanPath from OvsVifDriver

Tested with 2 KVM hosts and confirmed it correctly manipulate vnetBridge with start, stop, migrate, plug, and unplug event

Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
2013-07-15 09:12:52 +02:00
Wei Zhou dc9f7290e8 CLOUDSTACK-2823: try passCmdLine some times if kernel < 2.6.34 and qemu < 1.1.0 on hypervisor (for instance, CentOS 6.4) 2013-07-12 09:48:40 +02:00
Vijayendra Bhamidipati 7ea8c5fd9a CLOUDSTACK-1510: NPE when primary storage is added with wrong path
Description:

	a) Fixing NPE when wrong path is provided for primary datastore.
	b) No error dialog shows up in GUI when wrong path is provided,
	   after NPE fix - propagating exception upward.
	c) If the KVM agent is down, an invalid datastore gets logged in
	   storage_pool table and doesn't get removed, so it shows up
	   in the GUI in the list of datastores - fixing this as well.
2013-07-10 14:55:57 -07:00
Prasanna Santhanam 085e8838e4 Fix typo in backupSnapshotCommand
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
2013-06-29 13:50:25 +05:30
Mike Tutkowski 99227f7b3e SolidFire plug-in and related changes
SolidFire plug-in

SolidFire plug-in related
2013-06-28 16:59:21 -06:00
Laszlo Hornyak 882e5fa4e0 FileUtil simplified
- writeToFile removed since no references to it
- readFileAsString replaced with FileUtils.readFileToString
- minor code duplication removed in dependent method getNicStats
- unit test added

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2013-06-27 11:08:03 -07:00
Hugo Trippaers f74e635225 Setting the required version of libvirt to 10.0 for the openvswitch
support. This version actually supports setting the vlan tag on an
interface.
2013-06-25 12:21:25 -07:00
Hiroaki KAWAI f706f6757c Add class check before cast
DataTO might be one of SnapshotObjectTO, TemplateObjectTO
or VolumeObjectTO
2013-06-25 12:48:01 +09:00
Wei Zhou 2899395808 CLOUDSTACK-2017: network throttling implementation for KVM 2013-06-20 11:30:44 +02:00
Edison Su 9aec9c605c merge to master 2013-06-19 18:16:47 -07:00
Wei Zhou 882220e802 CLOUDSTACK-1301: VM Disk I/O Throttling 2013-06-18 10:02:55 +02:00
Edison Su f41c800d88 merge to master 2013-06-14 19:06:33 -07:00
Edison Su c4267b546f CLOUDSTACK-2973: fix detach iso 2013-06-14 18:15:20 -07:00
Edison Su 34f6538454 CLOUDSTACK-2970: wait is in seconds in command 2013-06-14 17:57:34 -07:00
Edison Su 619ec12f61 CLOUDSTACK-2972: due to change on master, using name instead of uuid to find vm name, so break object_store branch 2013-06-14 17:35:53 -07:00
Edison Su c2da4eac89 fix NPE for cache ref cnt 2013-06-14 17:24:31 -07:00
Edison Su 793d549072 fix unit test 2013-06-13 17:02:53 -07:00
Fang Wang bf73d755b0 Add protection for VNC port with password on KVM. 2013-06-13 14:41:09 -07:00
Min Chen 18aeef3ef1 Merge branch 'master' (up to commit
c30d9be3ce) into object_store.
2013-06-12 11:20:32 -07:00
Min Chen cc0de88088 Remove old DeleteTemplateCommand, DeleteVolumeCommand,
DeleteSnapshotBackupCommand, replaced by DeleteCommand.
2013-06-10 17:55:30 -07:00
Wei Zhou ecbce6a67f fix disk IO requests display error 2013-06-10 23:11:48 +02:00
Min Chen 04b5f53392 Removed unused code handling for DeleteSnapshotBackupCommand since we
don't send that command anymore.
2013-06-07 17:55:05 -07:00
Prasanna Santhanam da6f39b782 PlugNic and UnplugNic both call the method getVmName
Renaming the method in the command objects to be uniform with
PlugNicCommand/UnplugNicCommand.getVmName

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
2013-06-05 12:37:42 +05:30
Marcus Sorensen ddfdc9af63 KVM - Don't fail to start due to old VM definition. On rare occasion we see
inactive VM definitions block a new VM starting. Definitions aren't supposed to
be persistent, but sometimes a crash or failed migration can leave behind a
definition.

Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1370299734 -0600
2013-06-03 16:48:54 -06:00
Wei Zhou f714d26039 Revert "CLOUDSTACK-1301: Add VM Disk I/O Throttling"
This reverts commit 6dad8adf8f.
2013-06-03 07:48:03 +02:00
Wei Zhou 6dad8adf8f CLOUDSTACK-1301: Add VM Disk I/O Throttling 2013-06-01 08:03:02 +02:00
Wei Zhou b9b0168da4 CLOUDSTACK-1192: Add Disk I/O Statistics 2013-06-01 08:00:48 +02:00
Min Chen bc91e7692d Fix build. 2013-05-29 15:22:04 -07:00
Hiroaki KAWAI cfd8056c14 remove a call path that cause NullPointerException
QemuImg.convert expects the arguments not null.
2013-05-28 20:54:01 +09:00
Wido den Hollander 322db71eed agent: Only probe running VMs for the current Hypervisor Type
Otherwise we try to probe for LXC VMs on a KVM hypervisor and vise versa.
2013-05-26 11:38:41 +02:00
Wido den Hollander bef3a2edb7 CLOUDSTACK-1191: rbd: Use cloning for deploying templates instead of a copy
RBD format 2 supports cloning (aka layering) where one base image can serve
as a parent image for multiple child images.

This enables fast deployment of a large amount of virtual machines, but it also
saves spaces on the Ceph cluster and improves performance due to better caching.

Qemu-img doesn't support RBD format 2 (yet), so to enable these functions the
RADOS/RBD Java bindings are required.

This patch also enables deployment of System VMs on RBD storage pools. Since we
no longer require a patchdisk for passing the boot arguments we are able to deploy
these VMs on RBD.
2013-05-24 16:00:08 +02:00
Min Chen 98af424053 Merge branch 'master' into object_store. 2013-05-23 18:00:15 -07:00
Edison Su 4e4112fcec fix attach volume for kvm 2013-05-23 13:51:46 -07:00
Marcus Sorensen fce59b8fc4 Summary: Code cleanup for KVM - look up domains by name rather than coversion
Detail: We do two strange things, #1, when a vm is created, we create the uuid
for the domain by converting the name into a uuid, then subsequently, any time
we look for a domain, we convert its name to a uuid and domainLookupByUUID. This
is an unnecessary obfuscation, so instead we just do a domainLookupByName. As
a bonus, we are now setting the domain's uuid to be the cloudstack uuid. It is
no longer used anywhere, but will be less confusing to admins. This shouldn't
affect upgrades, since we can always lookup existing VMs by name.

Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1369287049 -0600
2013-05-22 23:30:49 -06:00
Marcus Sorensen 795fd803da Summary: KVM - double migration can fail
Detail: Undefine VM after migration. Lingering domain definitions cause
migrations back to the original host to fail, since domain already exists.

BUG-ID: CLOUDSTACK-2640
Bugfix-for: 4.1.0,4.2.0
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1369285950 -0600
2013-05-22 23:12:30 -06:00
Wido den Hollander 239bb13dde Better parse domain XMLs so network devices can be detached as well 2013-05-18 10:34:22 +02:00
Wido den Hollander 5646f5e977 rbd: Allow RBD disks to be attached to a Instance 2013-05-17 17:34:05 +02:00
Edison Su f7c1b711ad merge to master 2013-05-16 23:56:20 -07:00
Wei Zhou a29e39365a CLOUDSTACK-2545: Change unit of network statistics from 1000 to 1024 for KVM
Signed-off-by: Chip Childers <chip.childers@gmail.com>
2013-05-16 22:07:50 +01:00
Marcus Sorensen 20a9d877cf Summary: Use hypervisor as clock source for system vms
BUG-ID: CLOUDSTACK-2492
Bugfix-for: 4.1,master
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1368635782 -0600
2013-05-15 19:41:50 -07:00
Wido den Hollander 738067077a CLOUDSTACK-2515: Verify if the targetPath isn't null before comparing 2013-05-15 19:41:49 -07:00
Sheng Yang 2d2c0c48cd Merge branch 'pvlan'
Conflicts:
	scripts/vm/hypervisor/xenserver/xenserver60/patch
	server/src/com/cloud/network/NetworkManager.java
	server/src/com/cloud/network/NetworkManagerImpl.java
	server/src/com/cloud/network/NetworkServiceImpl.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
	server/src/com/cloud/network/vpc/VpcManagerImpl.java
	server/src/com/cloud/vm/UserVmManagerImpl.java
	server/test/com/cloud/network/MockNetworkManagerImpl.java
	server/test/com/cloud/vpc/MockNetworkManagerImpl.java
	server/test/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java
2013-05-15 16:08:08 -07:00
Marcus Sorensen bfc5887a1b Summary: Use hypervisor as clock source for system vms
BUG-ID: CLOUDSTACK-2492
Bugfix-for: 4.1,master
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1368635782 -0600
2013-05-15 10:36:22 -06:00
Wido den Hollander 68a428f84d CLOUDSTACK-2515: Verify if the targetPath isn't null before comparing 2013-05-15 13:57:58 +02:00
Edison Su a0c3d280b4 merge to master 2013-05-15 00:40:53 -07:00
Edison Su 879a954b98 delete snapshot at the backend 2013-05-14 21:58:07 -07:00
Edison Su 68ffe1c706 fix bug in create volume from snapshot 2013-05-14 16:38:02 -07:00
Jayapal Reddy 2d950e2858 CLOUDSTACK-768: ACL on private gateway 2013-05-13 19:24:23 +05:30
Edison Su 492127c035 fix kvm 2013-05-12 18:27:37 -07:00
Nitin Mehta c11dbad9c9 merge master 2013-05-11 15:28:43 +05:30
Alex Huang 342624e0eb Merged with head 2013-05-10 16:33:57 -07:00
Alex Huang 3047929367 Merged 2013-05-10 16:21:43 -07:00
Edison Su 42e25a22fc refactor kvm/vmware resource code 2013-05-09 23:10:05 -07:00
Sheng Yang 70da1b3be3 PVLAN: Fix KVM ovs driver cannot get vlan id issue 2013-05-02 16:32:07 -07:00
Jayapal 1f1467974f CLOUDSTACK-1828 Source Nat on private gateway feature 2013-05-02 15:40:15 +05:30
Sheng Yang 3c3d67769b PVLAN: PvlanSetupCommand for KVM support 2013-05-01 13:23:09 -07:00
Marcus Sorensen 33006ff197 Summary: Don't add secondary storage to KVM heartbeat
BUG-ID: CLOUDSTACK-2173
Bugfix-for: 4.2
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1366865750 -0600
2013-04-24 22:55:50 -06:00
Edison Su 435f4bceb2 in case vm doesn't exist on kvm host, getconnectionbyname will throw exception, need to catch the exception, and return the default connection 2013-04-24 10:39:07 -07:00
Marcus Sorensen 26fea7b660 CLOUDSTACK-2067 - ACS4.2 - throw LibvirtException instead of squelching it
so that callers of startVM in LibvirtComputingResource know that a vm failed
to start

Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1366224775 -0600
2013-04-17 12:52:55 -06:00
Marcus Sorensen 2057221f4f CLOUDSTACK-2051 - The previous patch ensures that holes in deleting storage
pools the proper way won't cause problems for KVM HA Monitor, this patch closes
holes. Call the KVMStoragePool deleteStoragePool that properly removes it from
the KVMHA hashmap, instead of the pools direct delete() call.

Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1366172318 -0600
2013-04-16 22:18:38 -06:00
Marcus Sorensen 202930fd55 CLOUDSTACK-2051 Allow KVM HA Monitor to verify that a NfsStoragePool is
valid before running the script that mounts it and touches the HA files.

Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1366135635 -0600
2013-04-16 12:07:15 -06:00
Min Chen bb64672715 Refactor DownloadMonitorImpl code, move some functionalities to
TemplateServiceImpl and VolumeServiceImpl.
2013-04-11 18:09:42 -07:00
Edison Su f18a1d6f14 fix bunch of bugs related to zone wide storage 2013-04-03 21:51:17 -07:00
Dave Cahill eddf7b9357 MidoNet Networking Plugin
- Supports DHCP, Source NAT, Static NAT, Firewall rules, Port Forwarding
- Renamed MidokuraMidonet to MidoNet
- Related Jira ticket is CLOUDSTACK-996

Signed-off-by: Dave Cahill <dcahill@midokura.com>
Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
2013-04-03 12:03:11 +02:00
Wido den Hollander ea0daeaee3 CLOUDSTACK-1158: Wrap qemu-img into it's own util
Signed-off-by: Edison Su <sudison@gmail.com>
2013-04-01 16:37:58 -07:00
Phong Nguyen aa79ccf985 CLOUDSTACK-922: LXC Support in Cloudstack.
Signed-off-by: Edison Su <sudison@gmail.com>
2013-04-01 15:41:42 -07:00
Bharat Kumar 7a3a1c792a Cloudstack-1739
Signed-off-by: Abhinandan Prateek <aprateek@apache.org>
2013-04-01 10:36:19 +05:30
Marcus Sorensen 5a16e70de9 CLOUDSTACK-1846, CLOUDSTACK-1845 - KVM Storage, sometimes KVMHA will remount
deleted NFS pools, causing failures when defining new storage pools. Sometimes
a storage pool has never been used on a host, and getStoragePool fails when
copying templates or in storage migration. deleteStoragePool(pool) often fails
silently, leaving no pool defined in libvirt, but a mountpoint left behind.
This patch handles some of these exceptions and brings forward any issues via
logging.

Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1364603486 -0600
2013-03-29 18:31:26 -06:00
Prasanna Santhanam 4f09138364 Fix the kvm vncAddr test
This test was broken because we reverted to the old listen on all
interfaces for vnc.

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
2013-03-23 20:59:29 +05:30
Marcus Sorensen ff6177d119 CLOUDSTACK-1761 - Available local storage disk capacity incorrectly reported in
KVM to manager. This adds collection of available storage to KVM, not
     just used.

Bugfix-for: 4.0.2, 4.1, master
Submitted-by: Ted Smith <darnoth@gmail.com>
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1363966235 -0600
2013-03-22 09:30:35 -06:00
Edison Su ff63854b4d CLOUDSTACK-1772: revert bc94948e06, doesn't specify vnc listening port, make live migration work 2013-03-22 12:46:50 +00:00
Wei Zhou 0d604c636d CLOUDSTACK-1666: Fix NetworkUsage for VPC on KVM
The collection of network usage from VPC virtual router on KVM does not work,
because there is no corresponding procedure to deal with VPC virtual router
(cmd.isForVpc() = true).

Reviewed-by: Kishan Kavala <kishan@apache.org>
Reported-by: Wei Zhou <w.zhou@leaseweb.com>

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
2013-03-22 10:51:27 +05:30
Jayapal Uradi edaa72d0fc CLOUDSTACK-24: mipn feature for basiczone kvmhost
Signed-off-by: Abhinandan Prateek <aprateek@apache.org>
2013-03-15 10:22:56 +05:30
Marcus Sorensen a94ff361dd CLOUDSTACK-1648 - KVM - make storage pools non-persistent in libvirt. Persisting
cloud-defined resources on the host has caused various problems. As a backward
compatible fix, if an existing pool with a different name collides with a pool
being created (by path), the pool will be redefined with the name cloudstack
knows about. This is actually what brought up the bug, a persisted storage pool
cloudstack wasn't managing.

Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1363210149 -0600
2013-03-13 15:29:09 -06:00
Marcus Sorensen 97d2e3fe77 Summary: KVM - remove harmless message about domain not found on VM stop
Detail: When we stop a VM, it's definition is no longer valid. Therefore, we
need to catch the exception thrown from libvirt in trying to lookup a
non-existent domain by UUID while trying to check if it's shut down.

BUG-ID:CLOUDSTACK-600
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1363201066 -0600
2013-03-13 12:57:46 -06:00
Marcus Sorensen 8d7d1cd562 Summary: KVM - undefine persistent VMs on stop
Detail: A previous patch fixed an issue where we are defining VMs to persist
locally on KVM hosts, which can cause issues if the agent isn't running and
libvirt decides to start the VM unbeknownst to cloudstack. The previous patch
stopped defining VMs as persistent. This patch adds compatibility for existing
cloudstack environments, removing the persistent definition on stop if needed.

BUG-ID: CLOUDSTACK-600
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1363194656 -0600
2013-03-13 11:10:56 -06:00
Marcus Sorensen 1f28e644a3 Summary: Remove unused createFileBasedStoragePool from LibvirtStorageAdaptor
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1363154115 -0600
2013-03-12 23:55:15 -06:00
Marcus Sorensen 9ad54a082c Summary: KVM - use virtio socket to communicate config to system vms
Detail: This gets rid of the patchdisk method of passing cmdline and
authorized_keys to KVM system VMs. It instead passes them to a virtio socket,
which the KVM guest reads from the character device /dev/vport0p1 during
cloud-early-config. Tested to work on CentOS 6.3 and Ubuntu 12.04. Should
work with even older versions of libvirt.

Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1362691685 -0700
2013-03-07 14:28:05 -07:00
Hiroaki Kawai 19c6d8054b CLOUDSTACK-1535: kvm agent will silently ignore many exceptions
Current kvm agent will silently ignore many exception, and there's no
way to see what really happened. This patch will log in trace level log
that was silently ignored. And also, it will fix huge bare Exception
catch, which is very harmful because it also catches RuntimeException.
2013-03-06 10:22:44 -08:00
Marcus Sorensen d81f7156dc Summary: KVM - Add virtio-serial device to libvirt xml for system vms
Detail: This device can be used for remotely controlling the system vms through
a local socket on the host. We will attempt to replace the KVM patchdisk with
it. Tested, successfully deploys VM, and if system vm has proper driver it
will create a /dev/vport0p1 device within the VM. We will be updating the
system VM in 4.2/5.0 and will support this.

Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1362527352 -0700
2013-03-05 16:49:12 -07:00
Wido den Hollander e14e057f3d packaging: Use the JNA version from the distribution
Libvirt-java 0.4.9 works just fine with JNA 3.2.4 which is in
all distributions.

Future libvirt version require at least JNA 3.5.1 due to new methods
and memory management, but that is not our concern now.

By depending on the JNA in the distribution and adding it to the classpath
we can work just fine.
2013-03-05 16:10:38 +01:00
Dave Cahill ff099fa651 Adding support for multiple VIF drivers in KVM
- Building map of {trafficType, vifDriver} at configure time
- Use the relevant VIF driver for the given traffic type when call plug()
- Inform all vif drivers when call unplug(), as we no longer know traffic type
- Refactor VIF driver choosing code and add unit tests
- Basic unit tests, just test default case
- Also slight refactor of unit test code, and use jUnit 4 instead of 3, to match rest of codebase

Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
2013-03-04 20:56:34 +01:00
Hugo Trippaers 2eae9a1390 Summary: few fixes to the pom
Only one dependency to the ovm hypervisor is enough

Depend on the right jna package
2013-03-01 20:52:17 +01:00
Hugo Trippaers 092d5e4cd8 Tweak the jna dependency 2013-03-01 20:09:41 +01:00
Wido den Hollander 24c974dc03 agent: Add net.java.dev.jna.platform as a runtime dependency
This is required for newer versions of libvirt-java
2013-03-01 16:47:05 +01:00
Wido den Hollander 0b7f2eb178 CLOUDSTACK-1410: Add a Unit test to verify if it actually works.
This is also the first Unit Test for LibvirtComputingResource
2013-02-27 17:34:06 +01:00
Noa Resare 2f135be15f CLOUDSTACK-1415: Debian & Ubuntu packaging work
Some concepts included:

* the replace.properties location used by maven is parameterized to allow
  for a build that does not modify the currently git tracked files
* package naming is updated along the lines of what was discussed on the
  -dev mailing list and between committers at the Build a Cloud Day in Belgi
* package version pattern is updated (since we redo all package names,
  we might as well drop the epoch)
2013-02-27 15:44:46 +00:00
Wido den Hollander 2e28f69d3e CLOUDSTACK-1410: >4.1 agents should be able to communicatie with <=4.1 management servers
The recently added overcommit feature breaks compatibility between older management servers
and 4.2 agents.

This patch fixes that by falling back if needed.
2013-02-27 16:23:21 +01:00
Bharat Kumar 667aa17512 CLOUDSTACK 711: CPU and RAM overcommit update cluster part 2013-02-22 20:09:50 +05:30
Bharat Kumar 23e54bb0f4 Cloudstack-711: Cpu and Ram Overcommit Ratio. 2013-02-22 17:31:06 +05:30
Rohit Yadav 80d58b6c73 CLOUDSTACK-1317: Bump CloudStack package version to 4.2.0-SNAPSHOT in all poms
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-02-20 16:42:56 +05:30
Marcus Sorensen 298c5ee06b Summary: Adjust systemvm.iso path for KVM, due to packaging changes
Detail: Removing references to /usr/lib/cloud and /usr/lib64/cloud so that old
systemvm.iso files aren't found by accident. systemvm.iso should exist in
/usr/share/cloudstack-common/vms now.

Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1360860243 -0700
2013-02-14 09:45:57 -07:00
Marcus Sorensen 35cf56862f Summary: KVM - Fix physical net parsing when traffic label points to tagged dev
Detail: If your traffic label points to a bridge that is on a tagged interface
rather than a real physical interface, cloudstack may not parse the physical
interface correctly, bringing up tagged interfaces on the tagged interface.

Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1360798665 -0700
2013-02-13 16:45:18 -07:00
Wido den Hollander a5f0be186f agent: Rename startDomain to startVM
The other methods are called stopVM and rebootVM, so it makes
sence to use startVM.
2013-02-07 23:07:10 +01:00
Wido den Hollander 5dfcd309f1 agent: Do not define domains persistent in libvirt
We used to define domains persistent in libvirt, which caused XML definitions
to stay there after a reboot of the hypervisor.

We however don't do anything with those already defined domains, actually, we wipe
all defined domains when starting the agent.

Some users however reported that libvirt started these domains after a reboot
before the CloudStack agent was started.

By starting domains from the XML description and not defining them we prevent
them from ever being stored in libvirt.
2013-02-07 23:07:05 +01:00
Wido den Hollander f6c4b22139 agent: Remove the main() method from LibvirtComputingResource
Seems like very ancient code which is not needed.
2013-02-07 23:06:44 +01:00
Wido den Hollander 303fb650cb agent: Use FileUtil.readFileAsString for reading RX and TX bytes
Since we already have this un utils it's better to use it here
then do the whole File/FileInputStream magic.

Keeps the code simpler and more readable.
2013-02-05 22:17:40 +01:00
Marcus Sorensen 3535f88d16 Summary: Disallow shrinking volume type QCOW2 to fail with better message
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1360093176 -0700
2013-02-05 12:39:36 -07:00
Wido den Hollander 4709756bd5 agent: Use FileInputStream for reading files instead of cat
Cat'ing a file and parsing that output is not reliable and this can be done
by using Java's native methods for that.
2013-02-02 18:08:24 +01:00
Kelven Yang 1b2b369ecb Merge latest master into javelin 2013-01-31 11:34:49 -08:00
Kelven Yang 176523254e Improve component lifecycle management with system run-level concept 2013-01-30 15:21:02 -08:00
Marcus Sorensen 482ce5fe07 Summary: Account for embedded nics (e.g. 'em0') when looking for physical nic
Signed-off-by: Marcus Sorensen <marcus@betterservers.com>
2013-01-28 21:21:30 -07:00
Rohit Yadav 356866c72b Merge branch 'master' into javelin
- Fixed new join dao impls as spring components
- Fixed component context xml to load api rate limit checker
- Fixed root pom.xml for duplicate plugin
- Fixed list data centers method
- Fixed following conflicts:
	api/src/org/apache/cloudstack/api/command/admin/network/CreateNetworkOfferingCmd.java
	api/src/org/apache/cloudstack/api/command/user/offering/ListServiceOfferingsCmd.java
	api/src/org/apache/cloudstack/api/command/user/template/DeleteTemplateCmd.java
	api/src/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java
	plugins/api/discovery/src/org/apache/cloudstack/discovery/ApiDiscoveryServiceImpl.java
	server/src/com/cloud/api/ApiDBUtils.java
	server/src/com/cloud/api/ApiServer.java
	server/src/com/cloud/api/query/QueryManagerImpl.java
	server/src/com/cloud/configuration/DefaultComponentLibrary.java
	server/src/com/cloud/server/ManagementServerImpl.java
	server/src/com/cloud/storage/swift/SwiftManagerImpl.java

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-24 19:18:53 -08:00
Hugo Trippaers a0373fe1ff Summary: Apply feedback from Wido
Better checking on VlanID

Correct speling mistake
2013-01-21 12:34:20 +01:00
Hugo Trippaers 04f82623f6 Merge branch 'master' into cloud-agent-with-openvswitch
Conflicts:
	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
2013-01-21 12:18:21 +01:00
Marcus Sorensen a65b584d18 Summary: Fix bridge parsing when bridge names are subsets of others
Detail: There are several places in the code that do a
"brctl show | grep bridgeName" or similar, which causes all sorts
of problems when you have for example a cloudVirBr50 and a
cloudVirBr5000. This patch attempts to stop relying on the output
of brctl, instead favoring sysfs and /sys/devices/virtual/net.
It cuts a lot of bash out altogether by using java File. It was
tested in my devcloud-kvm against current 4.0, as well as by the
customer reporting initial bug.

BUG-ID: CLOUDSTACK-938
Fix-For: 4.0.1
Signed-off-by: Marcus Sorensen <marcus@betterservers.com>
2013-01-18 18:28:08 -07:00
Alex Huang 10d9c019a9 All merge conflicts resolved 2013-01-18 12:14:57 -08:00
Marcus Sorensen 55e8965bd0 Summary: Pass StoragePoolType that maps to libvirt in cleanupDisk
Description: When selecting a storage adaptor, cleanupDisk assumes that
libvirt is being used. Therefore, we pass a StoragePoolType that maps to
libvirt. This is the only place in LibvirtComputingResource where the
StoragePoolType can't be pulled from somewhere else.

BUG-ID: CLOUDSTACK-1011
Signed-off-by: Marcus Sorensen <marcus@betterservers.com>
2013-01-18 00:20:34 -07:00
Marcus Sorensen 975021dda1 Summary: adding resizeVolume api call
Detail: This merges the resizevolume feature branch, which provides the
ability to migrate a disk between disk offerings, thereby changing its
size, or specifying a new size if current disk offering is custom.

BUG-ID: CLOUDSTACK-644
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1358358209 -0700
2013-01-16 17:43:35 -07:00
anthony a6b9027630 default Security rule doesn't apply to system VMs since nic.getIsolationUri is not set
use to.setSecurityGroupEnabled to indicate if securitygroup is enabled on this NIC

CLOUDSTACK-983: default Security rule doesn't apply to system VMs
2013-01-15 11:15:42 -08:00
Wido den Hollander 95222cdb6d Templates: Add Ubuntu 12.04 to the templates
Although I still think the templates aren't well maintained, I just
added 12.04 since this is an LTS and people probably want it in the
list of templates.

This system should be more generic I think though.
2013-01-15 13:25:48 +01:00
Hugo Trippaers 2d69a1855d Summary: Begone pesky tabs 2013-01-15 10:00:58 +01:00
Hugo Trippaers 9f00302ad3 Summary: Polish and shine
Document the used options in agent.properties

Default the bridge driver to something sensible based on the
configuration of the bridge type.
2013-01-15 09:18:24 +01:00
Hugo Trippaers 4267a3fc7c Summary: copy/paste error 2013-01-15 09:18:24 +01:00
Hugo Trippaers 87fe646953 Summary: small fix causing trouble when shutting down virtual machines 2013-01-15 09:18:24 +01:00
Hugo Trippaers e0ecf7b834 Summary: Add vlan configuration to the network inteface definition
Add xml piece for defining vlans

Set vlan tag in the libvirt definition for the network inteface
2013-01-15 09:18:24 +01:00
Hugo Trippaers 68523e641f Summary: Add initial support for OpenVswitch to the KVM hypervisor
Create OvsVifDriver to deal with openvswitch specifics for plugging
intefaces

Create a parameter to set the bridge type to use in
LibvirtComputingResource. 
Create several functions to get bridge information from openvswitch

Add a check to detect the libvirt version and throw an exception when
the version is to low ( < 0.9.11 )

Fix classpath loading in Script.findScript to deal with missing path
separators at the end.

Add notification to the BridgeVifDriver that lswitch broadcast type is
not supported.
2013-01-15 09:18:24 +01:00
Hugo Trippaers 3d570c7647 Summary: Add vlan configuration to the network inteface definition
Add xml piece for defining vlans

Set vlan tag in the libvirt definition for the network inteface
2013-01-15 09:09:14 +01:00
Hugo Trippaers a0ade283b7 Summary: Add initial support for OpenVswitch to the KVM hypervisor
Create OvsVifDriver to deal with openvswitch specifics for plugging
intefaces

Create a parameter to set the bridge type to use in
LibvirtComputingResource. 
Create several functions to get bridge information from openvswitch

Add a check to detect the libvirt version and throw an exception when
the version is to low ( < 0.9.11 )

Fix classpath loading in Script.findScript to deal with missing path
separators at the end.

Add notification to the BridgeVifDriver that lswitch broadcast type is
not supported.
2013-01-15 09:09:14 +01:00
Alex Huang f922c6fc03 Keep removing 2013-01-10 14:46:52 -08:00
Alex Huang 56e5fbdee2 removed import of componentlocator and inject from all files 2013-01-10 11:44:47 -08:00
Alex Huang cf8de7ee17 Removed all the .project files 2013-01-08 14:11:00 -08:00
Alex Huang 30f2565d98 Merge branch 'api_refactoring' into javelin 2013-01-08 12:36:04 -08:00
Hugo Trippaers 91673b10b8 Summary: Get started with packaging cloud-agent
Modify the spec file to package the agent files and the scripts

Some changes to the poms to put the java dependencies in the right place.

Move the agent script to the dedicated os dir in packaging.
2013-01-07 22:18:01 +01:00
Marcus Sorensen 6ed1989133 Summary: Allow for custom storage adaptors based on pool type in KVM
Detail: Instead of using LibvirtStorageAdaptor for everything, you can create
your own storage adaptor and use it. We select storage adaptor based on storage
pool type, thus we needed to adjust LibvirtComputingResource to pass pool type
to everything in KVMStoragePoolManager. This in turn required that we pass the
info necessary to LibvirtComputingResource as well, so a few agent Commands were
modified.

Note this patch in and of itself shouldn't change any existing behavior, just
allow for new storage adaptors to be selected based on storage pool type.

Reviewed-by: Edison Su
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1355769696 -0700
2012-12-17 11:41:36 -07:00
Hugo Trippaers 2b74b6e827 Start removing the old ant build files
Removed all build.xml files from the plugins
2012-12-07 15:58:56 +01:00
Marcus Sorensen 7ce2227108 Summary: master - Copy qcow2 instead of converting if source and dest are qcow2
Detail: If source image is qcow2, and we want a qcow2 image, then doing a
convert strips off compression and any snapshots the user had in that image. If
a backing file exists, we stick with convert so we can pull in both the backing
file and the COW image, otherwise we just cp the qcow2 file. This is also faster

Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1354755241 -0700
2012-12-05 17:54:01 -07:00
Marcus Sorensen 05d3f86b16 Summary: Fix orphaned patch disks for system VMs on KVM
Detail: This patch deletes any patchdisk found when deleting root volume for
system VM.

BUG-ID: CLOUDSTACK-566
Bugfix-for: 4.0.1
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1354222335 -0700
2012-11-29 13:52:15 -07:00
Marcus Sorensen 5aad7cc307 Summary: Pull patch from 4.0 that skips deleting patchVbd when systemvms are
stopped

Detail: This patch fixed an issue with hosts trying to stop system vms that were
already not running and deleting a patch disk for the system vm running on
another host. It got applied to 4.0 but not master.

Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1354222160 -0700
2012-11-29 13:49:20 -07:00
Marcus Sorensen 88180fc139 Summary: Direct template imaging for CLVM, bypass copy template to primary
Detail: Because of the way most other primary storage types work with cloudstack
   (i.e. backing stores) CLVM actually copies the template to a local logical
   volume on primary storage, then uses that. This causes all of your primary
   storage to be littered with a copy of every template used. Since we're not
   using these, dump the template direct to the newly created logical volume.
   This is faster as well since the template is sparse; we're not creating a fat
   template on primary storage and then copying that to a logical volume when we
   deploy from template.

BUG-ID: CLOUDSTACK-508
Bugfix-for: 4.1
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1353221260 -0700
2012-11-17 23:47:39 -07:00
Marcus Sorensen b42f3f53d8 Summary: Fix empty traffic labels causing NullPointerExceptions on KVM
Detail: In com.cloud.hypervisor.kvm.resource.BridgeVifDriver.java, in 2 places
an if block should have evaluated to true if trafficLabel was null, however it
was causing a NullPointerException instead.

BUG-ID : NONE
Bugfix-for: 4.0
Reviewed-by: Marcus Sorensen
Reported-by: Dave Cahill
Signed-off-by: Marcus Sorensen <marcus@betterservers.com> 1352307750 -0700
2012-11-07 10:02:30 -07:00