Return-Path: X-Original-To: apmail-cloudstack-dev-archive@www.apache.org Delivered-To: apmail-cloudstack-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0F16D105C0 for ; Tue, 3 Sep 2013 06:19:11 +0000 (UTC) Received: (qmail 46576 invoked by uid 500); 3 Sep 2013 06:19:10 -0000 Delivered-To: apmail-cloudstack-dev-archive@cloudstack.apache.org Received: (qmail 46424 invoked by uid 500); 3 Sep 2013 06:18:52 -0000 Mailing-List: contact dev-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list dev@cloudstack.apache.org Received: (qmail 46411 invoked by uid 99); 3 Sep 2013 06:18:49 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 03 Sep 2013 06:18:49 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of seizadi@infoblox.com designates 205.234.19.209 as permitted sender) Received: from [205.234.19.209] (HELO mx1.infoblox.com) (205.234.19.209) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 03 Sep 2013 06:18:43 +0000 X-ASG-Debug-ID: 1378189099-0454fc7d0b6b4270001-AbHazq Received: from x2008hub1.infoblox.com (x2008hub1.infoblox.com [205.234.19.248]) by mx1.infoblox.com with ESMTP id A9gRBtyFS0AZV8Hl for ; Mon, 02 Sep 2013 23:18:19 -0700 (PDT) X-Barracuda-Envelope-From: seizadi@infoblox.com X-Barracuda-Apparent-Source-IP: 205.234.19.248 Received: from X2008MB1.infoblox.com ([fe80::cc0b:9da5:6863:8541]) by x2008hub1.infoblox.com ([fe80::a3:8989:52dd:1d09%10]) with mapi id 14.02.0298.004; Mon, 2 Sep 2013 23:18:19 -0700 From: Soheil Eizadi To: "dev@cloudstack.apache.org" Subject: RE: NetworkElements: configure the provider to enable the provider? Thread-Topic: NetworkElements: configure the provider to enable the provider? X-ASG-Orig-Subj: RE: NetworkElements: configure the provider to enable the provider? Thread-Index: AQHOpiVMOKtlYGqG6kuSyDz0HBZu2Jmzfmcc Date: Tue, 3 Sep 2013 06:18:18 +0000 Message-ID: <6717EC2E5A665A40A5AF626D7D4FA90625E242B7@x2008mb1.infoblox.com> References: <20130831083617.GA9446@cloud-2.local> In-Reply-To: <20130831083617.GA9446@cloud-2.local> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [76.21.3.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Barracuda-Connect: x2008hub1.infoblox.com[205.234.19.248] X-Barracuda-Start-Time: 1378189099 X-Barracuda-URL: http://205.234.19.209:8000/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at infoblox.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=9.0 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.140191 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Checked: Checked by ClamAV on apache.org Hi Prasanna,=0A= The limitation you have highlighted "enable network service providers witho= ut actually adding the device" is not enforced by the NetworkManager but by= the design of the NetworkElement.=0A= =0A= If you have not registered a device with the Netscaler NetworkElement it is= rejecting the Enable. The NetworkManager calls the NetworkElement isReady(= ) and that determines if it is ready to accept the call to Enable. I assume= that NetScaler NetworkElement code can not handle subsequent calls to Prep= are() etc. unless a device is configured.=0A= =0A= I assume those other NetworkElements you have highlighted, have chosen to r= eturn True on that call, and handle the subsequent calls e.g. Prepare(), wh= en there is not a device, my NetworkElement behaves this way so that it can= be enabled early when there is no device.=0A= =0A= There is a design pattern to enable some Network Elements that offer servic= e to the Physical and Guest network in the call to createPhysicalNetwork() = in NetworkServiceImpl:=0A= =0A= .......=0A= =0A= // add VirtualRouter as the default network service provider=0A= addDefaultVirtualRouterToPhysicalNetwork(pNetwork.getId());=0A= =0A= // add security group provider to the physical network=0A= addDefaultSecurityGroupProviderToPhysicalNetwork(pNetwork.getId= ());=0A= =0A= // add VPCVirtualRouter as the defualt network service provider= =0A= addDefaultVpcVirtualRouterToPhysicalNetwork(pNetwork.getId());= =0A= =0A= // add baremetal as the defualt network service provider=0A= addDefaultBaremetalProvidersToPhysicalNetwork(pNetwork.getId())= ;=0A= =0A= //Add Internal Load Balancer element as a default network servi= ce provider=0A= addDefaultInternalLbProviderToPhysicalNetwork(pNetwork.getId())= ;=0A= =0A= // add Infoblox as the default network service provider=0A= addDefaultInfobloxProvidersToPhysicalNetwork(pNetwork.getId());= =0A= =0A= -Soheil=0A= ________________________________________=0A= From: Prasanna Santhanam [tsp@apache.org]=0A= Sent: Saturday, August 31, 2013 1:36 AM=0A= To: CloudStack Dev=0A= Subject: NetworkElements: configure the provider to enable the provider?=0A= =0A= I'm looking to enable network service providers without actually=0A= adding the device but it appears as if the addition of the device is=0A= coupled with the enabling of the provider. While this is not the case=0A= with default providers like VR, VpcVR, security groups and the=0A= InternalLbVm?=0A= =0A= What is the reason for the restriction placed on External=0A= NetworkElements? In marvin integration tests [1] we want to be able to=0A= enable the provider whilst deployment and later add VPX Netscalers per=0A= test but this is not possible since the Netscaler provider cannot be=0A= enabled during the deployment of CloudStack. The problem exists with=0A= the implementation of other providers as well like JuniperSRX,=0A= F5BigIp.=0A= =0A= Nicira and Midonet however are always ready to be enabled.=0A= =0A= I tried the following via API:=0A= =0A= $add networkserviceprovider name=3DNetscaler physicalnetworkid=3D0d1a18d5-8= 37e-4973-8b06-ff1f3a8bdbfd=0A= =0A= The netscaler element is registered successfully but disabled:=0A= mysql> select id, state, provider_name, physical_network_id from=0A= physical_network_service_providers;=0A= +----+----------+-----------------------+---------------------+=0A= | id | state | provider_name | physical_network_id |=0A= +----+----------+-----------------------+---------------------+=0A= | 1 | Enabled | VirtualRouter | 200 |=0A= | 2 | Disabled | SecurityGroupProvider | 200 |=0A= | 3 | Enabled | VpcVirtualRouter | 200 |=0A= | 4 | Enabled | InternalLbVm | 200 |=0A= | 5 | Disabled | Netscaler | 200 |=0A= | 6 | Disabled | JuniperSRX | 200 |=0A= +----+----------+-----------------------+---------------------+=0A= 6 rows in set (0.00 sec)=0A= =0A= So I enable it using:=0A= =0A= $update networkserviceprovider id=3D1a266697-838a-4322-b894-235bdc158da1 st= ate=3DEnabled=0A= =0A= Async job d830d7aa-2a1e-44a4-a736-4885a668e8a6 failed=0A= Error 530, Provider is not ready, cannot Enable the provider, please config= ure the provider first=0A= accountid =3D e31a616a-1212-11e3-8a03-ef159ac306d1=0A= cmd =3D org.apache.cloudstack.api.command.admin.network.UpdateNetworkServic= eProviderCmd=0A= created =3D 2013-08-31T13:58:12+0530=0A= jobid =3D d830d7aa-2a1e-44a4-a736-4885a668e8a6=0A= jobprocstatus =3D 0=0A= jobresult:=0A= errorcode =3D 530=0A= errortext =3D Provider is not ready, cannot Enable the provider, please=0A= configure the provider first=0A= jobresultcode =3D 530=0A= jobresulttype =3D object=0A= jobstatus =3D 2=0A= userid =3D e31a7560-1212-11e3-8a03-ef159ac306d1=0A= =0A= These steps feel counter-intuitive and the error message is a little confus= ing too.=0A= It says I need to configure the provider to enable the provider?=0A= =0A= [1] https://reviews.apache.org/r/13889/=0A= --=0A= Prasanna.,=0A= =0A= ------------------------=0A= Powered by BigRock.com=0A= =0A=