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>
> *™*
>

Reply via email to