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