Commit Graph

1138 Commits

Author SHA1 Message Date
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
Alex Huang 91e68b5f2c A bunch of .project changes again 2012-11-04 19:25:03 -08:00
marcus 843e140858 Summary: Allow public and private nic to be the same bridge
Detail: There was a regression in functionality introduced by
915babd970 where the public
bridge could not also be the private bridge. This had several
additional consequences, this patch should revert the behavior
back while keeping the functionality enhancements introduced by that
commit.

BUG-ID : NONE
Reviewed-by: Dave Cahill
Reported-by: Dave Cahill via cloudstack-dev
Signed-off-by: Marcus Sorensen <shadowsor@gmail.com> 1351574006 -0600
2012-10-29 23:13:26 -06:00
Hiroaki Kawai c03712e86a CLOUDSTACK-423 : During VM migration on KVM, VifDriver.unplug is not
called.

VifDriver.unplug must be called in MigrateCommand which hooks VM
migration in source host, because plug will be called in
PrepareForMigration in destination host. But that operation is missing
in current LibvirtComputingResources.

Signed-off-by: Edison Su <sudison@gmail.com>
2012-10-29 11:36:25 -07:00
Hiroaki Kawai cb9395498f kvm agent NIC unplug will always fail
On kvm computing host, vifdriver.unplug will always fails (throws
LibvirtException) and network cleanup will not be called. This was
because the code first undefine the computing domain, and then tries to
query the destroyed machine definition to fetch NIC information. IMHO,
kvm plugin code rounds LibvirtException too much.

Signed-off-by: Edison Su <sudison@gmail.com>
2012-10-29 11:35:49 -07:00
Alex Huang f92ce72639 Correct dependency errors 2012-10-24 11:12:40 -07:00
Edison Su 059f605ace add more interfaces 2012-10-22 17:50:51 -07:00
Kelven Yang 5fee891162 merge from master 2012-10-11 17:42:25 -07:00
Wido den Hollander f4a2298ca9 rbd: Make secret usage names unique for all pools
Since only the cephx user like 'admin' was passed we couldn't define two RBD storage pools
using the cephx user admin, even if they were running on different Ceph clusters.

By adding the monitor hostname and poolname to the secret's usage (which we don't even use) it becomes
unique.
2012-10-10 00:21:14 +02:00
Marcus Sorensen 653889dc4d KVM: removes check for 'snapshot' text in qemu-img --help output
Signed-off-by: Edison Su <sudison@gmail.com>
2012-10-05 17:58:12 -07:00
Edison Su 751d391a32 build kvm-agent.zip 2012-10-02 15:38:34 -07:00
Hugo Trippaers aa6355ffe6 Updated master to 4.1.0
mvn release:update-versions -DautoVersionSubmodules=true -Dnonoss -P
client,deps,developer  -DdevelopmentVersion=4.1.0-SNAPSHOT
2012-10-01 11:00:55 -07:00
Marcus Sorensen 915babd970 fix kvm traffic labels (guest traffic types on multiple networks don't
work)

Cloudstack seems to let you create guest traffic types on multiple
physical networks. However, when I try this with KVM I end up always
bridging to whatever device is used for guest.network.device. This pulls
the traffic label (NicTO.getName()) and uses that bridge to ensure that
we get on the correct physical network, rather than just always using
the guest.network.device.

This also changes the bridge naming scheme from cloudVirBr + vlanid to
br + physicalinterface + "-" + vlanid. This is because we should be able
to support the same vlan numbers per physical network, and the previous
bridge name would not support this and collide.

Signed-off-by: Edison Su <sudison@gmail.com>
2012-09-26 17:14:57 -07:00
Marcus Sorensen f0e928461a KVM: Storage Pool collisions on ISOs due to using random UUID on pool
create

The code is unable to detect an existing pool, because we use a random
UUID each time. New Libvirt doesn't allow multiple pools to be defined
to the same storage.  This patch generates a UUID based on the storage
path, so that it can be detected as existing and reused. It also cleans
up no-op code and adjusts the naming of a few things to clean up any
confusion.

