You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Prasanna Santhanam (JIRA)" <ji...@apache.org> on 2013/07/03 13:26:25 UTC

[jira] [Updated] (CLOUDSTACK-3348) network creation fails if serviceCapabilityList not set to dedicated for LB when LB is done by VR

     [ https://issues.apache.org/jira/browse/CLOUDSTACK-3348?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Prasanna Santhanam updated CLOUDSTACK-3348:
-------------------------------------------

    Priority: Critical  (was: Blocker)
    
> network creation fails if serviceCapabilityList not set to dedicated for LB when LB is done by VR
> -------------------------------------------------------------------------------------------------
>
>                 Key: CLOUDSTACK-3348
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-3348
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: API, Network Controller
>    Affects Versions: 4.2.0
>            Reporter: Prasanna Santhanam
>            Priority: Critical
>             Fix For: 4.2.0
>
>
> Steps to reproduce
> 1. create a network offering from the API and enable it:
> "network_offering": {
>                                     "name": 'Network offering-VR services',
>                                     "displaytext": 'Network offering-VR services',
>                                     "guestiptype": 'Isolated',
>                                     "supportedservices": 'Dhcp,Dns,SourceNat,PortForwarding,Vpn,Firewall,Lb,UserData,StaticNat',
>                                     "traffictype": 'GUEST',
>                                     "availability": 'Optional',
>                                     "serviceProviderList": {
>                                             "Dhcp": 'VirtualRouter',
>                                             "Dns": 'VirtualRouter',
>                                             "SourceNat": 'VirtualRouter',
>                                             "PortForwarding": 'VirtualRouter',
>                                             "Vpn": 'VirtualRouter',
>                                             "Firewall": 'VirtualRouter',
>                                             "Lb": 'VirtualRouter',
>                                             "UserData": 'VirtualRouter',
>                                             "StaticNat": 'VirtualRouter',
>                                         },
>                                     },
> 2. create a network from the offering
> 3. network creation fails with following exception
> WARN  [network.lb.LoadBalancingRulesManagerImpl] (793160707@qtp-148431068-14:) Failed to create load balancer due to 
> java.security.InvalidParameterException: The IP 192.168.2.6 is already used as PortForwarding rather than Lb
> 	at com.cloud.network.NetworkModelImpl.canIpUsedForNonConserveService(NetworkModelImpl.java:391)
> 	at com.cloud.network.NetworkModelImpl.checkIpForService(NetworkModelImpl.java:1473)
> 	at com.cloud.network.lb.LoadBalancingRulesManagerImpl.createPublicLoadBalancerRule(LoadBalancingRulesManagerImpl.java:1321)
> 	at com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
> 	at org.apache.cloudstack.api.command.user.loadbalancer.CreateLoadBalancerRuleCmd.create(CreateLoadBalancerRuleCmd.java:281)
> 	at com.cloud.api.ApiDispatcher.dispatchCreateCmd(ApiDispatcher.java:101)
> 	at com.cloud.api.ApiServer.queueCommand(ApiServer.java:475)
> 	at com.cloud.api.ApiServer.handleRequest(ApiServer.java:371)
> 	at com.cloud.api.ApiServlet.processRequest(ApiServlet.java:304)
> 	at com.cloud.api.ApiServlet.doGet(ApiServlet.java:66)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> 	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
> 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
> 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
> 	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
> 	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> 	at org.mortbay.jetty.Server.handle(Server.java:326)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
> 	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> ERROR [cloud.api.ApiServer] (793160707@qtp-148431068-14:) unhandled exception executing api command: createLoadBalancerRule
> com.cloud.utils.exception.CloudRuntimeException: Failed to create load balancer rule: SSH
> 	at com.cloud.network.lb.LoadBalancingRulesManagerImpl.createPublicLoadBalancerRule(LoadBalancingRulesManagerImpl.java:1350)
> 	at com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
> 	at org.apache.cloudstack.api.command.user.loadbalancer.CreateLoadBalancerRuleCmd.create(CreateLoadBalancerRuleCmd.java:281)
> 	at com.cloud.api.ApiDispatcher.dispatchCreateCmd(ApiDispatcher.java:101)
> 	at com.cloud.api.ApiServer.queueCommand(ApiServer.java:475)
> 	at com.cloud.api.ApiServer.handleRequest(ApiServer.java:371)
> 	at com.cloud.api.ApiServlet.processRequest(ApiServlet.java:304)
> 	at com.cloud.api.ApiServlet.doGet(ApiServlet.java:66)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> 	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
> 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
> 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
> 	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
> 	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> 	at org.mortbay.jetty.Server.handle(Server.java:326)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
> 	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> The  same scenario works from the UI since the serviceCapabilityList sets the VR to do dedicated LB. but the API doesn't require this. Here's the parsed response from the UI.
> command:createNetworkOffering
> response:json
> sessionkey:f5u9C/lyjgqLM5sshzcYGsGCQ+o=
> name:test-packaging
> displayText:t
> guestIpType:Isolated
> lbType:publicLb
> servicecapabilitylist[0].service:SourceNat
> servicecapabilitylist[0].capabilitytype:SupportedSourceNatTypes
> servicecapabilitylist[0].capabilityvalue:peraccount
> servicecapabilitylist[1].service:lb
> servicecapabilitylist[1].capabilitytype:SupportedLbIsolation
> servicecapabilitylist[1].capabilityvalue:dedicated
> availability:Optional
> state:Creating
> status:Creating
> allocationstate:Creating
> supportedServices:Vpn,Dhcp,Dns,Firewall,Lb,SourceNat,StaticNat,PortForwarding
> specifyIpRanges:false
> specifyVlan:false
> isPersistent:false
> conservemode:false
> serviceProviderList[0].service:Vpn
> serviceProviderList[0].provider:VirtualRouter
> serviceProviderList[1].service:Dhcp
> serviceProviderList[1].provider:VirtualRouter
> serviceProviderList[2].service:Dns
> serviceProviderList[2].provider:VirtualRouter
> serviceProviderList[3].service:Firewall
> serviceProviderList[3].provider:VirtualRouter
> serviceProviderList[4].service:Lb
> serviceProviderList[4].provider:VirtualRouter
> serviceProviderList[5].service:SourceNat
> serviceProviderList[5].provider:VirtualRouter
> serviceProviderList[6].service:StaticNat
> serviceProviderList[6].provider:VirtualRouter
> serviceProviderList[7].service:PortForwarding
> serviceProviderList[7].provider:VirtualRouter
> traffictype:GUEST

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira