Commit Graph

1138 Commits

Author SHA1 Message Date
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
Anthony Xu e33ae74067 CLOUDSTACK-4649:
xs 6.1/6.2 introduce the new virtual platform, so there are two virtual platforms, windows PV driver version must match virtual platforms,
this patch tracks PV driver versions in vm details and template details.

Anthony
2013-10-22 17:54:51 -07:00
John Kinsella c10ee5dde4 Summary: Updated Ethernet regex for vlan-tagged "p1p1.2" style interfaces
Detail: Checks for other Ethernet interface names uses startsWith(),
whereas the p1p1 style interface uses a regex that doesn't allow for
tailing characters, and so blocks vlan IDs. Fixed.

BUG-ID: CLOUDSTACK-4884
Bugfix-for: 4.2.1
Reviewed-by:
Reported-by:
Signed-off-by: John Kinsella <jlk@stratosec.co> 1381965250 -0700
2013-10-16 16:14:10 -07:00
Marcus Sorensen 3467c99e73 CLOUDSTACK-2823: This affects Ubuntu as well, since qemu version is 1.0.0
I don't think host kernel version has any bearing on it. Original code
was tested with CentOS 6.3 and 6.4, but it seems to succeed or fail per-host,
e.g. a fast host might work and a slow host might not. I was getting intermittent
failures with ubuntu 12.04.3 prior to this patch.
2013-10-16 00:27:22 -06:00
Hugo Trippaers 8cfafbe44e Remove some stuff that is no longer used 2013-10-15 14:04:34 +02:00
Marcus Sorensen b344bb4cf3 KVM: Change new volume/template downloads to use UUID in database
rather than creating a fresh random UUID, so admins can match
volumes frontend to backend
2013-10-11 17:16:48 -06:00
Chris Suich 180cfa19e8 Refactor Storage Related Resource Code
These changes are a joint effort between Edison and I to refactor some
of the code around snapshotting VM volumes and creating
templates/volumes from VM volume snapshots. In general, we were working
towards allowing PrimaryDataStoreDrivers to create snapshots on primary
storage and not requiring the snapshots to be transferred to secondary
storage.

High level changes:
-Added uuid to NfsTO, SwiftTO & S3TO to cut down on the requirement of
PrimaryDataStoreTO and ImageStoreTO which don't really serve much of a
purpose
-Initial work towards enable reverting VM volume from snapshots
-Added hypervisor commands for introducing and forgetting new hypervisor
objects (snapshots, templates & volumes)

Signed-off-by: Edison Su <sudison@gmail.com>
2013-10-04 13:06:42 -07:00
Darren Shepherd 67186429e1 Spring Modularization
ACS is now comprised of a hierarchy of spring application contexts.
Each plugin can contribute configuration files to add to an existing
module or create it's own module.

Additionally, for the mgmt server, ACS custom AOP is no longer used
and instead we use Spring AOP to manage interceptors.
2013-10-02 15:41:04 -07:00
Darren Shepherd aed5e9dc2a Add Manage Context framework
The managed context framework provides a simple way to add logic
to ACS at the various entry points of the system.  As threads are
launched and ran listeners can be registered for onEntry or onLeave
of the managed context.  This framework will be used specifically
to handle DB transaction checking and setting up the CallContext.
This framework is need to transition away from ACS custom AOP to
Spring AOP.
2013-10-02 13:09:52 -07:00
ynojima a45ee749ac CLOUDSTACK-2328: Linux native VXLAN support on KVM hypervisor
Initial patch for VXLAN support.
Fully functional, hopefully, for GuestNetwork - AdvancedZone.

Patch Note:
 in cloudstack-server
- Add isolation method VXLAN
- Add VxlanGuestNetworkGuru as plugin for VXLAN isolation
- Modify NetworkServiceImpl to handle extended vNet range for VXLAN isolation
- Add VXLAN isolation option in zoneWizard UI

 in cloudstack-agent (kvm)
- Add modifyvxlan.sh script that handle bridge/vxlan interface manipulation script
-- Usage is exactly same to modifyvlan.sh
- BridgeVifDriver will call modifyvxlan.sh instead of modifyvlan.sh when VXLAN is used for isolation