Signed-off-by: Edison Su <sudison@gmail.com>
2012-09-26 16:19:06 -07:00
Marcus Sorensen 38a885776c fix /root/.ssh directory creation for KVM
Since /root is r-x permissions, Java fails to mkdir /root/.ssh (even
though the agent is running as root) because it looks for the writable
permission. This patch modifies the 'chmod 700 /root/.ssh' shell command
that we already use into 'mkdir -m 700 /root/.ssh', to be able to create
the directory as root even though write permissions are not set on
/root. This seemed cleaner/safer than adding writable to /root.

Signed-off-by: Edison Su <sudison@gmail.com>
2012-09-26 14:03:12 -07:00
Edison Su 66dc718625 add error log, if adding storage pool failed 2012-09-21 17:54:54 -07:00
Marcus Sorensen 9324e562e5 systemvm.iso not found when KVM launches system vms
Signed-off-by: Edison Su <sudison@gmail.com>
2012-09-20 13:54:41 -07:00
Edison Su 600a45ed39 fix compile error 2012-09-18 19:49:59 -07:00
Hiroaki Kawai a6aebe098e add logging for debugging.
The default value for local.storage.path does not exists by
default in CentOS 6. By default, this results in NullPointerException
silently. Without this log message, administrator can't figure out
the reason at all.

Signed-off-by: Edison Su <sudison@gmail.com>
2012-09-18 18:28:07 -07:00
Alex Huang 387c6fc135 Merge branch 'master' into javelin 2012-09-17 15:31:37 -07:00
Marcus Sorensen 3a74c36eed CLOUDSTACK-120: Add proper OS name to KVMGuestOsMapper for systemvm
Signed-off-by: Edison Su <sudison@gmail.com>
2012-09-17 14:22:01 -07:00
Marcus Sorensen f52d37fb53 Fix potential nullpointer in recent KVM systemvm patchdisk update
Signed-off-by: Edison Su <sudison@gmail.com>
2012-09-14 15:27:23 -07:00
Jie Feng c9aa08350a [DOC] docbook conversion - choosing a deployment architecture 2012-09-13 16:12:06 -04:00
Alex Huang db9cc97ab3 Brought over new changes from master 2012-09-13 11:43:22 -07:00
Manikanta Kattamuri cfc2b85651 Removing eclipse .classpath and .project files as they are configured to ant build and adding the entries into .gitignore to stop further comitting of the files
Signed-off-by: Chip Childers <chip.childers@gmail.com>
2012-09-13 14:18:14 -04:00
Wido den Hollander b892ff6630 Depend on libvirt-java 0.4.9 due to license change
0.4.9 switched from GPL to MIT
2012-09-13 16:29:01 +02:00
Marcus Sorensen 4c3ab1afb6 fix patch disks from reproducing like rabbits
RB: https://reviews.apache.org/r/7040
Signed-off-by: Edison Su <sudison@gmail.com>
2012-09-12 16:48:38 -07:00
Marcus Sorensen 537c29c2fa Permissions fix for agent creating /root/.ssh
/root/.ssh is created with perms '600' if it doesn't already exist. This causes
a problem in that it can't write out id_rsa.cloud:

2012-08-27 16:35:40,227 DEBUG [cloud.agent.Agent] (agentRequest-Handler-4:null)
Processing command: com.cloud.agent.api.ModifySshKeysCommand
2012-08-27 16:35:40,228 DEBUG [kvm.resource.LibvirtComputingResource]
(agentRequest-Handler-4:null) Failed to create file: java.io.IOException:
Permission denied

Doing 'chmod u+x /root/.ssh' fixed the above, so it seems that even though the
agent is running as root it cares about being able to chdir into /root.ssh

Signed-off-by: Sheng Yang <sheng.yang@citrix.com>
2012-09-12 15:48:33 -07:00
Sheng Yang fe8a2992a2 Elimiate mystery guestIp in IpAddressTO
Nobody can explain why it's there...

