Commit Graph

245 Commits

Author SHA1 Message Date
Alena Prokharchyk 97ca76856a VPC: more changes to ipAssoc 2012-06-12 13:35:15 -07:00
Alena Prokharchyk 9c01ca2785 VPC: ipAssoc consists of 3 parts: plug nic (if needed), associateIp, enableSourceNat(if ip is source nat ip) 2012-06-12 10:58:20 -07:00
Alena Prokharchyk 3b943d84dd Fixed addDhcpEntry/userdata/password in VPC setup 2012-06-11 13:37:38 -07:00
Alena Prokharchyk cf1882a2c8 1) Added VpcVirtualNetworkApplianceService interface
2) Pass dns1/dns2 to setupGuestNetworkCommand
3) Network implement - don't get source nat ip address for Vpc if it already has one
2012-06-10 12:31:47 -07:00
Alena Prokharchyk 3ae5b0b5c8 Modified virtual router startup procedure - initial start happens with control nic only; then we plug Public and then Guest nic to it 2012-06-05 11:33:31 -07:00
Alena Prokharchyk 460bab4a7d Support for adding private network 2012-06-05 10:57:29 -07:00
Alena Prokharchyk fbdf10bac7 1) Added search by vpcId to listRouters/listNetworks Apis
2) Don't allow to add new networks/implement existing ones for VPC in Disabled state. Disabled state indicates that there was unsuccessful attempt to remove the VPC, and the further cleanup will be taken care of by cleanup thread.
2012-05-25 14:16:23 -07:00
Alena Prokharchyk d7f0689bcb Support for delete VPC 2012-05-24 16:12:45 -07:00
Alena Prokharchyk aa0c0cb260 Added support for network shutdown in VPC guest networks 2012-05-24 15:33:52 -07:00
Alena Prokharchyk 2014cb0feb Plug nic support 2012-05-23 16:18:41 -07:00
Alena Prokharchyk 9fb9149c99 1) Added new element - VpcVirtualRouterElement. Extends VirtualRouter + has plug/unplug nics support
2) Added services api support for plugging/unplugging the nics to VpcElement
2012-05-22 16:53:27 -07:00
Alena Prokharchyk e4458cf5b7 1) Added start logic to the VPC
2) VirtualRouterManagerImpl - refactored deployVirtualRouter method
3) Added vpcId to domain_router/user_ip_address tables and corresponding vo objects
2012-05-21 14:29:34 -07:00
Alena Prokharchyk 492e41c462 Removed network_id reference from domain_router table as now VirtualRouter can be associated with multiple networks (VPC case). Code modifications were done accordingly to the places where this field was used.
Router->Networks (one to many) are held in router_network_ref table now
2012-05-18 17:25:04 -07:00
Vijayendra Bhamidipati a2141fbe35 CS-9919 Support for Nexus Swiches (Cisco Vswitches)
Description:

	Missed out a file in previous commit when adding
	the new API getCiscoVSMByClusterId. Stub file was
	added by Sateesh to prevent breakage. Putting the
	file in in this commit plus better exception
	handling.
2012-05-14 18:56:24 -07:00
Vijayendra Bhamidipati 4f3eed847a CS-9919 Support for Nexus Swiches (Cisco Vswitches)
Description:

	Adding command getCiscoVSMByClusterId to
	retrieve a VSM associated with a cluster.
2012-05-14 18:54:22 -07:00
Vijayendra Bhamidipati de30d66fd8 Bug CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Description:

	1. Added the PortProfile infrastructure:

	    a. PortProfileVO : The VO class to represent a db
	    record of the table port_profile. Each db record
	    represents one port profile.

	    b. PortProfileDao: The interface that declares search
	    functions on the port_profile table.

	    c. PortProfileDaoImpl: The class that defines the
	    interfaces declared in PortProfileDao.

	    d. PortProfileManagerImpl: The class that contains
	    routines that will add or delete db records from
	    the port_profile table. If you want to create/delete
	    a portprofile, call functions from this class.

	    e. Changes to create-schema.sql to create the port_profile
	    table.

	2. Cleaned up code:

	    a. Removed a number of unused Dao and Manager objects in
	    CiscoNexusVSMDeviceManagerImpl.

	    b. Removed the ListCiscoNexusVSMNetworksCmd command.

	    c. Removed a bunch of import statements in a few files.