Database changes:
- No change in database structure.
- VXLAN isolation uses same tables that VLAN uses to store vNet allocation status.

Known Issue and/or TODO:
- Some resource still says 'VLAN' in log even if VXLAN is used
- in UI, "Network - GuestNetworks" dosen't display VNI
-- VLAN ID field displays "N/A"
- Documentation!

Signed-off-by : Toshiaki Hatano <haeena@haeena.net>
2013-09-26 23:37:18 +09:00
Edison Su 3420f2d016 CLOUDSTACK-4641: fix create volume from snapshot timeout issue 2013-09-25 16:32:55 -07:00
Edison Su 4fb4593553 CLOUDSTACK-4618: fix CLVM 2013-09-25 16:29:16 -07:00
Edison Su 0eb3944fc8 kvm upgrade issue from 2.2.14: 1. the uuid passed by mgt server is malformat, libvirt can't start vm. 2. the template path on primary storage is incorrect, which contains absolute path 2013-09-25 16:20:06 -07:00
Edison Su 3ddc6da10b CLOUDSTACK-4405: fix vm migration during the upgrade to 4.2
Conflicts:

	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java
2013-09-25 16:19:53 -07:00
Edison Su a96f6b306b CLOUDSTACK-4459: fix silly bug, one more time 2013-09-25 16:17:54 -07:00
Edison Su 2227eb191a CLOUDSTACK-3535: fix regression introduced in 5d9fa5d42e 2013-09-25 16:16:34 -07:00
Edison Su 49d8e44491 CLOUDSTACK-4459: one more try, bypass libvirt to find volume if libvirt call failed
Conflicts:

	server/src/com/cloud/template/TemplateManagerImpl.java
2013-09-25 16:16:10 -07:00
Edison Su b695484dc7 CLOUDSTACK-4459:
Libvirt reports:
org.libvirt.LibvirtException: Storage volume not found: no storage vol
with matching name
in some cases, if the volume is created on one kvm host, while accessed
from other host.
It's possible due to concurrent access(read/write) storage.
The current fix is to try serveral times, and wait for 30 seconds for
each retry.
If the issue still there, then need to sync the storage pool access
2013-09-25 16:13:38 -07:00
Edison Su dda1133f12 CLOUDSTACK-4436: in case of older kvm host, we'd better try serveral times to make sure we passed cmdline parameters to system vms
Conflicts:

	core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
2013-09-25 16:10:57 -07:00
Edison Su 9fa56e28ec CLOUDSTACK-4459: need to sychronize create storage pool, otherwise, we can create the same pool with the same uuid in parallel 2013-09-25 16:09:11 -07:00
Edison Su b5f7e307a1 CLOUDSTACK-4456:
CLOUDSTACK-4457:
CLOUDSTACK-4459:
harden kvm getvolume. It's possible that one volume created on other kvm host, won't show up on another host, try more times to refresh storage pool if volume won't shown up

Conflicts:

	engine/storage/integration-test/test/org/apache/cloudstack/storage/test/FakeDriverTestConfiguration.java
	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
2013-09-25 16:01:45 -07:00
Edison Su 5e94e1675b CLOUDSTACK-2729: another try to solve libvirt storage pool missing issue: if the storage pool is missing, then recreate it 2013-09-25 15:52:03 -07:00
Edison Su b3ac12e171 delete snapshot_store_ref if the snapshot is in error state 2013-09-25 15:51:55 -07:00
Wei Zhou 3dc4284a34 add missing jna-4.0.0.jar to cloudstack-agent library by changing scope from provided to default runtime 2013-09-25 11:08:57 +02:00
Wei Zhou 258118efa6 CLOUDSTACK-4405: additional patch for bridge name and firewall rules issues after KVM upgrade to 4.2
There still exist two issues after Edison's commits.
(1) Migration from new hosts to old hosts failed.
The bridge name on old host is set to cloudVirBr* if network.bridge.name.schema is set to 3.0 in /etc/cloudstack/agent/agent.properties, but the actual bridge name is breth*-* after running cloudstack-agent-upgrade.
(2) all ports of vms (Basic zone, or Advanced zone with security groups) on old hosts are open, because the iptables rules are binding to device (bridge) name which is changed by cloudstack-agent-upgrade.

After this, the KVM upgrade steps :
a. Install 4.2 cloudstack agent on each kvm host
b. Run "cloudstack-agent-upgrade". This script will upgrade all the existing bridge name to new bridge name, and update related firewall rules.
c. install a libvirt hook:
    c1. mkdir /etc/libvirt/hooks
    c2. cp /usr/share/cloudstack-agent/lib/libvirtqemuhook /etc/libvirt/hooks/qemu
    c3. chmod +x /etc/libvirt/hooks/qemu
    c4. service libvirtd restart
    c5. service cloudstack-agent restart

Signed-off-by: Wei Zhou <w.zhou@leaseweb.com>
2013-09-24 09:55:00 +02:00
Edison Su e325fb66ab CLOUDSTACK-4405: fix vm migration during the upgrade to 4.2
Signed-off-by: Wei Zhou <w.zhou@leaseweb.com>
2013-09-24 09:53:55 +02:00
Daan Hoogland 2614b00c51 sdn hosted vpc gateways (using lswitch) 2013-09-18 16:56:56 +02:00
Marcus Sorensen 2b4e994a4d CLOUDSTACK-3565 - fix for new libvirt behavior when defining NFS
pools that are already mounted in KVM hypervisor
2013-09-17 10:53:35 -06:00
Wido den Hollander a709f34ff9 kvm: During migrate change the VNC listen address
The migrate method from libvirt supports passing down a different XML for running
the instance of the target hypervisor.

This enables the VNC to bind to the private IP Address of the hypervisor and during
migration this will be changed to the private IP address of the target host.

This way VNC doesn't listen world wide and is much safer.
2013-09-16 11:57:16 +02:00
Wei Zhou 5c141a46fc CLOUDSTACK-4610: fix incorrect value available_bytes of storage pool 2013-09-05 11:16:12 +02:00
Daan Hoogland d9c06e538b CLOUDSTACK-4346 replace URI getHost() and create(String) calls with BroadcastDomainType methods 2013-09-01 22:53:23 +02:00
Wido den Hollander c3a275fc75 CLOUDSTACK-4423: Do not always append .qcow2 to volume names when copying
Disk images are not always in the QCOW2 format, so don't assume that the
filename will always and in .qcow2
2013-08-27 18:34:39 +02:00
Min Chen 49dd7289c0 CLOUDSTACK-4468:template created from snapshot is destroyed once we
restart management server.
2013-08-26 11:58:53 -07:00
Toshiaki Hatano 914e7c4542 Revert "CLOUDSTACK-2328: Linux native VXLAN support on KVM hypervisor"
This reverts commit 34ae32e0c2.
2013-08-24 07:12:23 +00:00
Toshiaki Hatano 34ae32e0c2 CLOUDSTACK-2328: Linux native VXLAN support on KVM hypervisor
Initial patch for VXLAN support.
Fully functional, hopefully, for GuestNetwork - AdvancedZone.

Patch Note:
 in cloudstack-server
- Add isolation method VXLAN
- Add VxlanGuestNetworkGuru as plugin for VXLAN isolation
- Modify NetworkServiceImpl to handle extended vNet range for VXLAN isolation
- Add VXLAN isolation option in zoneWizard UI

 in cloudstack-agent (kvm)
- Add modifyvxlan.sh script that handle bridge/vxlan interface manipulation script
-- Usage is exactly same to modifyvlan.sh
- BridgeVifDriver will call modifyvxlan.sh instead of modifyvlan.sh when VXLAN is used for isolation

Database changes:
- No change in database structure.
- VXLAN isolation uses same tables that VLAN uses to store vNet allocation status.

Known Issue:
- Some resource still says 'VLAN' in log even if VXLAN is used
- in UI, "Network - GuestNetworks" dosen't display VNI
-- VLAN ID field displays "N/A"
2013-08-24 01:39:11 +00:00
Wido den Hollander fb9ceba93b CLOUDSTACK-4424: Download RBD volume created from snapshot
This failed due to a RAW -> QCOW2 conversion (again).

