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 boolean connectPhysicalDisksViaVmSpec(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>
>> *™*
>>
>
>

Reply via email to