2012-05-14 18:42:29 -07:00
Vijayendra Bhamidipati 978732ead9 Bug CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Description:

	1. Modify addCiscoNexusVSMCmd to enable a VSM
           by default, when it is added to a cluster.

	2. Put in two new APIs exposed to the user -
                a. EnableCiscoNexusVSMCmd
                b. DisableCiscoNexusVSMCmd

        Disabling a VSM does not delete it. It only
        prevents the Management Server from using that
        VSM. This is useful if the VSM is in
        maintenance mode.
2012-05-14 18:41:02 -07:00
Vijayendra Bhamidipati cff3c78d2f Bug CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Description:

        1. Put in invocation to the deleteCiscoNexusVSM()
	   function in the deleteCiscoNexusVSM command
	   chain.

        2. Put in additional check for physical servers
	   present in a cluster that still is tied to a
	   VSM. The previous check would query for all
	   hosts in a cluster, causing the check to see
	   if a cluster has any physical servers in it
	   to always fail and thus block the VSM from
	   getting deleted. By putting in a check to see
	   if a host if of type "Routing", we refine this
	   search to only hypervisors.

        3. Other miscallaneous code + cleanup.
2012-05-14 18:39:37 -07:00
Vijayendra Bhamidipati 685427b1b7 Bug CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Description:

        1. Changed AddCiscoNexusVSMCmd to:
             a. Extend BaseCmd instead of BaseAsyncCmd.
             b. Take in more required parameters (viz
                vCenterDCName and vCenterIpAddress)

        1a. Changed DeleteCiscoNexusVSMCmd to also
            extend BaseCmd.

        2. Put in changes that will ensure that
           When a VSM is added, it is disabled by default.

        3. Fixed code that was leading to exceptions
           related to DB reads/writes to VSM related tables.

        4. Added new API Constants in ApiConstants.java.
           NOTE - Always initialize new attributes in
           ApiConstants.java to values in small case.
           Never put in upper case there. Also regardless
           of what names you give attributes in the
           *Cmd.java's class, you pass in parameters via
           API calls by specifying <key>=<value> where the
           <key> is taken from the value you specified in
           ApiConstants.java.

        5. Modified the addCiscoNexusVSM() function in
           CiscoNexusVSMDeviceManagerImpl.java to write VSM
           records to the db.
2012-05-14 18:25:55 -07:00
Vijayendra Bhamidipati 79f3d8b6c4 Bug CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Description:

	1. Added a new VO class to represent a new table
	   "cluster_vsm_map". The class is ClusterVSMMapVO
	   in ClusterVSMMapVO.java. This table has only
	   two fields - clusterId, VSMId. The clusterId can
	   occur only once. But the same VSMId can be tied
	   to different clusterIds.

	2. Added the Dao interface + implementation of the
	   interface. This provides the functions required
	   to populate objects of type ClusterVSMMapVO with
	   records from the cluster_vsm_map table. The
	   interface is defined in ClusterVSMMapDao.java,
	   and the implementation is in ClusterVSMMapDaoImpl.java.

	3. Changed the table name that represents the VSM to
	   "virtual_supervisor_module" from the earlier overly
	   generic "external_virtual_switch_management_devices".

	4. Added search/remove functions to the Dao of the VSM.
	   This is the Dao for the Cisco Nexus VSM -

		CiscoNexusVSMDeviceDao:CiscoNexusVSMDeviceDaoImpl
		 --> This is the Dao Implementation that would let
		     us query/update records on the
		     "virtual_supervisor_module" table that contains
		     the records of all the VSMs that are added to
		     the Management Server.