Also fix wrong return result of several empty network element callbacks
2012-09-12 15:42:48 -07:00
Alex Huang a1bd6d7eb7 Merge branch 'master' into javelin 2012-09-06 16:31:32 -07:00
Wido den Hollander 881a4be126 maven: Add libvirt repository from libvirt.org website
And remove the libvirt-java bindings since we fetch it from an external repository

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2012-09-06 16:51:32 +02:00
Edison Su 5ae15f8bbf first OSS build 2012-09-05 17:45:25 -07:00
Alex Huang 1d0a10c69e Merged master over to javelin to get new poms and maven build 2012-09-05 14:31:24 -07:00
Edison Su ea9121bc8f KVM initial VPC support
Implements
SetupGuestNetworkCommand,SetNetworkACLCommand,SetSourceNatCommand,IpAssocVpcCommand,SetPortForwardingRulesVpcCommand.
Passes basic functionality, though I'm sure there may be some honing to
do.

Also fixes a few minor things found along the way:
 vpc_guestnw.sh wasn't successfully setting up apache due to default
listen IP of 10.1.1.1
 vpc_guestnw.sh was referencing a 'logger_it' function, replaced with
'logger -t cloud'
 system vms were running with OS type "Debian GNU/Linux 5.0(32-bit)",
which was not found in the KVMGuestOsMapper
 the Xen implementation of SetupGuestNetworkCommand had apparently
copied its catch message from UnPlug Nic, fixed string

Send-by: Marcus Sorensen
RB: https://reviews.apache.org/r/6883
2012-09-04 11:45:59 -07:00
Edison Su 3429c55e55 Implement PlugNicCommand,UnPlugNicCommand for KVM
This is part 1 in enabling VPC for KVM. The various commands needing
implementation will be submitted individually unless I'm told to do
otherwise, in case I don't complete all of the commands, such that
someone else can take over or build on my work.

RB: https://reviews.apache.org/r/6859
Send-by: shadowsor@gmail.com
2012-08-30 10:28:03 -07:00
Edison Su 7bd5c58fc3 fix http://bugs.cloud.com/show_bug.cgi?id=14775, it happened when untagged network created on tagged vlan 2012-08-29 09:46:44 -07:00
Kelven Yang 2300310243 Messaging facility initials for new architecture 2012-08-28 17:58:45 -07:00
olivier lamy fe8a01106b rename cloud-plugins to cloudstack-plugins 2012-08-27 16:53:51 +02:00
olivier lamy c68dd35b6e Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-cloudstack 2012-08-27 16:44:18 +02:00
olivier lamy a06ed5728c remove intermediate parent poms 2012-08-27 16:43:24 +02:00
Kishan Kavala f1ab3ae94c bug CS-10928: Check for delta cpu utilization before updating stats
status CS-10928: resolved fixed
reviewed-by: Prasanna
2012-08-27 19:40:27 +05:30
olivier lamy 3aa469da2a groupdId is now org.apache.cloudstack 2012-08-25 09:20:21 +02:00
olivier lamy 5ef60aceb1 %s/tab/ws/ 2012-08-25 00:03:23 +02:00
Darren Shepherd 4a4007e652 Add license 2012-08-24 11:18:54 -07:00
Darren Shepherd ebc0fa458a * Maven 3 support
* Pretty Format POM's
* AWS API compiles now
2012-08-24 11:18:54 -07:00
Darren Shepherd f826971fea Maven config, initial commit 2012-08-24 11:18:52 -07:00
Kelven Yang d06d6dae72 add maven eclipse project files from Darren 2012-08-23 17:55:20 -07:00
Kelven Yang 9a51ff3bfc Maven worksplace fixes/patches from Darren 2012-08-23 14:26:27 -07:00
Darren Shepherd 2f6cc4b0cb Add license 2012-08-23 14:26:26 -07:00
Darren Shepherd ad54ed1790 * Maven 3 support
* Pretty Format POM's
* AWS API compiles now
2012-08-23 14:26:26 -07:00
Darren Shepherd b8e95e435f Maven config, initial commit 2012-08-23 14:26:25 -07:00
Edison Su 5a1c2dad87 CS-15734 KVM Snapshots show incorrect disk usage.
Changed the code to show virtual size (allocated size).
RB: https://reviews.apache.org/r/6699/
Send-by: saksham.srivastava@citrix.com
2012-08-20 11:22:41 -07:00
Edison Su 178953e963 Adds missing bit from the original CLVM patch
263216caa5
(https://reviews.apache.org/r/6470/) regarding 'patchDisk' in
createPatchVbd. This same patch should apply cleanly to both master and
4.0 branches

RB: https://reviews.apache.org/r/6615/
Send-by: shadowsor@gmail.com
2012-08-14 16:33:58 -07:00
Mice Xia 3eda2b8c4b Remove @author tag from non third-party source files in plugins folder 2012-08-13 15:04:30 +08:00
Alena Prokharchyk b61468d65c Merge branch 'master' into vpc
Conflicts:
	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
2012-08-11 18:27:18 -07:00
Edison Su 263216caa5 Adds CLVM as an option for primary storage. It copies most of the RBD bits, in most cases simply adding an 'else if' or similar. In the managesnapshot.sh we add the ability to manipulate snapshots for the CLVM volumes, as well as a few minor fixes like adjusting the usage for the -b option to reflect that it accepts four arguments (note that it already accepted four args, it just wasn't reflected in the usage).
RB: https://reviews.apache.org/r/6470/
Send-by: shadowsor@gmail.com
2012-08-10 13:33:06 -07:00
Edison Su bc12fd2337 Summary: Introduce Vif Driver in KVM
Add BridgeVifDriver and move current vif implementation to it.

    - remove dependency on VirtualRoutingResource.
    - factor out some of the networking code in LibvirtComputingResource
      to BridgeVifDriver.

    Add base class for KVM VifDriver.

    Add VifDriver Interface for KVM.

    RB: https://reviews.apache.org/r/6285
    Send-by: Tomoe Sugihara <tomoe@midokura.com>
2012-08-10 12:05:24 -07:00
Edison Su 9be74d1d1e Revert "Summary: Introduce Vif Driver in KVM"
This reverts commit 7705635804.
Sorry, accidently checked in, this patch needs more tuning
2012-08-10 11:49:12 -07:00
Edison Su 7705635804 Summary: Introduce Vif Driver in KVM
Add BridgeVifDriver and move current vif implementation to it.

- remove dependency on VirtualRoutingResource.
- factor out some of the networking code in LibvirtComputingResource
  to BridgeVifDriver.

Add base class for KVM VifDriver.

Add VifDriver Interface for KVM.

RB: https://reviews.apache.org/r/6285
Send-by: Tomoe Sugihara <tomoe@midokura.com>
2012-08-10 11:34:32 -07:00
Alena Prokharchyk 6cddd1e767 Removed trailing whitespaces and fixed line endings in some files 2012-08-09 23:30:33 -07:00
Alena Prokharchyk c5e3493792 Merge branch 'master' into vpc 2012-08-08 18:38:35 -07:00
Wido den Hollander 2ce632cf0b agent: Fix typo for error message when HVM is not enabled 2012-08-08 22:31:06 +02:00
Wido den Hollander a12a0081e9 agent: Exit when local.storage.uuid is not set
We used to generate a UUID when this wasn't set, but since we aren't writing to
agent.properties anymore we have to make sure the UUID is persistent across restarts.
2012-08-08 22:31:06 +02:00
Wido den Hollander 57a14266d8 agent: Remove dummy debug line
This does nothing
2012-08-08 22:31:06 +02:00
Wido den Hollander 9fe611037f agent: Set default values for all variables 2012-08-08 22:31:06 +02:00
Wido den Hollander c4f847518f agent: Never write to agent.properties
A daemon should never write to a configuration file

Admins might use tools like Puppet and they don't like changing files
2012-08-08 22:31:06 +02:00
Alena Prokharchyk 048c5e50cf Merge branch 'master' into vpc
Conflicts:
	utils/test/com/cloud/utils/component/MockComponentLocator.java
2012-08-08 11:50:39 -07:00
Wido den Hollander f1053f3e3e kvm: Only select emulators which are x84_64 architecture
Libvirt can also return a bunch of emulators for eg ARM and S390

We filter those out since we do not support these architectures.

This way we don't try to start a x86_64 instance with a S390 emulator
2012-08-07 23:17:52 +02:00
Wido den Hollander a1b9b52164 kvm: Remove hardcoded 'cloud' qemu binaries for Hypervisor detection
With the upcoming Apache release we don't ship custom Qemu builds.

libvirt should provide us with the correct information.
2012-08-07 23:17:52 +02:00
Alena Prokharchyk 95449da4be Merge branch 'master' into vpc 2012-08-07 11:37:45 -07:00
Wido den Hollander 5fa300cd9c kvm: Define CPU shares in domain XML
Since libvirt 0.9.0 this can be specified in the XML.

This used to be set by invoking virsh after starting the instance, but this is cleaner.
2012-08-07 17:49:58 +02:00
Wido den Hollander 9212995501 kvm: Fix two small typos 2012-08-07 17:19:38 +02:00
Alena Prokharchyk 5a72044dc7 Merge branch 'master' into vpc 2012-08-03 14:30:54 -07:00
Chip Childers 3a882fa17c License header updates for the plugins folder. 2012-08-03 09:07:43 -04:00
Alena Prokharchyk 0e0b75a041 Merge branch 'master' into vpc
Conflicts:
	api/src/com/cloud/api/ApiConstants.java
2012-08-02 18:45:37 -07:00
Wido den Hollander 1276aedd35 rbd: Remove debug line
This is no longer needed. It was here for testing purposes, but it was actually a bug in libvirt which has been resolved.
2012-08-02 23:05:00 +02:00
Alena Prokharchyk ce9f1afa78 Merge branch 'master' into vpc
Conflicts:
	server/src/com/cloud/network/NetworkManagerImpl.java
2012-08-01 19:04:28 -07:00
Edison Su 05df0a1965 Another clean up for unnecessary parameter conn Clean up unused
parameter conn. Add test for LibvirtVMDef Add support for ethernet type
RB: https://reviews.apache.org/r/6284/
Send-by: tomoe@midokura.com
2012-08-01 13:59:11 -07:00
Wido den Hollander 2ffc9907f7 kvm: Use libvirt for polling storage pool capacity and allocation
Since we are using libvirt for handling our storage pools we should rely on that information as well.

Before fetching the capacity we refresh the pool so libvirt has the most up-to-date information.

This is not needed with newly created pools since libvirt does a refresh on creation.
2012-08-01 17:18:11 +02:00
Wido den Hollander 34ed15e44e kvm: Remove main methods in various classes
This is dead code which seems to be in there from the VMOps time.

No reason for this to be here, so this can safely be removed
2012-08-01 14:42:31 +02:00
Alena Prokharchyk 7706a9c32f Merge branch 'master' into vpc
Conflicts:
	server/src/com/cloud/network/NetworkManagerImpl.java
	server/src/com/cloud/network/rules/RulesManagerImpl.java
2012-07-31 13:37:28 -07:00
Wido den Hollander cc08eee215 plugin: Rename cloud-kvm.jar to cloud-plugin-hypervisor-kvm.jar
This way we stay consistent with naming our plugins.
2012-07-31 22:18:56 +02:00
Edison Su 7a0a9231c3 Move KVM related code into plugins/hypervisor/kvm, a new jar file is
created: cloud-kvm.jar
2012-07-30 14:55:47 -07:00