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