NOTE::
======
These were some of the changes made as part of the previous commit (#7):

	1. Renamed CiscoNexusVSMResource.java to CiscoNexusVSM.java.

	2. Changed it to not implement a true resource, but to be
	   just a class providing functionality to talk to a VSM.

	3. Modified the AddCiscoNexusVSMCmd class to take in clusterId
	   instead of zoneId + your fix of the String to Long.
2012-05-14 18:17:08 -07:00
Vijayendra Bhamidipati 7e8a8c2d3e Bug CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Description:

	This is work in progress. This set of changes will not
	compile. Checking in for team wide code sync up.

	Changes are underway to test if VMWareResource can be
	leveraged to talk to the VSM, instead of creating a
	new resource for the VSM, like we've been doing up
	until now.
2012-05-14 18:16:34 -07:00
Vijayendra Bhamidipati e9d1bfbd3f Bug CS-9919: Support for Nexus Swiches (Cisco Vswitches)
At this point, the mgmt server comes up, loading the
	   Nexus related modules without dying.

Description:

	1) Added a new properties file for Cisco N1kv VSM commands:
		cisconexusvsm_commands.properties.in

	2) Added the CiscoNexusVSMElement to the components.xml file.

	3) Modified CiscoNexusVSMElement to implement NetworkElement.

		The NetworkElement interface functions are not
	  	relevant to the N1KV VSM, so we override them
	  	with noops.

	4) Added an addDao() of CiscoNexusVSMDeviceDaoImpl in populateDaos(),
	   else we'd run into a failure to look up the VSM's dao when the
	   mgmt server is starting up:

		com.cloud.utils.exception.CloudRuntimeException: Unable to find DAO com.cloud.network.dao.CiscoNexusVSMDeviceDao

	5) Also added the CiscoNexusVSMElementService in populateServices(),
	   and modified CiscoNexusVSMElement to implement Manager as well.

	6) populateServices() was running into an exception that indicated
	   that it was unable to find a commands.properties file for the
	   cisco n1kv vsm service. Fixed it by changing getProperties() in
	   CiscoNexusVSMElement to return the correct string
	   "cisconexusvsm_commands.properties", and putting in an @Override
	   for getProperties() in CiscoNexusVSMElement. Also fixed up all
	   the other functions in CiscoNexusVSMElement that needed to have
	   @Override. Also updated build/developers.xml with this file
	   location. And did other small cleanup.

	7) More clean up in CiscoNexusVSMDeviceManagerImpl.
2012-05-14 18:15:47 -07:00
Vijayendra Bhamidipati aaabd427f6 CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Reviewed by: Sateesh Chodapuneedi, Devdeep Singh

Description:

This is the first in a series of commits for integrating the
Cloudstack Management Server with the Nexus 1000v Virtual
Supervisor Module.

These changes introduce the necessary API command interfaces
to work with a Cisco N1KV VSM. The backend logic is still to
be put in and will be incorporated in subsequent commits.
Please do not attempt to use these APIs until then. Also,
these are not yet filled in into commands.xml, so they are
not currently exposed.

Additional APIs would be added if required.

These changes will not break any current management server
functionality.

Given below is a description of the changes put in here:

	Added Cisco N1KV commands to core/api:
	    These are the added commands -

		AddCiscoNexusVSMCmd
		DeleteCiscoNexusVSMCmd
		ConfigureCiscoNexusVSMCmd
		ListCiscoNexusVSMCmd
		ListCiscoNexusVSMNetworksCmd

	Added a Network Element service file for Cisco N1KV.

	Declared the interface functions that we'll need for
	the N1KV VSM.

	Defined a DeviceVO file for the Cisco Nexus Element.

	Created a response file for Cisco Nexus VSM.

	Created new event types for external Switching Management devices.

	Put in logic to call interface methods in ListCiscoNexusVSMNetworksCmd
	and ListCiscoNexusVSMCmd

