Hey Marcus, When I rebuild my DEBs and try to re-deploy them to my KVM host, I receive the following message:
cloudstack-agent is already the newest version. How do you recommend I get around this? I assume if I do the following that I will un-install necessary config files? sudo apt-get remove --purge cloudstack-agent Thanks! On Fri, Oct 11, 2013 at 1:07 PM, Mike Tutkowski < mike.tutkow...@solidfire.com> wrote: > We will also require iscsiadm to be present, which I believe is part of > the open-iscsi package on Ubuntu, so I guess what's another couple > dependencies. :) > > > On Fri, Oct 11, 2013 at 1:03 PM, Marcus Sorensen <shadow...@gmail.com>wrote: > >> Oops, that patch got cut off: >> >> >> diff --git a/debian/control b/debian/control >> index 46dd505..72a0fb1 100644 >> --- a/debian/control >> +++ b/debian/control >> @@ -22,7 +22,7 @@ Description: CloudStack server library >> >> Package: cloudstack-agent >> Architecture: all >> -Depends: openjdk-6-jre | openjdk-7-jre, cloudstack-common (= >> ${source:Version}), lsb-base (>= 3.2), libcommons-daemon-java, libjna-java, >> openssh-client, libvirt0, sysvinit-utils, qemu-kvm, libvirt-bin, >> uuid-runtime, rsync, grep, iproute, perl-base, perl-modules, ebtables, >> vlan, wget, jsvc, ipset >> +Depends: openjdk-6-jre | openjdk-7-jre, cloudstack-common (= >> ${source:Version}), lsb-base (>= 3.2), libcommons-daemon-java, libjna-java, >> openssh-client, libvirt0, sysvinit-utils, qemu-kvm, libvirt-bin, >> uuid-runtime, rsync, grep, iproute, perl-base, perl-modules, ebtables, >> vlan, wget, jsvc, ipset, util-linux >> Conflicts: cloud-agent, cloud-agent-libs, cloud-agent-deps, >> cloud-agent-scripts >> Description: CloudStack agent >> The CloudStack agent is in charge of managing shared computing >> resources in >> diff --git a/packaging/centos63/cloud.spec >> b/packaging/centos63/cloud.spec >> index 5f8a2a5..07127a4 100644 >> --- a/packaging/centos63/cloud.spec >> +++ b/packaging/centos63/cloud.spec >> @@ -81,6 +81,7 @@ Requires: mkisofs >> Requires: MySQL-python >> Requires: python-paramiko >> Requires: ipmitool >> +Requires: util-linux-ng >> Requires: %{name}-common = %{_ver} >> Requires: %{name}-awsapi = %{_ver} >> Obsoletes: cloud-client < 4.1.0 >> >> >> On Fri, Oct 11, 2013 at 1:02 PM, Marcus Sorensen <shadow...@gmail.com>wrote: >> >>> Yes, blockdev is a part of the util-linux package, and all but a minimal >>> install should have it. To be safe, we could add 'util-linux' to the deb >>> requires and 'util-linux-ng' to the rpm requires for the agents. Something >>> like: >>> >>> diff --git a/debian/control b/debian/control >>> index 46dd505..72a0fb1 100644 >>> --- a/debian/control >>> +++ b/debian/control >>> @@ -22,7 +22,7 @@ Description: CloudStack server library >>> >>> Package: cloudstack-agent >>> Architecture: all >>> -Depends: openjdk-6-jre | openjdk-7-jre, cloudstack-common (= >>> ${source:Version}), lsb-base (>= 3.2), libcommons-daemon-java, libjna-java, >>> openssh-client, libvirt0, sysvinit-utils, qemu-kvm, libvirt-bin >>> +Depends: openjdk-6-jre | openjdk-7-jre, cloudstack-common (= >>> ${source:Version}), lsb-base (>= 3.2), libcommons-daemon-java, libjna-java, >>> openssh-client, libvirt0, sysvinit-utils, qemu-kvm, libvirt-bin >>> Conflicts: cloud-agent, cloud-agent-libs, cloud-agent-deps, >>> cloud-agent-scripts >>> Description: CloudStack agent >>> The CloudStack agent is in charge of managing shared computing >>> resources in >>> diff --git a/packaging/centos63/cloud.spec >>> b/packaging/centos63/cloud.spec >>> index 5f8a2a5..07127a4 100644 >>> --- a/packaging/centos63/cloud.spec >>> +++ b/packaging/centos63/cloud.spec >>> @@ -81,6 +81,7 @@ Requires: mkisofs >>> Requires: MySQL-python >>> Requires: python-paramiko >>> Requires: ipmitool >>> +Requires: util-linux-ng >>> Requires: %{name}-common = %{_ver} >>> Requires: %{name}-awsapi = %{_ver} >>> Obsoletes: cloud-client < 4.1.0 >>> >>> If you wanted to be indepedent of that, you could use sysfs in a >>> roundabout way: >>> >>> marcus@marcus-bsdesk:~/code$ ls -l >>> /dev/disk/by-path/pci-0000\:00\:1f.2-scsi-0\:0\:0\:0 >>> lrwxrwxrwx 1 root root 9 Oct 7 09:25 >>> /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 -> ../../sdc >>> >>> we are pointing to /dev/sdc >>> >>> marcus@marcus-bsdesk:~/code$ cat /sys/block/sdc/size >>> 5860533168 >>> *size in sectors* >>> >>> marcus@marcus-bsdesk:~/code$ cat /sys/block/sdc/queue/hw_sector_size >>> 512 >>> >>> 5860533168 * 512 = 3000592982016 >>> >>> compared to: >>> marcus@marcus-bsdesk:~/code$ sudo blockdev --getsize64 /dev/sdc >>> 3000592982016 >>> >>> >>> >>> >>> >>> >>> >>> >>> On Fri, Oct 11, 2013 at 12:36 PM, Mike Tutkowski < >>> mike.tutkow...@solidfire.com> wrote: >>> >>>> Hey Marcus, >>>> >>>> What do you think about me running the following to get the device size >>>> for my PhysicalDisk instances? >>>> >>>> "blockdev --getsize64 /dev/disk/by-path/ip-" + host + "-iscsi-" + iqn >>>> + "-lun-0 >>>> >>>> That should work on whatever platforms the KVM agent runs (mainly >>>> Ubuntu and CentOS), right? >>>> >>>> Thanks >>>> >>>> >>>> On Thu, Oct 10, 2013 at 7:56 PM, Mike Tutkowski < >>>> mike.tutkow...@solidfire.com> wrote: >>>> >>>>> I made a bunch of updates, Marcus: >>>>> >>>>> >>>>> https://github.com/mike-tutkowski/incubator-cloudstack/commit/c13442eaa228a5ae37d3b13f6c98636de158a908 >>>>> >>>>> >>>>> On Thu, Oct 10, 2013 at 4:40 PM, Mike Tutkowski < >>>>> mike.tutkow...@solidfire.com> wrote: >>>>> >>>>>> Hey Marcus, >>>>>> >>>>>> I haven't had a chance to test this yet, but I thought you might be >>>>>> interested in the merge of your work with mine. >>>>>> >>>>>> I've also replaced the direct CHAP parameters with a Map<String, >>>>>> String> (which currently only stores the CHAP credentials, but could be >>>>>> used for more in the future). >>>>>> >>>>>> I still have a bit of work to do around the getPhysicalDisk method, >>>>>> but this should give you a good idea of where we're at: >>>>>> >>>>>> >>>>>> https://github.com/mike-tutkowski/incubator-cloudstack/commit/30433a20d1707ea1870024e80732bcfdbd64f69a >>>>>> >>>>>> Talk to you later >>>>>> >>>>>> >>>>>> On Wed, Oct 9, 2013 at 3:52 PM, Mike Tutkowski < >>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>> >>>>>>> I've got the code all merged, by the way. >>>>>>> >>>>>>> I should be able to start in on testing soon (tonight or tomorrow). >>>>>>> >>>>>>> >>>>>>> On Wed, Oct 9, 2013 at 3:51 PM, Mike Tutkowski < >>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>> >>>>>>>> Will do...I'll remove it (there is similar code in two methods). >>>>>>>> >>>>>>>> >>>>>>>> On Wed, Oct 9, 2013 at 3:49 PM, Marcus Sorensen < >>>>>>>> shadow...@gmail.com> wrote: >>>>>>>> >>>>>>>>> Yeah, that looks like leftovers from refactoring our 4.1 code into >>>>>>>>> 4.2 and making it something more generic. It looks like it could be >>>>>>>>> removed. >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Oct 9, 2013 at 3:40 PM, Mike Tutkowski < >>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>> >>>>>>>>>> Hey Marcus, >>>>>>>>>> >>>>>>>>>> I'm merging your changes into mine. >>>>>>>>>> >>>>>>>>>> It looks like I can remove your call to getPhysicalDisk (below) >>>>>>>>>> (and the associated KVMPhysicalDisk variable, as well). >>>>>>>>>> >>>>>>>>>> I assume you would never want to produce any side effects in your >>>>>>>>>> getPhysicalDisk implementation, right? Seems like that would be >>>>>>>>>> unintuitive. >>>>>>>>>> >>>>>>>>>> public booleanconnectPhysicalDisksViaVmSpec(VirtualMachineTO >>>>>>>>>> vmSpec) { >>>>>>>>>> >>>>>>>>>> boolean result = false; >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> final String vmName = vmSpec.getName(); >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> List<DiskTO> disks = Arrays.asList(vmSpec.getDisks()); >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> for (DiskTO disk : disks) { >>>>>>>>>> >>>>>>>>>> KVMPhysicalDisk physicalDisk = null; >>>>>>>>>> >>>>>>>>>> KVMStoragePool pool = null; >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> if (disk.getType() != Volume.Type.ISO) { >>>>>>>>>> >>>>>>>>>> VolumeObjectTO vol = (VolumeObjectTO) >>>>>>>>>> disk.getData(); >>>>>>>>>> >>>>>>>>>> PrimaryDataStoreTO store = (PrimaryDataStoreTO) >>>>>>>>>> vol.getDataStore(); >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> pool = getStoragePool(store.getPoolType(), >>>>>>>>>> store.getUuid()); >>>>>>>>>> >>>>>>>>>> physicalDisk = >>>>>>>>>> pool.getPhysicalDisk(vol.getPath()); >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> StorageAdaptor adaptor = >>>>>>>>>> getStorageAdaptor(pool.getType()); >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> result = >>>>>>>>>> adaptor.connectPhysicalDisk(vol.getPath(), pool); >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> if (! result) { >>>>>>>>>> >>>>>>>>>> s_logger.error("Failed to connect disks via >>>>>>>>>> vm spec for vm:" + vmName + " volume:" + vol.toString()); >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> return result; >>>>>>>>>> >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> return result; >>>>>>>>>> >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Wed, Oct 9, 2013 at 12:01 AM, Mike Tutkowski < >>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>> >>>>>>>>>>> Excellent...that template worked like a charm. >>>>>>>>>>> >>>>>>>>>>> Thanks! >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Tue, Oct 8, 2013 at 11:50 PM, Mike Tutkowski < >>>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> Perfect >>>>>>>>>>>> >>>>>>>>>>>> Almost done downloading...I'll give it a try in a moment. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Tue, Oct 8, 2013 at 11:47 PM, Marcus Sorensen < >>>>>>>>>>>> shadow...@gmail.com> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Not password enabled, root password is just 'password'. I >>>>>>>>>>>>> mainly just use it for devcloud-kvm testing. >>>>>>>>>>>>> On Oct 8, 2013 11:45 PM, "Mike Tutkowski" < >>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Great - thanks! >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 11:38 PM, Marcus Sorensen < >>>>>>>>>>>>>> shadow...@gmail.com> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Use my tiny centos image. I'm not sure what's up with that >>>>>>>>>>>>>>> crufty old default centos template. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Register this qcow2 template: >>>>>>>>>>>>>>> http://marcus.mlsorensen.com/cloudstack-extras/tiny-centos-63.qcow2 >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Needs a service offering with at least 192MB to run. >>>>>>>>>>>>>>> On Oct 8, 2013 11:36 PM, "Mike Tutkowski" < >>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Perhaps you might know something about this, Marcus. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> My instance suffers a Kernel panic while booting up. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I'm just using the built-in KVM template (CentOS >>>>>>>>>>>>>>>> 5.5(64-bit) no GUI (KVM)) with 1 CPU and 512 MB memory. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> http://i.imgur.com/QuPH2Ub.png >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I tried to just use an ISO instead, but apparently that >>>>>>>>>>>>>>>> functionality is broken, as well (related to Disk Offerings). >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 10:39 PM, Mike Tutkowski < >>>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> OK, all is good now. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I have both system VMs up and running and the Agent States >>>>>>>>>>>>>>>>> read as "Up," as well. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 9:50 PM, Mike Tutkowski < >>>>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> I believe we've been down this road before: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> 2013-10-09 03:47:41,281 ERROR [cloud.agent.AgentShell] >>>>>>>>>>>>>>>>>> (main:null) Unable to start agent: Resource class not found: >>>>>>>>>>>>>>>>>> com.cloud.storage.resource.PremiumSecondaryStorageResource >>>>>>>>>>>>>>>>>> due to: >>>>>>>>>>>>>>>>>> java.lang.ClassNotFoundException: >>>>>>>>>>>>>>>>>> com.cloud.storage.resource.PremiumSecondaryStorageResource >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> The solution was to compile without -Dnoredist. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> I will try that now. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 9:36 PM, Marcus Sorensen < >>>>>>>>>>>>>>>>>> shadow...@gmail.com> wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> You may be able to find a stack trace for the java >>>>>>>>>>>>>>>>>>> process in /var/log/cloud or the messages file, on the >>>>>>>>>>>>>>>>>>> system vm. >>>>>>>>>>>>>>>>>>> On Oct 8, 2013 9:21 PM, "Mike Tutkowski" < >>>>>>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Interesting...I ran the following: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> /usr/local/cloud/systemvm/ssvm-check.sh >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> It says the Java process is not running. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> This is the KVM system template I'm using: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> http://download.cloud.com/templates/4.2/systemvmtemplate-2013-06-12-master-kvm.qcow2.bz2 >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> I just picked the one that was referenced in the >>>>>>>>>>>>>>>>>>>> VM_Template table in 4.3. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 9:05 PM, Mike Tutkowski < >>>>>>>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Found it. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> As an FYI, this is the doc I was referring to: >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> https://cwiki.apache.org/confluence/display/CLOUDSTACK/SSVM%2C+templates%2C+Secondary+storage+troubleshooting >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 9:04 PM, Mike Tutkowski < >>>>>>>>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> CS MS can ping the SSVM's public IP address. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> SSVM can ping CS MS. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> I think we had a nice debug document for SSVM >>>>>>>>>>>>>>>>>>>>>> mentioned on a CS e-mail...I'll try to find it. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 8:29 PM, Marcus Sorensen < >>>>>>>>>>>>>>>>>>>>>> shadow...@gmail.com> wrote: >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> You could start by trying to ping them from mgmt >>>>>>>>>>>>>>>>>>>>>>> server, or trying to VNC to them if the OS isn't up. >>>>>>>>>>>>>>>>>>>>>>> I'm assuming you >>>>>>>>>>>>>>>>>>>>>>> prepped a current system vm template (maybe you're even >>>>>>>>>>>>>>>>>>>>>>> reusing a secondary >>>>>>>>>>>>>>>>>>>>>>> storage). If you can ping their 169.254 addresses, you >>>>>>>>>>>>>>>>>>>>>>> can "cloudstack-ssh >>>>>>>>>>>>>>>>>>>>>>> 169.254.x.x" as root on the kvm host to get in >>>>>>>>>>>>>>>>>>>>>>> On Oct 8, 2013 7:31 PM, "Mike Tutkowski" < >>>>>>>>>>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> Looks like I'll have to dig up that doc on >>>>>>>>>>>>>>>>>>>>>>>> debugging SSVM...it's been about 30 mins since the VMs >>>>>>>>>>>>>>>>>>>>>>>> came up. >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 7:29 PM, Marcus Sorensen < >>>>>>>>>>>>>>>>>>>>>>>> shadow...@gmail.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> You may just have to wait a bit. That means the >>>>>>>>>>>>>>>>>>>>>>>>> VMS are started but the services aren't up. Usually >>>>>>>>>>>>>>>>>>>>>>>>> takes 5-10 min to get >>>>>>>>>>>>>>>>>>>>>>>>> both up in my fusion vm. If that doesn't get better >>>>>>>>>>>>>>>>>>>>>>>>> you may have to log >>>>>>>>>>>>>>>>>>>>>>>>> into the system VMS and see what's going on. >>>>>>>>>>>>>>>>>>>>>>>>> On Oct 8, 2013 7:25 PM, "Mike Tutkowski" < >>>>>>>>>>>>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> Doh! I didn't restart the necessary service after >>>>>>>>>>>>>>>>>>>>>>>>>> exporting my NFS share. >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> The system VMs come up now; however, SSVM has a >>>>>>>>>>>>>>>>>>>>>>>>>> dash (-) for its Agent State and the CS MS console >>>>>>>>>>>>>>>>>>>>>>>>>> keeps printing out the >>>>>>>>>>>>>>>>>>>>>>>>>> following: >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> INFO [o.a.c.s.e.DefaultEndPointSelector] >>>>>>>>>>>>>>>>>>>>>>>>>> (StatsCollector-3:ctx-018adc41) No running ssvm is >>>>>>>>>>>>>>>>>>>>>>>>>> found, so command will >>>>>>>>>>>>>>>>>>>>>>>>>> be sent to LocalHostEndPoint >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 4:35 PM, Marcus Sorensen < >>>>>>>>>>>>>>>>>>>>>>>>>> shadow...@gmail.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> Can you mount the secondary storage from your >>>>>>>>>>>>>>>>>>>>>>>>>>> KVM host? >>>>>>>>>>>>>>>>>>>>>>>>>>> On Oct 8, 2013 4:01 PM, "Mike Tutkowski" < >>>>>>>>>>>>>>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Although the host is added to KVM, I do see the >>>>>>>>>>>>>>>>>>>>>>>>>>>> following issues in the CS MS console (any >>>>>>>>>>>>>>>>>>>>>>>>>>>> thoughts on this?): >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> WARN [c.c.u.d.Merovingian2] >>>>>>>>>>>>>>>>>>>>>>>>>>>> (secstorage-1:ctx-c1c573ee) Was unable to find >>>>>>>>>>>>>>>>>>>>>>>>>>>> lock for the key >>>>>>>>>>>>>>>>>>>>>>>>>>>> template_spool_ref2 and thread id 2049868806 >>>>>>>>>>>>>>>>>>>>>>>>>>>> INFO [c.c.v.VirtualMachineManagerImpl] >>>>>>>>>>>>>>>>>>>>>>>>>>>> (secstorage-1:ctx-c1c573ee) Unable to contact >>>>>>>>>>>>>>>>>>>>>>>>>>>> resource. >>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.exception.StorageUnavailableException: >>>>>>>>>>>>>>>>>>>>>>>>>>>> Resource [StoragePool:1] is unreachable: Unable to >>>>>>>>>>>>>>>>>>>>>>>>>>>> create >>>>>>>>>>>>>>>>>>>>>>>>>>>> Vol[1|vm=1|ROOT]:com.cloud.utils.exception.CloudRuntimeException: >>>>>>>>>>>>>>>>>>>>>>>>>>>> org.libvirt.LibvirtException: internal error Child >>>>>>>>>>>>>>>>>>>>>>>>>>>> process (/bin/mount >>>>>>>>>>>>>>>>>>>>>>>>>>>> 192.168.233.10:/mnt/secondary/template/tmpl/1/3 >>>>>>>>>>>>>>>>>>>>>>>>>>>> /mnt/334b3c4e-764b-362a-be2c-ebe8c490d0a9) status >>>>>>>>>>>>>>>>>>>>>>>>>>>> unexpected: exit status 32 >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> org.apache.cloudstack.engine.orchestration.VolumeOrchestrator.recreateVolume(VolumeOrchestrator.java:1027) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> org.apache.cloudstack.engine.orchestration.VolumeOrchestrator.prepare(VolumeOrchestrator.java:1069) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.vm.VirtualMachineManagerImpl.advanceStart(VirtualMachineManagerImpl.java:830) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.vm.VirtualMachineManagerImpl.advanceStart(VirtualMachineManagerImpl.java:649) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.storage.secondary.SecondaryStorageManagerImpl.startSecStorageVm(SecondaryStorageManagerImpl.java:261) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.storage.secondary.SecondaryStorageManagerImpl.allocCapacity(SecondaryStorageManagerImpl.java:693) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.storage.secondary.SecondaryStorageManagerImpl.expandPool(SecondaryStorageManagerImpl.java:1265) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.secstorage.PremiumSecondaryStorageManagerImpl.scanPool(PremiumSecondaryStorageManagerImpl.java:123) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.secstorage.PremiumSecondaryStorageManagerImpl.scanPool(PremiumSecondaryStorageManagerImpl.java:50) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.vm.SystemVmLoadScanner.loadScan(SystemVmLoadScanner.java:101) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.vm.SystemVmLoadScanner.access$100(SystemVmLoadScanner.java:33) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.vm.SystemVmLoadScanner$1.reallyRun(SystemVmLoadScanner.java:78) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.vm.SystemVmLoadScanner$1.runInContext(SystemVmLoadScanner.java:71) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>>>>>>>>>>>>>>>>>>>>>>>>>>> at java.lang.Thread.run(Thread.java:724) >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> On Tue, Oct 8, 2013 at 3:58 PM, Mike Tutkowski >>>>>>>>>>>>>>>>>>>>>>>>>>>> <mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> So...got some good news: >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> I spent a couple hours setting up a KVM >>>>>>>>>>>>>>>>>>>>>>>>>>>>> environment on Ubuntu 12.04.1 from scratch >>>>>>>>>>>>>>>>>>>>>>>>>>>>> (Installing SSH, Open iSCSI, >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Java 7, KVM, Git, CloudStack, CloudStack DEBs, >>>>>>>>>>>>>>>>>>>>>>>>>>>>> KVM system template, etc.) >>>>>>>>>>>>>>>>>>>>>>>>>>>>> and I can now add this KVM host to CloudStack (on >>>>>>>>>>>>>>>>>>>>>>>>>>>>> a related note, no errors >>>>>>>>>>>>>>>>>>>>>>>>>>>>> in agent.err either). >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> I have no idea what is messed up with my old >>>>>>>>>>>>>>>>>>>>>>>>>>>>> KVM install on Ubuntu, but the new one works. >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> That being the case, I can close out the JIRA >>>>>>>>>>>>>>>>>>>>>>>>>>>>> ticket I logged a while back and start >>>>>>>>>>>>>>>>>>>>>>>>>>>>> integrating your code into mine. >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Mon, Oct 7, 2013 at 7:46 PM, Mike Tutkowski >>>>>>>>>>>>>>>>>>>>>>>>>>>>> <mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Right...yeah, I didn't mean we'd commit to >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 4.2, but maybe I should work off of 4.2 since >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> master seems to be un-stable >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> in this regard. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I plan to set up a machine in the lab >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> tomorrow with Ubuntu 12.04 from scratch to see >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> if it works when I start >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> clean, but - if it doesn't - I should just use >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 4.2 for development. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Mon, Oct 7, 2013 at 7:05 PM, Marcus >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sorensen <shadow...@gmail.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> We can't. This patch will never see 4.2. You >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> can still start working on your plugin on 4.2, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> but the change represented >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> by this patch can only go into master. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Oct 7, 2013 5:01 PM, "Mike Tutkowski" < >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> So, now that I'm getting back to this, do >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> you think I should just try to make this work >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> with 4.2 (like we originally >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> talked about)? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I updated again from master, rebuilt, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> redeployed DEBs and still get this JNA error >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> message: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> log4j:WARN No appenders could be found for >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> logger >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (org.apache.commons.httpclient.params.DefaultHttpParams). >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> log4j:WARN Please initialize the log4j >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> system properly. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> log4j:WARN See >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> http://logging.apache.org/log4j/1.2/faq.html#noconfigfor >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> more info. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> java.lang.reflect.InvocationTargetException >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Method) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> java.lang.reflect.Method.invoke(Method.java:606) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:243) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Caused by: java.lang.UnsatisfiedLinkError: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Can't obtain updateLastError method for class >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.sun.jna.Native >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at com.sun.jna.Native.initIDs(Native >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Method) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.sun.jna.Native.<clinit>(Native.java:139) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at org.libvirt.jna.Libvirt.<clinit>(Unknown >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Source) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at org.libvirt.Library.<clinit>(Unknown >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Source) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at org.libvirt.Connect.<init>(Unknown >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Source) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.hypervisor.kvm.resource.LibvirtConnection.getConnection(LibvirtConnection.java:44) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.hypervisor.kvm.resource.LibvirtConnection.getConnection(LibvirtConnection.java:37) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.configure(LibvirtComputingResource.java:733) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.agent.Agent.<init>(Agent.java:161) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.agent.AgentShell.launchAgent(AgentShell.java:415) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.agent.AgentShell.launchAgentFromClassInfo(AgentShell.java:370) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.agent.AgentShell.launchAgent(AgentShell.java:351) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> com.cloud.agent.AgentShell.start(AgentShell.java:448) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ... 5 more >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Cannot start daemon >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Service exit with a return value of 5 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Mon, Oct 7, 2013 at 2:31 PM, Mike >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Tutkowski <mike.tutkow...@solidfire.com>wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sure, that's a good plan. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I'll get to it. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Mon, Oct 7, 2013 at 2:29 PM, Marcus >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sorensen <shadow...@gmail.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I know you mentioned you might need some >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> minor changes to it, as well as other minor >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> changes just for master (attach >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> volume switched to pool vs adapter or >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> something). My hope was that you >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> would be able to send an update that works >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> for your plugin on master, I'll >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> test against existing libvirtd storage and >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> apply it. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Oct 7, 2013 1:49 PM, "Mike >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Tutkowski" <mike.tutkow...@solidfire.com> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> This is an automatically generated >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> e-mail. To reply, visit: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> https://reviews.apache.org/r/14381/ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> This looks reasonable to me, Marcus. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> When do you think you might start the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> process of getting this into master? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - Mike Tutkowski >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On September 30th, 2013, 5:14 p.m. UTC, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Marcus Sorensen wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Review request for cloudstack, edison >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> su and Mike Tutkowski. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> By Marcus Sorensen. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> *Updated Sept. 30, 2013, 5:14 p.m.* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> *Repository: * cloudstack-git >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Description >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> With custom storage plugins comes the need >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to prep the KVM host prior to utilizing the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> disks. e.g. an iscsi initiator needs to log >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> into the target and scan for the lun before >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it can be used on the host. This patch is >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> an example I developed against 4.2, minor >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> changes may be necessary to apply to >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> master, but I want to share with others who >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> are working on storage so they can ensure >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> it works for them. Please tweak as you see >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> fit. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> MigrateCommand: pass vmTO object so we can >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> see which disks/storage pool types belong >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> to the vm when migrating a VM. This >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> facilitates being able to call >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> disconnectPhysicalDisksViaVmSpec >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> VirtualMachineManagerImpl: pass >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> VirtualMachineTO when migrating so that we >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> can see which disks belong to the VM and >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> what storage pools/adaptors should be used >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> LibvirtComputingResource: add calls >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> KVMStoragePoolManager's >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> connectPhysicalDiskViaVmSpec and >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> disconnectPhysicalDiskViaVmSpec calls where >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> appropriate (when starting a vm, migrating >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> a vm). Ensure that we create 'raw' format >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> XML disk definitions when the storage >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> format is RAW. Move cleanupDisk logic to >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> storage adaptors so that each adaptor type >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> can clean up its disks in is own way. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> KVMStoragePoolManager: add >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> connectPhysicalDisk, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> disconnectPhysicalDisk, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> connectPhysicalDiskViaVmSpec, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> disconnectPhysicalDiskViaVmSpec, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> disconnectPhysicalDiskByPath. These all >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> call the specific StorageAdaptor's >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> connectPhysicalDisk, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> disconnectPhysicalDisk, or >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> disconnectPhysicalDiskByPath calls. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> KVMStorageProcessor: Call >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> connectPhysicalDisk/disconnectPhysicalDisk >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> on the storage adaptor. Whether or not this >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is implemented is up to the storage adaptor. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> LibvirtStorageAdaptor: implement dummy >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> connectPhysicalDisk/disconnectPhysicalDisk, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> move cleanupDisk logic from >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> LibvirtComputingResource to >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> disconnectPhysicalDiskByPath >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> StorageAdaptor: define >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> connectPhysicalDisk/disconnectPhysicalDisk/disconnectPhysicalDiskByPath >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> in the interface >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Testing >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Basic testing with my storage adaptor >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Diffs >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> core/src/com/cloud/agent/api/MigrateCommand.java >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (5042b8c) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (3ee811f) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (e09c9ba) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (c69f9b0) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (123a9f1) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (4956d8d) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> server/src/com/cloud/vm/VirtualMachineManagerImpl.java >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (d46bbb0) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> View >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Diff<https://reviews.apache.org/r/14381/diff/> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> *Senior CloudStack Developer, SolidFire >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Inc.* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Advancing the way the world uses the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> *™* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> *Senior CloudStack Developer, SolidFire >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Inc.* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Advancing the way the world uses the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> *™* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Advancing the way the world uses the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> *™* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>>>>>>>>>>>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>>>>>>>>>>>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>>>>>>>>>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Advancing the way the world uses the >>>>>>>>>>>>>>>>>>>>>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> *™* >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>>>>>>>>>>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>>>>>>>>>>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>>>>>>>>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>>>>>>>>>>>>>>>>>> Advancing the way the world uses the >>>>>>>>>>>>>>>>>>>>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>>>>>>>>>>>>>>>>>>>> *™* >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>>>>>>>>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>>>>>>>>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>>>>>>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>>>>>>>>>>>>>>>> Advancing the way the world uses the >>>>>>>>>>>>>>>>>>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>>>>>>>>>>>>>>>>>> *™* >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>>>>>>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>>>>>>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>>>>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>>>>>>>>>>>>>> Advancing the way the world uses the >>>>>>>>>>>>>>>>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>>>>>>>>>>>>>>>> *™* >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>>>>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>>>>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>>>>>>>>>>>> Advancing the way the world uses the >>>>>>>>>>>>>>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>>>>>>>>>>>>>> *™* >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>>>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>>>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>>>>>>>>>>> Advancing the way the world uses the >>>>>>>>>>>>>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>>>>>>>>>>>>> *™* >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>>>>>>>>>> Advancing the way the world uses the >>>>>>>>>>>>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>>>>>>>>>>>> *™* >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>>>>>>>> Advancing the way the world uses the >>>>>>>>>>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>>>>>>>>>> *™* >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>>>>>>> Advancing the way the world uses the >>>>>>>>>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>>>>>>>>> *™* >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>>>>>> Advancing the way the world uses the >>>>>>>>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>>>>>>>> *™* >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>>>> Advancing the way the world uses the >>>>>>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>>>>>> *™* >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>> Advancing the way the world uses the >>>>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>>>> *™* >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>> Advancing the way the world uses the >>>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>>> *™* >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> *Mike Tutkowski* >>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>> o: 303.746.7302 >>>>>>>>>> Advancing the way the world uses the >>>>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>>>> *™* >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> *Mike Tutkowski* >>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>> o: 303.746.7302 >>>>>>>> Advancing the way the world uses the >>>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>>> *™* >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Mike Tutkowski* >>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>> e: mike.tutkow...@solidfire.com >>>>>>> o: 303.746.7302 >>>>>>> Advancing the way the world uses the >>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>> *™* >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Mike Tutkowski* >>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>> e: mike.tutkow...@solidfire.com >>>>>> o: 303.746.7302 >>>>>> Advancing the way the world uses the >>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>> *™* >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> *Mike Tutkowski* >>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>> e: mike.tutkow...@solidfire.com >>>>> o: 303.746.7302 >>>>> Advancing the way the world uses the >>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>> *™* >>>>> >>>> >>>> >>>> >>>> -- >>>> *Mike Tutkowski* >>>> *Senior CloudStack Developer, SolidFire Inc.* >>>> e: mike.tutkow...@solidfire.com >>>> o: 303.746.7302 >>>> Advancing the way the world uses the >>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>> *™* >>>> >>> >>> >> > > > -- > *Mike Tutkowski* > *Senior CloudStack Developer, SolidFire Inc.* > e: mike.tutkow...@solidfire.com > o: 303.746.7302 > Advancing the way the world uses the > cloud<http://solidfire.com/solution/overview/?video=play> > *™* > -- *Mike Tutkowski* *Senior CloudStack Developer, SolidFire Inc.* e: mike.tutkow...@solidfire.com o: 303.746.7302 Advancing the way the world uses the cloud<http://solidfire.com/solution/overview/?video=play> *™*