Commit Graph

323 Commits

Author SHA1 Message Date
Alena Prokharchyk 9d88781e8c VPC: implementation for Add/delete/list StaticRoute. Agent implementation is yet to be done 2012-06-26 11:11:26 -07:00
Alena Prokharchyk a539c6e824 VPC: intermidiate checkin to Static Routes 2012-06-25 18:08:19 -07:00
Alena Prokharchyk b407b8831c VPC: initial checkin for Static Routes 2012-06-25 15:16:17 -07:00
Alena Prokharchyk 515340b5e3 VPC: listPrivateGateways API implementation 2012-06-25 10:12:10 -07:00
Alena Prokharchyk ba7fddac3b VPC: implemented add/delete Private gateway 2012-06-22 15:06:58 -07:00
Alena Prokharchyk 516628273f VPC: apply firewall ACLs as a part of VPC router start/restart and VPC network implement 2012-06-21 15:10:15 -07:00
Alena Prokharchyk 0dbd487a22 VPC: implemented delete and list Network ACL(s) 2012-06-20 14:24:30 -07:00
Alena Prokharchyk bb30a6b6bb VPC: initial checkin for network ACLs 2012-06-20 12:48:00 -07:00
Alena Prokharchyk 1abdb876c9 1) Allow having multiple shared networks with the same vlan
2) Added new parameter to listNetworks command - canUseForDeploy(boolean). When true, list only networks that can be used for vm deployment (networks have enough ip addresses to allocate from for the vm)

Conflicts:

	api/src/com/cloud/api/ApiConstants.java
	api/src/com/cloud/api/commands/ListNetworksCmd.java
	api/src/com/cloud/api/response/NetworkResponse.java
	api/src/com/cloud/network/NetworkService.java
	server/src/com/cloud/api/ApiDBUtils.java
	server/src/com/cloud/api/ApiResponseHelper.java
	server/src/com/cloud/network/NetworkManagerImpl.java
	server/src/com/cloud/network/dao/IPAddressDao.java
	server/src/com/cloud/network/dao/IPAddressDaoImpl.java
2012-06-15 15:57:56 -07:00
Alena Prokharchyk aaf0d24a83 Merge branch 'vpc-3.0.x' into 3.0.x
Conflicts:
	api/src/com/cloud/api/ApiConstants.java
	api/src/com/cloud/api/BaseCmd.java
	api/src/com/cloud/api/ResponseGenerator.java
	api/src/com/cloud/api/commands/AssociateIPAddrCmd.java
	api/src/com/cloud/api/commands/EnableStaticNatCmd.java
	api/src/com/cloud/event/EventTypes.java
	api/src/com/cloud/network/NetworkService.java
	api/src/com/cloud/network/rules/RulesService.java
	client/tomcatconf/commands.properties.in
	core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
	scripts/vm/hypervisor/xenserver/xenserver56fp1/patch
	server/src/com/cloud/api/ApiDBUtils.java
	server/src/com/cloud/api/ApiResponseHelper.java
	server/src/com/cloud/configuration/DefaultComponentLibrary.java
	server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
	server/src/com/cloud/network/NetworkManagerImpl.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
	server/src/com/cloud/network/rules/RulesManagerImpl.java
	server/src/com/cloud/server/ManagementServerImpl.java
	server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
	server/src/com/cloud/upgrade/dao/Upgrade2214to30.java
	server/test/com/cloud/network/MockNetworkManagerImpl.java
	server/test/com/cloud/vm/MockVirtualMachineManagerImpl.java
	setup/db/create-schema.sql
	wscript
2012-06-14 19:04:59 -07:00
Alena Prokharchyk 2412b7837d Isolated non-vpc networks: start router with 3 nics from the very beginning 2012-06-13 14:56:04 -07:00
Alena Prokharchyk a5f0b64562 Added new capabilities to VPN and Firewall services defining if VPN is S2S or Remote access, and if the Firewall rules should be created per cidr or per public ip address 2012-06-13 10:17:48 -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 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 ddae550a55 AssociateIpAddress to VPC - the ip gets associated to the network only when the first rule for the ip gets created.
When the last rule is removed for vpc ip, networkId is set to null
2012-05-30 19:46:40 -07:00
Alena Prokharchyk d3b1925e55 1) Added VPC restart support - new api command RestartVPC. The purpose of the call is to shutdown and start VPC including VPCVirtualRouter restart, rules re-implement, etc
2) Only networks created from offerings with conserveMode=false, can participate in VPC
2012-05-25 15:34:51 -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
Vijayendra Bhamidipati a48a3bbfbd CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Description:

	Removed the vcenter_dc_name and vcenter_ipaddr
	fields from the virtual_supervisor_module
	table, the CiscoNexusVSMDeviceVO, addClusterCmd,
	and all other references to these two fields.

	Fixing null pointer exceptions when checking
	for nexus related global parameter values in
	addClusterCmd.
2012-05-23 16:53:27 -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
Vijayendra Bhamidipati a1eba25802 CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Description:

	Putting in code changes as per Alena's reviews:

	  Replaced references to CiscoNexusVSMDeviceVO
	  in GetCiscoVSMByClusterIdCmd to work with an
	  interface that CiscoNexusVSMDeviceVO instead,
	  since VO objects should not be directly accessed
	  in APIs.

	  Made associated changes in other files.

	More commits incorporating Alena's review comments
	will follow.
