Cool...sounds good

Does anyone have any thoughts on the system VM issue (with them not
starting on Xen or KVM)?

Console proxy is not in correct state to be started: Stopped


On Thu, Jan 2, 2014 at 12:35 PM, Daan Hoogland <daan.hoogl...@gmail.com>wrote:

> hey guys,
>
> have been sick in bed all day, sorry to react slowly. I saw your
> explanation Marcus and I should check for the case that only one of
> the two is null and return false.
> I will update and if you haven't already I will put in a fix.
>
> regards,
> Daan
>
> On Thu, Jan 2, 2014 at 8:55 AM, Marcus Sorensen <shadow...@gmail.com>
> wrote:
> > There are some other issues near that commit as well. A fix for
> > CLOUDSTACK-5502 that makes 'untagged' invalid needs to be backed out.
> >
> >
> >
> > On Thu, Jan 2, 2014 at 12:14 AM, Mike Tutkowski
> > <mike.tutkow...@solidfire.com> wrote:
> >> Yeah, this does appear to be a bug.
> >>
> >> I re-ran the attempted creation of my CloudStack cloud with a different
> >> XenServer host and was left in the same state (NPE).
> >>
> >> I plan to try this with KVM tomorrow (er, later today, I guess).
> >>
> >>
> >> On Wed, Jan 1, 2014 at 11:10 PM, Mike Tutkowski <
> >> mike.tutkow...@solidfire.com> wrote:
> >>
> >>> Looks like Daan added the method:
> >>>
> >>>
> >>>
> https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=blobdiff;f=utils/src/com/cloud/utils/net/NetUtils.java;h=a315b935495469648a0a82a25c39c9c53f0226f6;hp=11a483c3f7e420056dce7893a86946de5c40e244;hb=94abbb1367bc817bae98f369e78679f0ddb7727f;hpb=6897984970df1455fa1ee0490157758ccfb68cff
> >>>
> >>>
> >>> On Wed, Jan 1, 2014 at 10:33 PM, Mike Tutkowski <
> >>> mike.tutkow...@solidfire.com> wrote:
> >>>
> >>>> OK, thanks!
> >>>>
> >>>>
> >>>> On Wed, Jan 1, 2014 at 10:32 PM, Marcus Sorensen <shadow...@gmail.com
> >wrote:
> >>>>
> >>>>> git blame will show you the commit and committer.
> >>>>>
> >>>>> On Wed, Jan 1, 2014 at 10:19 PM, Mike Tutkowski
> >>>>> <mike.tutkow...@solidfire.com> wrote:
> >>>>> > Yeah, but I wasn't sure of the coder's intend and if your
> replacement
> >>>>> code
> >>>>> > meet their expectations, so I didn't change it. I was hoping
> someone
> >>>>> would
> >>>>> > claim the code and chime in. :)
> >>>>> >
> >>>>> >
> >>>>> > On Wed, Jan 1, 2014 at 10:16 PM, Marcus Sorensen <
> shadow...@gmail.com
> >>>>> >wrote:
> >>>>> >
> >>>>> >> Yeah, it would be clearer if they were checked separately:
> >>>>> >>
> >>>>> >> if (one == null || one.isEmpty()) {
> >>>>> >>     return true;
> >>>>> >> } else if ( other == null || other.isEmpty()) [
> >>>>> >>     return true;
> >>>>> >> }
> >>>>> >>
> >>>>> >> or something like that.
> >>>>> >>
> >>>>> >> On Wed, Jan 1, 2014 at 10:00 PM, Mike Tutkowski
> >>>>> >> <mike.tutkow...@solidfire.com> wrote:
> >>>>> >> > I should say this check doesn't have to catch it...it might,
> but it
> >>>>> >> doesn't
> >>>>> >> > have to (depends on the value of one).
> >>>>> >> >
> >>>>> >> >
> >>>>> >> > On Wed, Jan 1, 2014 at 9:59 PM, Mike Tutkowski <
> >>>>> >> mike.tutkow...@solidfire.com
> >>>>> >> >> wrote:
> >>>>> >> >
> >>>>> >> >> Yeah, in my case I'm just setting up a basic zone with a
> XenServer
> >>>>> host.
> >>>>> >> >>
> >>>>> >> >> The code in NetUtils checks for null or "" on the variable in
> >>>>> question
> >>>>> >> >> that's passed in. However, in a certain case, null for that
> >>>>> variable can
> >>>>> >> >> slip by and lead to a NPE.
> >>>>> >> >>
> >>>>> >> >>         if ((one == null || one.equals(""))
> >>>>> >> >>
> >>>>> >> >>                 &&
> >>>>> >> >>
> >>>>> >> >>                 (other == null || other.equals("")))
> >>>>> >> >>
> >>>>> >> >>         {
> >>>>> >> >>
> >>>>> >> >>             return true;
> >>>>> >> >>
> >>>>> >> >>         }
> >>>>> >> >>
> >>>>> >> >> if other == null, this will not catch it and it can throw a NPE
> >>>>> later.
> >>>>> >> >>
> >>>>> >> >>
> >>>>> >> >> On Wed, Jan 1, 2014 at 9:51 PM, Marcus Sorensen <
> >>>>> shadow...@gmail.com
> >>>>> >> >wrote:
> >>>>> >> >>
> >>>>> >> >>> You can do "git blame (file)" and it will show you each line
> and
> >>>>> the
> >>>>> >> >>> commit. You can also do a git log on the file.  The issue may
> not
> >>>>> be as
> >>>>> >> >>> obvious as that, though, there may be something totally
> unrelated
> >>>>> >> causing
> >>>>> >> >>> that object to end up null in this code. Or it may be
> specific to
> >>>>> your
> >>>>> >> >>> setup, some obscure bug nobody else is hitting.
> >>>>> >> >>> On Jan 1, 2014 4:22 PM, "Mike Tutkowski" <
> >>>>> mike.tutkow...@solidfire.com
> >>>>> >> >
> >>>>> >> >>> wrote:
> >>>>> >> >>>
> >>>>> >> >>> > This is in 4.3.
> >>>>> >> >>> >
> >>>>> >> >>> > I know the file is NetUtils, but I'm not sure in Git how to
> >>>>> look at
> >>>>> >> the
> >>>>> >> >>> > history of a particular file like I could do in SVN.
> >>>>> >> >>> >
> >>>>> >> >>> >
> >>>>> >> >>> > On Wed, Jan 1, 2014 at 3:55 PM, Marcus Sorensen <
> >>>>> shadow...@gmail.com
> >>>>> >> >
> >>>>> >> >>> > wrote:
> >>>>> >> >>> >
> >>>>> >> >>> > > Which branch? I see these in master, you can check out the
> >>>>> commit
> >>>>> >> just
> >>>>> >> >>> > > before these and see if it helps:
> >>>>> >> >>> > >
> >>>>> >> >>> > > commit b477e4e830597100f0c0171dd8e56f4033bd07aa
> >>>>> >> >>> > > Author: Daan Hoogland <dhoogl...@schubergphilis.com>
> >>>>> >> >>> > > Date:   Tue Dec 31 12:52:51 2013 +0100
> >>>>> >> >>> > >
> >>>>> >> >>> > >     some xtra cases
> >>>>> >> >>> > >
> >>>>> >> >>> > > commit 2cf356e047e26977c1d294fafc57e986c04fc5f4
> >>>>> >> >>> > > Author: Daan Hoogland <dhoogl...@schubergphilis.com>
> >>>>> >> >>> > > Date:   Tue Dec 31 12:25:17 2013 +0100
> >>>>> >> >>> > >
> >>>>> >> >>> > >     isSameIsolationId
> >>>>> >> >>> > >
> >>>>> >> >>> > > commit 04570eefed9a0ee1eca1fd700ed5732ba67150ce
> >>>>> >> >>> > > Author: Daan Hoogland <d...@onecht.net>
> >>>>> >> >>> > > Date:   Fri Dec 20 16:47:58 2013 +0100
> >>>>> >> >>> > >
> >>>>> >> >>> > >     check vlans and other isolation types
> >>>>> >> >>> > >
> >>>>> >> >>> > > commit d50517e931e68daef6735bd18273499fee0d4649
> >>>>> >> >>> > > Author: Sateesh Chodapuneedi <sate...@apache.org>
> >>>>> >> >>> > > Date:   Tue Dec 31 07:16:35 2013 +0530
> >>>>> >> >>> > >
> >>>>> >> >>> > > I also have a commit just after these, but it was pretty
> >>>>> minor and
> >>>>> >> >>> > > only to KVM agent code.
> >>>>> >> >>> > >
> >>>>> >> >>> > > On Wed, Jan 1, 2014 at 3:27 PM, Mike Tutkowski
> >>>>> >> >>> > > <mike.tutkow...@solidfire.com> wrote:
> >>>>> >> >>> > > > Hey guys,
> >>>>> >> >>> > > >
> >>>>> >> >>> > > > The NPE I saw last night was related to "isolation id."
> Is
> >>>>> it
> >>>>> >> >>> possible
> >>>>> >> >>> > > this
> >>>>> >> >>> > > > NPE is related to something new that was put that you
> are
> >>>>> talking
> >>>>> >> >>> about
> >>>>> >> >>> > > > here?
> >>>>> >> >>> > > >
> >>>>> >> >>> > > > Thank!
> >>>>> >> >>> > > >
> >>>>> >> >>> > > > ERROR [c.c.a.ApiServer] (1583467451@qtp-185135566-2
> >>>>> :ctx-ae5d80b2
> >>>>> >> >>> > > > ctx-5c12c4d9) unhandled exception executing api command:
> >>>>> >> >>> > > createVlanIpRange
> >>>>> >> >>> > > > java.lang.NullPointerException
> >>>>> >> >>> > > >     at
> >>>>> >> >>> >
> >>>>> com.cloud.utils.net.NetUtils.isSameIsolationId(NetUtils.java:1419)
> >>>>> >> >>> > > >     at com.cloud.configuration.ConfigurationManagerImpl.
> >>>>> >> >>> > > >
> >>>>> createVlanAndPublicIpRange(ConfigurationManagerImpl.java:2474)
> >>>>> >> >>> > > >     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:616)
> >>>>> >> >>> > > >     at org.springframework.aop.support.AopUtils.
> >>>>> >> >>> > > > invokeJoinpointUsingReflection(AopUtils.java:317)
> >>>>> >> >>> > > >     at
> >>>>> >> org.springframework.aop.framework.ReflectiveMethodInvocation.
> >>>>> >> >>> > > > invokeJoinpoint(ReflectiveMethodInvocation.java:183)
> >>>>> >> >>> > > >     at
> >>>>> >> >>> > >
> >>>>> >>
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
> >>>>> >> >>> > > > ReflectiveMethodInvocation.java:150)
> >>>>> >> >>> > > >     at com.cloud.event.ActionEventInterceptor.invoke(
> >>>>> >> >>> > > > ActionEventInterceptor.java:50)
> >>>>> >> >>> > > >     at
> >>>>> >> >>> > >
> >>>>> >>
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
> >>>>> >> >>> > > > ReflectiveMethodInvocation.java:161)
> >>>>> >> >>> > > >     at
> >>>>> >> >>>
> org.springframework.aop.interceptor.ExposeInvocationInterceptor.
> >>>>> >> >>> > > > invoke(ExposeInvocationInterceptor.java:91)
> >>>>> >> >>> > > >     at
> >>>>> >> >>> > >
> >>>>> >>
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
> >>>>> >> >>> > > > ReflectiveMethodInvocation.java:172)
> >>>>> >> >>> > > >     at
> org.springframework.aop.framework.JdkDynamicAopProxy.
> >>>>> >> >>> > > > invoke(JdkDynamicAopProxy.java:204)
> >>>>> >> >>> > > >     at
> sun.proxy.$Proxy96.createVlanAndPublicIpRange(Unknown
> >>>>> >> Source)
> >>>>> >> >>> > > >     at org.apache.cloudstack.api.command.admin.vlan.
> >>>>> >> >>> > > >
> CreateVlanIpRangeCmd.execute(CreateVlanIpRangeCmd.java:211)
> >>>>> >> >>> > > >     at
> >>>>> >> com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:161)
> >>>>> >> >>> > > >     at
> >>>>> com.cloud.api.ApiServer.queueCommand(ApiServer.java:530)
> >>>>> >> >>> > > >     at
> >>>>> com.cloud.api.ApiServer.handleRequest(ApiServer.java:373)
> >>>>> >> >>> > > >     at
> >>>>> >> >>> > >
> >>>>> >>
> com.cloud.api.ApiServlet.processRequestInContext(ApiServlet.java:322)
> >>>>> >> >>> > > >     at
> >>>>> com.cloud.api.ApiServlet.access$000(ApiServlet.java:52)
> >>>>> >> >>> > > >     at
> com.cloud.api.ApiServlet$1.run(ApiServlet.java:114)
> >>>>> >> >>> > > >     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
> >>>>> >> com.cloud.api.ApiServlet.processRequest(ApiServlet.java:111)
> >>>>> >> >>> > > >
> >>>>> >> >>> > > >
> >>>>> >> >>> > > > On Wed, Jan 1, 2014 at 2:33 PM, Marcus Sorensen <
> >>>>> >> >>> shadow...@gmail.com>
> >>>>> >> >>> > > wrote:
> >>>>> >> >>> > > >
> >>>>> >> >>> > > >> That's just it. The isolation type *is* provided when
> >>>>> creating
> >>>>> >> >>> > > >> physical network. If I create a physical network with
> >>>>> isolation
> >>>>> >> >>> type
> >>>>> >> >>> > > >> 'VXLAN', and then add traffic type of 'Public', it
> doesn't
> >>>>> obey
> >>>>> >> it.
> >>>>> >> >>> > > >> There's physical_networks and networks, when the zone
> is
> >>>>> >> created,
> >>>>> >> >>> an
> >>>>> >> >>> > > >> entry goes in network that is Public/Vlan, hardcoded.
> The
> >>>>> Public
> >>>>> >> >>> > > >> traffic type uses this, regardless of what the
> >>>>> physical_network
> >>>>> >> its
> >>>>> >> >>> > > >> being added to says. So if we updated the the public
> >>>>> network
> >>>>> >> table
> >>>>> >> >>> row
> >>>>> >> >>> > > >> with the correct isolation method for that physical
> >>>>> network we
> >>>>> >> are
> >>>>> >> >>> > > >> adding traffic type to when we add the public traffic
> >>>>> type, that
> >>>>> >> >>> would
> >>>>> >> >>> > > >> work. It's worth noting that a zone can only have one
> >>>>> physical
> >>>>> >> >>> network
> >>>>> >> >>> > > >> with traffic type of public.
> >>>>> >> >>> > > >>
> >>>>> >> >>> > > >> On Wed, Jan 1, 2014 at 12:37 PM, Daan Hoogland <
> >>>>> >> >>> > daan.hoogl...@gmail.com
> >>>>> >> >>> > > >
> >>>>> >> >>> > > >> wrote:
> >>>>> >> >>> > > >> >> While I've got your attention, what's the deal with
> >>>>> isolation
> >>>>> >> >>> > method
> >>>>> >> >>> > > vs
> >>>>> >> >>> > > >> broadcast method? These are always set to the same
> thing
> >>>>> as far
> >>>>> >> as
> >>>>> >> >>> > I've
> >>>>> >> >>> > > >> seen.
> >>>>> >> >>> > > >> >
> >>>>> >> >>> > > >> > I've been asking this but haven't found the answer
> yet.
> >>>>> There
> >>>>> >> is
> >>>>> >> >>> an
> >>>>> >> >>> > > >> > overlap but both have some extra values the other
> hasn't.
> >>>>> >> >>> > > >> >
> >>>>> >> >>> > > >> > I don't like either of your solutions but haven't
> got a
> >>>>> good
> >>>>> >> >>> > > >> > alternative. Best would be to be able to set the
> >>>>> isolation
> >>>>> >> type
> >>>>> >> >>> on
> >>>>> >> >>> > > >> > each physical network on creation. The wizard and
> zone
> >>>>> >> creation
> >>>>> >> >>> api
> >>>>> >> >>> > > >> > command would have to be extended and allow for vlan
> as
> >>>>> >> default.
> >>>>> >> >>> > > >> >
> >>>>> >> >>> > > >> > regards,
> >>>>> >> >>> > > >> >
> >>>>> >> >>> > > >> > On Wed, Jan 1, 2014 at 8:53 AM, Marcus Sorensen <
> >>>>> >> >>> > shadow...@gmail.com>
> >>>>> >> >>> > > >> wrote:
> >>>>> >> >>> > > >> >> I suppose the answer might be to update the network
> >>>>> with the
> >>>>> >> >>> proper
> >>>>> >> >>> > > >> >> isolation method when the traffic type is added.
> Look
> >>>>> up the
> >>>>> >> >>> > physical
> >>>>> >> >>> > > >> >> network's isolation method, grab network object for
> the
> >>>>> >> public
> >>>>> >> >>> > > network,
> >>>>> >> >>> > > >> and
> >>>>> >> >>> > > >> >> set the right isolation.
> >>>>> >> >>> > > >> >> On Jan 1, 2014 12:46 AM, "Marcus Sorensen" <
> >>>>> >> shadow...@gmail.com
> >>>>> >> >>> >
> >>>>> >> >>> > > wrote:
> >>>>> >> >>> > > >> >>
> >>>>> >> >>> > > >> >>>   I ran into an issue today that I'm still trying
> to
> >>>>> wrap my
> >>>>> >> >>> head
> >>>>> >> >>> > > >> >>> around, and I wanted to bounce this off of you
> guys. I
> >>>>> have
> >>>>> >> a
> >>>>> >> >>> > > physical
> >>>>> >> >>> > > >> >>> network whose isolation method is set to 'VXLAN'
> >>>>> (v4.3+). I
> >>>>> >> >>> add my
> >>>>> >> >>> > > >> >>> Public traffic type to it. I'd assume that nics
> >>>>> generated
> >>>>> >> for
> >>>>> >> >>> > public
> >>>>> >> >>> > > >> >>> traffic would have the standard vxlan://  URI for
> >>>>>  isolation
> >>>>> >> >>> URI
> >>>>> >> >>> > and
> >>>>> >> >>> > > >> >>> broadcast URI, but they just have a vlan://.
> Digging
> >>>>> into
> >>>>> >> it,
> >>>>> >> >>> it
> >>>>> >> >>> > > seems
> >>>>> >> >>> > > >> >>> that public traffic is hard-coded to
> >>>>> >> BroadcastDomainType.Vlan.
> >>>>> >> >>> I
> >>>>> >> >>> > > fixed
> >>>>> >> >>> > > >> >>> this fairly easily for my testing, there were only
> a
> >>>>> few
> >>>>> >> >>> places to
> >>>>> >> >>> > > >> >>> fix, by pulling the BroadcastDomainType from the
> >>>>> network
> >>>>> >> object
> >>>>> >> >>> > > rather
> >>>>> >> >>> > > >> >>> than hardcoding it, but that found another problem.
> >>>>> This
> >>>>> >> only
> >>>>> >> >>> > works
> >>>>> >> >>> > > if
> >>>>> >> >>> > > >> >>> I change the broadcast type in the 'networks' mysql
> >>>>> table by
> >>>>> >> >>> hand,
> >>>>> >> >>> > > as
> >>>>> >> >>> > > >> >>> during zone deployment the public network creation
> is
> >>>>> also
> >>>>> >> >>> > > hard-coded
> >>>>> >> >>> > > >> >>> to vlan.
> >>>>> >> >>> > > >> >>>
> >>>>> >> >>> > > >> >>>   I'm not sure how to go about fixing this, since
> the
> >>>>> >> Public,
> >>>>> >> >>> > > Control,
> >>>>> >> >>> > > >> >>> Management networks are created upon zone
> deployment,
> >>>>> (see
> >>>>> >> >>> > > >> >>> createDefaultSystemNetworks). The immediate thing
> that
> >>>>> >> jumped
> >>>>> >> >>> out
> >>>>> >> >>> > > was
> >>>>> >> >>> > > >> >>> a config variable for public isolation method, set
> >>>>> prior to
> >>>>> >> >>> zone
> >>>>> >> >>> > > >> >>> deployment, or perhaps even one that overrides
> what's
> >>>>> in the
> >>>>> >> >>> > table.
> >>>>> >> >>> > > >> >>>
> >>>>> >> >>> > > >> >>>   While I've got your attention, what's the deal
> with
> >>>>> >> isolation
> >>>>> >> >>> > > method
> >>>>> >> >>> > > >> >>> vs broadcast method? These are always set to the
> same
> >>>>> thing
> >>>>> >> as
> >>>>> >> >>> far
> >>>>> >> >>> > > as
> >>>>> >> >>> > > >> >>> I've seen.
> >>>>> >> >>> > > >> >>>
> >>>>> >> >>> > > >>
> >>>>> >> >>> > > >
> >>>>> >> >>> > > >
> >>>>> >> >>> > > >
> >>>>> >> >>> > > > --
> >>>>> >> >>> > > > *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