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:19:22 UTC

[jira] [Commented] (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:comment-tabpanel&focusedCommentId=13698843#comment-13698843 ] 

Prasanna Santhanam commented on CLOUDSTACK-3348:
------------------------------------------------

>From the UI:

mysql> select * from network_offerings where id=15\G
*************************** 1. row ***************************
                       id: 15
                     name: test-nospecifyvlan
                     uuid: ab445c32-2dab-416a-9040-5edadeef0e06
              unique_name: test
             display_text: test
                  nw_rate: NULL
                  mc_rate: 10
             traffic_type: Guest
                     tags: NULL
              system_only: 0
             specify_vlan: 0
      service_offering_id: NULL
            conserve_mode: 0
                  created: 2013-07-03 10:53:54
                  removed: NULL
                  default: 0
             availability: Optional
     dedicated_lb_service: 1
shared_source_nat_service: 0
                 sort_key: 0
 redundant_router_service: 0
                    state: Enabled
               guest_type: Isolated
       elastic_ip_service: 0
  eip_associate_public_ip: 0
       elastic_lb_service: 0
        specify_ip_ranges: 0
                   inline: 0
            is_persistent: 0
              internal_lb: 0
                public_lb: 1
    egress_default_policy: 1
1 row in set (0.00 sec)


>From the API:
mysql> select * from network_offerings where id=16\G
*************************** 1. row ***************************
                       id: 16
                     name: Network offering-VR services-SBVZBI
                     uuid: 8d04fee9-c2cb-4b36-94c5-56998aeb3aee
              unique_name: Network offering-VR services-SBVZBI
             display_text: Network offering-VR services-ITGGMO
                  nw_rate: NULL
                  mc_rate: 10
             traffic_type: Guest
                     tags: NULL
              system_only: 0
             specify_vlan: 0
      service_offering_id: NULL
            conserve_mode: 0
                  created: 2013-07-03 10:55:44
                  removed: NULL
                  default: 0
             availability: Optional
     dedicated_lb_service: 0
shared_source_nat_service: 0
                 sort_key: 0
 redundant_router_service: 0
                    state: Enabled
               guest_type: Isolated
       elastic_ip_service: 0
  eip_associate_public_ip: 0
       elastic_lb_service: 0
        specify_ip_ranges: 0
                   inline: 0
            is_persistent: 0
              internal_lb: 0
                public_lb: 1
    egress_default_policy: 1
1 row in set (0.00 sec)

                
> 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: Blocker
>             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