2012-05-21 19:16:00 -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
Murali reddy 135431d727 bug CS-14862: EIP/ELB - SSVM and CPVM should be given an ip address from the public ip address range.
With this fix  both SSVM and CPVM will get public IP's in case of basic zone with EIP service.
A static NAT rule is implicitly configured on the EIP service provider to map public IP to a
guest IP address associated with SSVM/CPVM
2012-05-21 20:08:46 +05:30
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
Alena Prokharchyk 978c2f414a Initial checkin for VPC feature:
1) Added API frameworks for the feature. New commands:
* CreateVPCCmd
* ListVPCsCmd
* DeleteVPCCmd
* UpdateVPCCmd
* CreateVPCOfferingCmd
* UpdateVPCOfferingCmd
* DeleteVPCOfferingCmd
* ListVPCOfferingsCmd

2) New db tables:

* `cloud`.`vpc`
* `cloud`.`vpc_offerings`
* `cloud`.`vpc_offering_service_map`

and corresponding VO/Dao objects.

Added vpc_id field to `cloud.`networks` table - not null when network belongs to VPC

3) New Manager and Service interfaces- VpcManager/VpcService

4) Automatically create new VpcOffering (if doesn't exist) on system start

5) New Action events:

* VPC.CREATE
* VPC.UPDATE
* VPC.DELETE

* VPC.OFFERING.CREATE
* VPC.OFFERING.UPDATE
* VPC.OFFERING.DELETE
2012-05-17 18:08:03 -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 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 0cdfa7f943 Removing connectivity from service provider list 2012-04-24 02:20:39 +01:00
Salvatore Orlando fbd5edc2e3 Fix conflict resolution errors
Conflicts:

	api/src/com/cloud/network/ovs/OvsCreateTunnelAnswer.java
2012-04-24 02:20:39 +01:00
Salvatore Orlando cc344ad038 Adding DB support for interfaces OVS tunnel manager will use as GRE endpoints
Conflicts:

	server/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java
2012-04-24 02:20:38 +01:00
Salvatore Orlando 275840bcdb Now using vnets instead of network id for creating networks
Fixed issues with vif scripts on 5.6FP1
Fixed ipv6 issue on 5.6FP1
Plus other various fixes and improvements

Starting to remove debug code
NOTE: Network is configured correctly but instances do not start. Possibly indefinite wait occuring on some commands

Conflicts:

	server/src/com/cloud/api/ApiResponseHelper.java
2012-04-24 02:20:38 +01:00
Salvatore Orlando 5cdd19152a Open vSwitch tunnel manager
Applying patch with new ovs-tunnel-manager on top of cloudstack oss-master
2012-04-24 02:20:38 +01:00
Salvatore Orlando 2d12cfbc87 Fixing remaining issues with per-VIF flow script and removing version-specific scripts.
Now generating XSnetwork names using gre keys

Plus other minor corrections

Conflicts:

	server/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java
	server/src/com/cloud/resource/ResourceManagerImpl.java
2012-04-24 02:20:38 +01:00
Salvatore Orlando 58165221ef Now using vnets instead of network id for creating networks
Fixed issues with vif scripts on 5.6FP1
Fixed ipv6 issue on 5.6FP1
Plus other various fixes and improvements

Starting to remove debug code
NOTE: Network is configured correctly but instances do not start. Possibly indefinite wait occuring on some commands

Conflicts:

	server/src/com/cloud/network/NetworkManagerImpl.java
	server/src/com/cloud/network/guru/OvsGuestNetworkGuru.java
	server/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java
2012-04-24 02:20:37 +01:00
Salvatore Orlando f786505a1b Adding Missing file to source control 2012-04-24 02:20:37 +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 64311cc3ab Bug 14299 - Fix adding public ip range per account
Changes:
Fixed as described in the bug.

* CreateVlanIpRangeCmd still accept account/domainId info
* if account owns:
- one Isolated network with source nat service enabled, use this network
- more than one Isolated network with source nat service enabled - error out
- none Isolated networks with source nat service enabled, create it only in
case when there is an Isolated network offering with Availability=Required and
source nat service enabled.
2012-03-21 16:46:13 -07:00
Sheng Yang d3142c2977 Refactor VirtualRouterNetworkManagerImpl
Refactor applyDhcpEntry and applyUserData to use applyRules framework.
2012-03-12 16:10:16 -07:00
Alena Prokharchyk 9e9ff4f363 bug 14239: limit number of Isolated account specific networks per account
status 14239: resolved fixed
2012-03-12 15:50:49 -07:00
Alena Prokharchyk 9bdf7fe645 bug 13919: do includingRemoved Nic search when remove firewall rules during the vm expunge
status 13919: resolved fixed
Reviewed-by: Sheng Yang
2012-02-21 18:02:54 -08:00
Alena Prokharchyk 12aade4dc7 Changed isElastic to isSystem for the publicIpAddress assigned during the vm deployment in EIP enabled network
Reviewed-by: Chiradeep
2012-02-21 15:38:31 -08:00
Alena Prokharchyk 6a769b81c4 bug 13864: for elastic IP address return the purpose (staticNat or Lb) in listPublicIpAddresses api response
Reviewed-by: Frank
2012-02-17 15:43:12 -08:00
Alena Prokharchyk 18e74a2790 bug 13708: make a search by traffic type when locate physical network in the zone
status 13708: resolved fixed
reviewed-by: Prachi Damle
2012-02-14 12:46:24 -08:00
Sheng Yang fadec7afe7 Add "changecidr" parameter for updateNetwork API
CIDR may be different after update to a service offering contained external
network element, user is required to acknowledge this, otherwise the update
won't process
2012-02-08 15:57:50 -08:00
Sheng Yang 9317eb6bc3 Revert dynamic cidr change 2012-02-08 15:54:22 -08:00