cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tutkowski, Mike" <Mike.Tutkow...@netapp.com>
Subject Re: Can't create Basic Zone with master
Date Thu, 12 Oct 2017 20:50:10 GMT
It looks like this commit broke support for Basic Zones:

a06530d (Daan: Can you look into this?)

4.10

@Override
protected boolean canHandle(NetworkOffering offering, DataCenter dc) {
    // this guru handles system Direct pod based network
    if (dc.getNetworkType() == NetworkType.Basic && isMyTrafficType(offering.getTrafficType()))
{
        return true;
    } else {
        s_logger.trace("We only take care of Guest Direct Pod based networks");
        return false;
    }
}

master

@Override
protected boolean canHandle(NetworkOffering offering, DataCenter dc, PhysicalNetwork physnet)
{
    // this guru handles system Direct pod based network
    if (dc.getNetworkType() == NetworkType.Basic && isMyTrafficType(offering.getTrafficType())
&& isMyIsolationMethod(physnet)) {
        return true;
    } else {
        s_logger.trace("We only take care of Guest Direct Pod based networks");
        return false;
    }
}

isMyIsolationMethod(physnet) fails (new to master):

    protected boolean isMyIsolationMethod(PhysicalNetwork physicalNetwork) {
        for (IsolationMethod m : _isolationMethods) {
            if (physicalNetwork.getIsolationMethods().contains(m.toString())) {
                return true;
            }
        }
        return false;
    }

_isolationMethods = new IsolationMethod[] { new IsolationMethod("VLAN") };

_isolationMethods is only of size = 1 and m.toString() returns “VLAN” whereas physicalNetwork.getIsolationMethods()
is of size = 0. This method returns false and none of the network gurus can support the creation
of a Basic Zone.

On 10/12/17, 7:03 AM, "Tutkowski, Mike" <Mike.Tutkowski@netapp.com> wrote:

    Yes, I can debug it more. I’m in the middle of some other task at the moment, so I might
not be able to get to it until later this evening. In the meanwhile, I figured I’d send
out the previous e-mail in case it might sound like something one of our networking devs recognize.
:) Thanks!
    
    On Oct 12, 2017, at 12:18 AM, Rohit Yadav <rohit.yadav@shapeblue.com<mailto:rohit.yadav@shapeblue.com>>
wrote:
    
    Hi Mike,
    
    
    I think you can repeat the process with 4.10 and compare with master as to which NetworkGuru
is supposed to design and return you a network, then you can do some git log tracing to find
what was changed and why the respective network guru is not returning a network. It could
be environment/config issue or change/regression in code.
    
    
    For local/nfs storage, and all three hypervisor no major regression was seen in last trillian
smoke test runs.
    
    
    - Rohit
    
    ________________________________
    From: Tutkowski, Mike <Mike.Tutkowski@netapp.com<mailto:Mike.Tutkowski@netapp.com>>
    Sent: Thursday, October 12, 2017 1:17:50 AM
    To: dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>
    Subject: Re: Can't create Basic Zone with master
    
    Hi Rohit,
    
    I walked through the debugger with this and now have more info:
    
    The following network gurus are leveraged to create networks successfully:
    
    PublicNetworkGuru
    PodBasedNetworkGuru
    ControlNetworkGuru
    StorageNetworkGuru
    
    Once the zone-creation wizard reaches the “Enabling Security Group provider” part,
NetworkOrchestrator.setupNetwork is again invoked and this time throws an exception.
    
    It walks through all of its network gurus and none of them returns a pointer to a Network
object.
    
               for (final NetworkGuru guru : networkGurus) {
                   final Network network = guru.design(offering, plan, predefined, owner);
                   if (network == null) {
                       continue;
                   }
    
    Since no Network object was returned, the list of Network objects is empty and an exception
is thrown.
    
    Thanks,
    Mike
    
    On 10/11/17, 1:44 AM, "Rohit Yadav" <rohit.yadav@shapeblue.com<mailto:rohit.yadav@shapeblue.com>>
wrote:
    
       Mike,
    
    
       Can you re-deploy a fresh environment and see what's failing, stepping through the
workflow. The specific line it's throwing exception is caused when there are no network (network
size is 0) setup:
    
    
       https://github.com/apache/cloudstack/blob/master/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java#L715
    
    
       - Rohit
    
       ________________________________
       From: Tutkowski, Mike <Mike.Tutkowski@netapp.com<mailto:Mike.Tutkowski@netapp.com>>
       Sent: Wednesday, October 11, 2017 6:08:10 AM
       To: dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>
       Subject: Can't create Basic Zone with master
    
       Hi,
    
       I was trying to run the managed-storage regression test suite on PR 2018 (https://github.com/apache/cloudstack/pull/2081)
when I realized I couldn’t create a Basic Zone (using XenServer) with that code.
    
       I then took a step back from that PR and tried to create a Basic Zone (again, with
XenServer) using master (specifically f1c01a5).
    
       After this didn’t work, I tried with the tag 4.10.0.0 (9d2893d) and it worked.
    
       As such, it appears somewhere along the way that we have introduced code into master
that has broken the use case of creating a Basic Zone (at least with XenServer).
    
       It seems to be networking related.
    
       Here is the stack trace I’m getting:
    
       ERROR [c.c.a.ApiServer] (qtp708058685-279:ctx-a3ea1e98 ctx-b18fc696) (logid:ce86e7d9)
unhandled exception executing api command: [Ljava.lang.String;@50361bfa
       com.cloud.utils.exception.CloudRuntimeException: Unable to convert network offering
with specified id to network profile
       at org.apache.cloudstack.engine.orchestration.NetworkOrchestrator.setupNetwork(NetworkOrchestrator.java:715)
       at org.apache.cloudstack.engine.orchestration.NetworkOrchestrator$10.doInTransaction(NetworkOrchestrator.java:2296)
       at org.apache.cloudstack.engine.orchestration.NetworkOrchestrator$10.doInTransaction(NetworkOrchestrator.java:2250)
       at com.cloud.utils.db.Transaction$2.doInTransaction(Transaction.java:50)
       at com.cloud.utils.db.Transaction.execute(Transaction.java:40)
       at com.cloud.utils.db.Transaction.execute(Transaction.java:47)
       at org.apache.cloudstack.engine.orchestration.NetworkOrchestrator.createGuestNetwork(NetworkOrchestrator.java:2250)
       at com.cloud.network.NetworkServiceImpl$4.doInTransaction(NetworkServiceImpl.java:1411)
       at com.cloud.network.NetworkServiceImpl$4.doInTransaction(NetworkServiceImpl.java:1359)
       at com.cloud.utils.db.Transaction.execute(Transaction.java:40)
       at com.cloud.network.NetworkServiceImpl.commitNetwork(NetworkServiceImpl.java:1359)
       at com.cloud.network.NetworkServiceImpl.createGuestNetwork(NetworkServiceImpl.java:1322)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:498)
       at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
       at org.apache.cloudstack.network.contrail.management.EventUtils$EventInterceptor.invoke(EventUtils.java:107)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
       at com.cloud.event.ActionEventInterceptor.invoke(ActionEventInterceptor.java:51)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
       at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
       at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
       at com.sun.proxy.$Proxy231.createGuestNetwork(Unknown Source)
       at org.apache.cloudstack.api.command.admin.network.CreateNetworkCmdByAdmin.execute(CreateNetworkCmdByAdmin.java:58)
       at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:150)
       at com.cloud.api.ApiServer.queueCommand(ApiServer.java:728)
       at com.cloud.api.ApiServer.handleRequest(ApiServer.java:552)
       at com.cloud.api.ApiServlet.processRequestInContext(ApiServlet.java:297)
       at com.cloud.api.ApiServlet$1.run(ApiServlet.java:129)
       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:126)
       at com.cloud.api.ApiServlet.doGet(ApiServlet.java:88)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
       at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
       at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:189)
       at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
       at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
       at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
       at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
       at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
       at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
       at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
       at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
       at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
       at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
       at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
       at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
       at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
       at org.eclipse.jetty.server.Server.handle(Server.java:499)
       at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
       at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:258)
       at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
       at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
       at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
       at java.lang.Thread.run(Thread.java:745)
    
       Any of our networking gurus want to take a look at this?
    
       Thanks!
       Mike
    
       rohit.yadav@shapeblue.com<mailto:rohit.yadav@shapeblue.com>
       www.shapeblue.com<http://www.shapeblue.com><http://www.shapeblue.com>
       53 Chandos Place, Covent Garden, London  WC2N 4HSUK
       @shapeblue
    
    
    
    
    
    
    rohit.yadav@shapeblue.com<mailto:rohit.yadav@shapeblue.com>
    www.shapeblue.com<http://www.shapeblue.com>
    53 Chandos Place, Covent Garden, London  WC2N 4HSUK
    @shapeblue
    
    
    
    

Mime
View raw message