----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/23282/#review47436 -----------------------------------------------------------
Hey Suresh, Great to see this review, happy to help integrate the NuageVsp code into CloudStack. I did an initial review an put my first feedback in the line comments. I haven't tested functionality or tried to apply the patch yet, but will do that after you had a chance to review these comments. Cheers, Hugo client/tomcatconf/log4j-cloud.xml.in <https://reviews.apache.org/r/23282/#comment83259> Why do you introduce a new logfile specific for Nuage? Isn't is easier for admins if all cloudstack related messages appear in the already existing logfile that admins are familiar with? plugins/network-elements/nuage-vsp/resources/META-INF/cloudstack/vsp/vsp-defaults.ini <https://reviews.apache.org/r/23282/#comment83260> Missing Apache License Header plugins/network-elements/nuage-vsp/resources/META-INF/cloudstack/vsp/vsp-defaults.ini <https://reviews.apache.org/r/23282/#comment83261> Why introduce another configuration file? CloudStack provides options to set configuration using either network service provides or global configuration. plugins/network-elements/nuage-vsp/resources/META-INF/cloudstack/vsp/vsp-defaults.ini <https://reviews.apache.org/r/23282/#comment83262> Please do not make any assumptions on the locations of jar files. That is up to the people doing the packaging and might vary from distribution to distribution. Expect everything to be available using the web app class loader. plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResource.java <https://reviews.apache.org/r/23282/#comment83264> Don't depend on file locations as they will change. Use the java class loader to load any libraries. plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResource.java <https://reviews.apache.org/r/23282/#comment83265> I'm not really agreeing with this method of loading the client. The client should be loaded using the classloader. Is the library available from maven central or is distribution restricted? If the latter case we need to move this plugin and the dependency on the library to the noredist build. plugins/network-elements/nuage-vsp/test/com/cloud/network/element/NuageVspElementTest.java <https://reviews.apache.org/r/23282/#comment83266> copy-paste error ;-) server/src/com/cloud/network/vpc/VpcManagerImpl.java <https://reviews.apache.org/r/23282/#comment83267> Depending on a size here looks like a bug waiting to happen when somebody adds an element. Is there another way to solve this? setup/db/create-schema.sql <https://reviews.apache.org/r/23282/#comment83268> Modifying create-schema.sql is not allowed. Please make all necessary database changes in the upgrade scripts for the current master branch. - Hugo Trippaers On July 7, 2014, 6 p.m., Suresh Ramamurthy wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/23282/ > ----------------------------------------------------------- > > (Updated July 7, 2014, 6 p.m.) > > > Review request for cloudstack and Hugo Trippaers. > > > Bugs: CLOUDSTACK-6845 > https://issues.apache.org/jira/browse/CLOUDSTACK-6845 > > > Repository: cloudstack-git > > > Description > ------- > > This is first code drop for NuageVsp Network plugin support that will bring > the Nuage VSP network virtualization technology to CloudStack. > > We need a new branch to checkin the fixes once the review is done. Please > create a new branch for NuageVsp plugin. > > > Diffs > ----- > > api/src/com/cloud/event/EventTypes.java 5b9ea5c > api/src/com/cloud/network/Network.java 885bffe > api/src/com/cloud/network/Networks.java 1e4d229 > api/src/com/cloud/network/PhysicalNetwork.java 8cc214e > build/replace.properties 265f335 > client/WEB-INF/classes/resources/messages.properties b192cb0 > client/WEB-INF/classes/resources/messages_zh_CN.properties 1ec4e95 > client/pom.xml 29fef4f > client/tomcatconf/commands.properties.in b9ac27b > client/tomcatconf/log4j-cloud.xml.in 08021f2 > packaging/debian/replace.properties 5a0bd58 > > plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/OvsVifDriver.java > 8e4c710 > > plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java > 5b49e5b > > plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java > a9840bd > plugins/network-elements/nuage-vsp/pom.xml PRE-CREATION > > plugins/network-elements/nuage-vsp/resources/META-INF/cloudstack/vsp/module.properties > PRE-CREATION > > plugins/network-elements/nuage-vsp/resources/META-INF/cloudstack/vsp/spring-vsp-context.xml > PRE-CREATION > > plugins/network-elements/nuage-vsp/resources/META-INF/cloudstack/vsp/vsp-defaults.ini > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/StartupVspCommand.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/VspResourceAnswer.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/VspResourceCommand.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ApplyAclRuleVspAnswer.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ApplyAclRuleVspCommand.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ApplyStaticNatVspAnswer.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ApplyStaticNatVspCommand.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ShutDownVpcVspAnswer.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/element/ShutDownVpcVspCommand.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/DeallocateVmVspAnswer.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/DeallocateVmVspCommand.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/ImplementNetworkVspAnswer.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/ImplementNetworkVspCommand.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/ReleaseVmVspAnswer.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/ReleaseVmVspCommand.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/ReserveVmInterfaceVspAnswer.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/ReserveVmInterfaceVspCommand.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/TrashNetworkVspAnswer.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/guru/TrashNetworkVspCommand.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncVspAnswer.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/agent/api/sync/SyncVspCommand.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/AddNuageVspDeviceCmd.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/DeleteNuageVspDeviceCmd.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/IssueNuageVspResourceRequestCmd.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/ListNuageVspDevicesCmd.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/api/commands/VspConstants.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/api/response/NuageVspDeviceResponse.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/api/response/NuageVspResourceResponse.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/network/NuageVspDeviceVO.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/network/dao/NuageVspDao.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/network/dao/NuageVspDaoImpl.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/network/element/NuageVspElement.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/network/element/NuageVspVpcElement.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/network/guru/NuageVspGuestNetworkGuru.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/network/manager/NuageVspManager.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/network/manager/NuageVspManagerImpl.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/network/resource/NuageVspResource.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/network/sync/NuageVspSync.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/com/cloud/network/sync/NuageVspSyncImpl.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/net/nuage/vsp/acs/NuageVspPluginClientLoader.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/net/nuage/vsp/acs/client/NuageVspApiClient.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/net/nuage/vsp/acs/client/NuageVspElementClient.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/net/nuage/vsp/acs/client/NuageVspGuruClient.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/src/net/nuage/vsp/acs/client/NuageVspSyncClient.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/test/com/cloud/network/element/NuageVspElementTest.java > PRE-CREATION > > plugins/network-elements/nuage-vsp/test/com/cloud/network/guru/NuageVspGuestNetworkGuruTest.java > PRE-CREATION > plugins/pom.xml b5e6a61 > server/src/com/cloud/api/ApiResponseHelper.java 51122e0 > server/src/com/cloud/configuration/ConfigurationManagerImpl.java 897f8e1 > server/src/com/cloud/network/NetworkServiceImpl.java b3de9e3 > server/src/com/cloud/network/vpc/VpcManagerImpl.java c7237c1 > setup/db/create-schema.sql fe5cd0a > setup/db/db/schema-440to450.sql c88a18a > tools/apidoc/gen_toc.py 827d6bf > ui/dictionary.jsp e9d84de > ui/scripts/configuration.js 9311e37 > ui/scripts/docs.js 74a08bc > ui/scripts/system.js 9012580 > ui/scripts/ui-custom/zoneWizard.js 4091c03 > vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java > dd55439 > > Diff: https://reviews.apache.org/r/23282/diff/ > > > Testing > ------- > > Nuage VSP plugin depends on following components of Nuage SDN solution > a) Nuage VSD > b) Nuage VSC > c) Nuage VRS, this needs installed on the Hypervisor > All the above components needs to be provisioned for the plugin to function > properly. Also, Nuage VSP plugin directly talks with Nuage VSD using Rest > API. So, all the components needs to be running to test the plugin > functionality. > > The following tests are tested > > Isolated Network Test Cases > > a) Create a network offering with default egress deny rule and select > services supported by Nuage VSP plugin. Choose NuageVsp as the service > provider for DHCP, SourceNAT, StaticNAT, Firewall and Virtual Networking > services. > Choose VirtualRouter as the service provider for UserData service. > b) Create an isolated Network with network offering created above > c) Spawn 2 VMs. Verify that VMs should each get an IP address. They should > ping each other. Verify that SSH to a box on the external network should fail > b) Create a Static NAT and associate it one of the VM. Add an Egress rule for > the network with source CIDR as 0.0.0.0/0, protocol as TCP and ssh port number > d) Verify that SSH to box that is in the external network should work > e) Verify that Password reset for the VM should work > > VPC Test Cases > > a) Create a network offering for VPC with default deny all rule and select > services supported by Nuage VSP plugin for VPC. Choose NuageVsp as the > service provider for DHCP, SourceNAT, StaticNAT and Virtual Networking > services. Choose NuageVspVpc for NerworkACL service. > b) Create an VPC and select "Default VPC offering with NuageVsp" as the VPC > offering > c) Create a tier and select the network offering created above > c) Spawn 2 VMs. Verify that VMs should each get an IP address. They should > ping each other. SSH to a box on the external network should fail > d) Create a Static NAT and associate it one of the VM > e) Add an Network ACL Egress rule for the network with source CIDR as > 0.0.0.0/0, protocol as TCP and ssh port number > f) Verify that SSH to box that is in the external network should work > > > Thanks, > > Suresh Ramamurthy > >