The current code still makes to much assumptions about everything always
being QCOW2 while that is not always true.
2013-08-23 16:17:22 +02:00
Rajesh Battala 61c5b4bf75 fix for kvm test failure
(cherry picked from commit 6c593b0b16)
2013-08-20 20:14:53 +05:30
Nitin Mehta e6b53e5529 CLOUDSTACK-4386
KVM - Create template from volume
Vmware - Create template from volume / Create template from snapshot
send the physical size in the copycommand which accordingly will populate template store ref and the usage_event tables with the right physical size
Signed off by : nitin mehta<nitin.mehta@citrix.com>
2013-08-20 19:21:32 +05:30
Edison Su d89667ed47 fix unit test 2013-08-19 15:26:11 -07:00
Edison Su 3c098c0876 CLOUDSTACK-4338: fix NPE if create volume failed 2013-08-19 15:25:46 -07:00
Edison Su a7f3e1ec97 CLOUDSTACK-4300: possible fix: cputune feature is only available after 0.9.0, so start vm can fail on rhel 6.1 2013-08-19 15:24:56 -07:00
Edison Su 90388ce77e CLOUDSTACK-4315: add code to clean up libvirt data structure after plug/unplug, that's the only thing I can do to fix this kind of libvirt issue 2013-08-14 16:59:07 -07:00
Edison Su dd6b245221 CLOUDSTACK-4318: clean up snapshot stored in staging area, after backup snapshot to object store 2013-08-14 14:59:25 -07:00
Edison Su 374de76dae CLOUDSTACK-4324: need to clean up snapshot_store_ref, if creating snapshot failed. 2013-08-14 14:59:19 -07:00
Wido den Hollander 3c35faaf5a CLOUDSTACK-4278: Fix resizing RBD volumes
Although libvirt supports resizing RBD volumes (and other formats) the
Java bindings (libvirt-java) don't.

Right now we use the Java bindings for librbd to handle the resizing for us,
but in the future this should be done by libvirt rather then these
Java bindings.
2013-08-14 16:15:09 +02:00
Wido den Hollander d7f738fb64 rbd: When the template is a RAW image, do not use a temp file when deploying 2013-08-14 13:28:08 +02:00
Wei Zhou c3bc9d65dd Remove unused method deleteVbdByPath from KVM storage classes 2013-08-13 23:51:05 +02:00
Wido den Hollander 04f378bcff CLOUDSTACK-4114: Use RAW disk images for RBD instead of QCOW2 2013-08-13 16:14:45 +02:00
Hugo Trippaers d57796b94f Fix XML validation errors 2013-08-13 08:25:45 +02:00
Edison Su 1a6b7d6714 CLOUDSTACK-4216: fix extract volume for kvm 2013-08-12 17:20:15 -07:00
Edison Su 9a89fd94fc CLOUDSTACK-4211: fix s3 on kvm 2013-08-12 17:20:09 -07:00
JijunLiu 8d53887cec add doc for kvm cpu model
Signed-off-by: Wei Zhou <w.zhou@leaseweb.com>
2013-08-12 15:19:25 +02:00
Wei Zhou 6d86af85ba CLOUDSTACK-2729: increase waiting timeout for global file lock to 300 seconds 2013-08-09 08:58:46 +02:00
Edison Su ec2eafdfde CLOUDSTACK-3538: if passcmdline succeed, don't need to retry again, and increase the retry to 5 minutes at most 2013-08-08 17:21:38 -07:00
Wei Zhou b2ed632396 CLOUDSTACK-2729: use spd.getTargetPath instead of mount path to fix issue on local storage 2013-08-08 16:38:07 +02:00
Edison Su e115ee4026 CLOUDSTACK-3535: still maintain stop agent wont trigger HA 2013-08-07 14:43:16 -07:00
Edison Su 5b0314fff9 CLOUDSTACK-3535: add kvminvestigator to investirage kvm host
Conflicts:

	plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
2013-08-07 11:44:19 -07:00
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
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