NOT VSM RELATED:
	Fixed minor typo in some of the event types for external load balancers.

       Added properties of a VSM in the VSM VO class.

       Replaced the "url" input parameter by "ipaddress"
       in the AddCiscoNexusVSMCmd API.

       Added a new file - CiscoNexusVSMElement.java to
       contain the implementation of the functions
       declared in the VSMElementService interface, and
       put in implementations of the functions for the
       Nexus VSM API commands. These functions are
       defined in the CiscoNexusVSMElement class.

       Added a class for Port Profiles (PortProfile.java).
       The fields in this class are still not correctly
       declared as of now. We'll make the required changes
       going forward.

	Added CiscoNexusVSMDeviceManagerImpl class.

	Added CiscoNexusVSMResource class.

	Created a new class to provide a package to
	connect to Cisco Nexus VSMs. This will be a
	set of Java wrapper functions that allow us
	to connect/disconnect and send commands and
	receive the results of those commands via
	XML-RPC. These functions are yet to be
	implemented, and will be checked in in future
	commits.

	Added two new classes, VSMCommand and
	VSMResponse, to encapsulate XML-RPCcommands
	and responses to and from a Ciscon Nexus VSM.

	Put in the following function stubs inside the
	CiscoNexusVSMService class:

		connectToVSM()
		disconnectFromVSM()
		executeVSMCommand()

	Added new field in the Type enum of the "Host"
	interface, for Cisco Nexus VSMs.

	Added two parameters to AddCiscoNexusVSMCommand
		vsmName
		zoneId

	Modified the CiscoNexusVSMDeviceVO constructor to
	take in an zoneId as a parameter when creating
	the VO object.

	Added new interface and class for the DeviceDao
	implementation for Cisco Nexus VSM devices:
		CiscoNexusVSMDeviceDao
		CiscoNexusVSMDeviceDaoImpl

	Removed the vsmvCenterDomainId property, since it's
	going to the same as vsmDomainId, which is the VSM's
	switch Domain Id.

	Have started putting in the following query functions
	in the CiscoNexusVSMDeviceDao interface:

	Put in DAO implementations of some of the above functions in the CiscoNexusVSMDeviceDaoImpl class.

	Added a vsmName parameter to the CiscoNexusVSMDeviceVO class.
2012-05-14 18:15:11 -07:00
Salvatore Orlando 88131e5db6 CS-14605: OVS cleanup
Fix syntax errors in ConfigurationManager and Resource Manager test

Conflicts:

	server/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java
	server/test/com/cloud/agent/manager/ResourceManagerTest.java
2012-04-25 15:11:05 +01:00
Salvatore Orlando 8c398654d3 Open vSwitch tunnel manager
Applying patch with new ovs-tunnel-manager on top of cloudstack oss-master

Conflicts:

	api/src/com/cloud/network/ovs/OvsCreateTunnelAnswer.java
2012-04-24 02:20:37 +01:00
frank 72d284de7d Switch to Apache license 2012-04-03 04:54:14 -07:00
prachi 399cc04163 Bug 14536 - DB exception while trying to delete physical network
Reviewed-By: Sheng Yang

Changes:
Added proper cleanup for virtual router elements.
2012-03-29 12:38:13 -07:00
Alena Prokharchyk 0652165adb bug 14446: removed elasticLBVm from components.xml
status 14446: resolved fixed
reviewed-by: Frank Zhang
2012-03-22 10:26:37 -07:00
Murali reddy b4e64e653b bug 13899: CloudStack (Advanced Mode) should not allow "NetScaler" as provider for StaticNAT service
status 13899: resolved fixed
2012-03-21 16:52:51 +05:30
Sheng Yang d3142c2977 Refactor VirtualRouterNetworkManagerImpl
Refactor applyDhcpEntry and applyUserData to use applyRules framework.
2012-03-12 16:10:16 -07:00
Sheng Yang 666a7aa974 Fix several wrong ResourceUnavailableException scopes 2012-03-08 11:54:43 -08:00
Murali reddy 6b03e9ca58 bug 13855: F5 - Hold time paramS for sticky policies are not getting programmed in F5
Reviewed-by:Sam
status 13855: resolved fixed

  - configuring unique persistence profile for each LB rule with sticky method applied
  - removing source based sticky method for source based LB method which is not supported by F5
2012-02-22 08:18:57 +05:30
Alena Prokharchyk 53bf8742f8 bug 13871: use perzone and peraccount (no spaces in values) when compare source nat capabilities
status 13871: resolved fixed
Reviewed-by: Chiradeep Vittal
2012-02-21 10:06:42 -08:00
frank e7a445d268 Bug 13568 - secondary storage VM's static route for nfs server breaks things!
status 13568: resolved fixed
reviewed-by: Sheng Yang
2012-02-17 16:19:38 -08:00
Sheng Yang eaeac8809e bug 13867: Pass hostId instead of external firewall device Id
status 13867: resolved fixed

Reviewed-by: Anthony
2012-02-17 15:33:15 -08:00
Sheng Yang 1eb71689df bug 13829: Add default capacity for SRX
And per Alex's request, add default value directly into the database, rather
than using it at last minute of implemention.

status 13829: resolved fixed

Reviewed-by: Alex
2012-02-17 15:25:09 -08:00
Murali reddy e86425b717 bug 13722: When we try to create a network when there is no capacity in F5, we should not attempt to create the network
Reviewed-By:Jana
status 13722: resolved fixed

thorwing resource unavaiable exception when there is not enough capacity to implement network
2012-02-15 19:08:45 +05:30
Murali reddy 563cdf3a9c bug 13664: F5 device can be added in "Dedicated" mode but Network offering allows for only "shared" LB isolation to be set.
Reviewed-By: nitin.mehta@citrix.com
status 13664: resolved fixed

added dedicated mode as capability to F5 load balancer element
2012-02-15 17:34:36 +05:30
Naredula Janardhana Reddy 31fe8bd815 Summary of HAProxy stickines param changes:
- converted all mandatory params to optional, and internally fill with default value before sending to haproxy. default value is available through description.
  - accept holdtime without units.
2012-02-08 14:56:41 +05:30
Murali reddy 8fbdd2919e bug 12488: Netscaler - Invalid error message presented to the user when deployVm fails to implement network becasue of insuffucient capacity in Netscaler.
status 12488: resolved fixed
2012-02-07 19:15:36 +05:30
Alena Prokharchyk 1490e45a1c Fixed format style in a bunch of files (replaced tabs with spaces as a part of it) 2012-02-03 13:49:11 -08:00
Murali reddy 1f0ea28cc4 bug 12568: load balancer/firewall device capacity when admin does not specify a value 2012-02-03 23:48:26 +05:30
Naredula Janardhana Reddy aea81205ef Bug 11845:
Summary of Changes:
    - created a generic way for LB rule validations, so as LB device(like Haproxy) specific validations can be done syncronously.
    - Removed asyncronous validations from Haproxy and done syncronously.
2012-02-01 18:01:11 +05:30
Alena Prokharchyk 0196eb5679 bug 12821: no VPN support on Juniper
status 12821: resolved fixed
2012-01-30 15:07:04 -08:00
Alena Prokharchyk 0e13bb58e3 bug 13250: don't check physicalNetworkId for control traffic type 2012-01-24 12:49:30 -08:00
Murali reddy 73805cdc45 bug 12828: SRX - Not able to deploy Vm using network that uses SRX for PF,Firewall,SorceNat,StaticNat,VPN services
status 12828; resolved fixed
2012-01-24 20:05:42 +05:30
Murali reddy d92c361efd bug 12826:enable NetScaler in basic zone for load balancing and static NAT
NetScaler element should not firewall service provider in basic zone
2012-01-19 14:05:12 -08:00
Murali reddy 40ac2f5cdf bug 12826: enable NetScaler in basic zone for load balancing and static NAT
status 12826: resolved fixed
2012-01-19 14:00:07 -08:00
Alena Prokharchyk 9322482018 Netscaler can enable individual services (in some cases LB can be handled by Netscaler, and firewall by some other external provider) 2012-01-19 13:57:00 -08:00
Alena Prokharchyk 5adfc9953f Can enable/disable static nat and create IpForwarding/Firewall rules in Basic zone now.
Made Netscaler a StaticNat/Firewall provider. Murali will take care of actual implementation on the backend.
2012-01-19 13:56:59 -08:00