Commit Graph

1088 Commits

Author SHA1 Message Date
Vijayendra Bhamidipati 023dd8d57c CS-9919: Support for Nexus Swiches (Cisco Vswitches)
reviewed-by: Devdeep
Description:

	Incorporating more changes from Alena's review.

	Modified the Nexus Enable and Disable commands
	to return CiscoNexusVSMResponse instead of
	SuccessResponse.

	Put event annotations for enable/disable functions
	that the enable/disable nexus commands cal into.
2012-05-23 18:35:59 -07:00
Vijayendra Bhamidipati f3647ff0b5 CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Description:

	Incorporating more changes post review by Alena.

	1. Renamed the ListCiscoVSMDetailsCmd command
	   to ListCiscoNexusVSMsCmd. The command will
	   return a list of VSMs always, depending on
	   what parameter is passed to it. If a clusterId
	   is passed to it, it will return the VSM
	   associated to that cluster, if present. If
	   a zoneId is passed in, it will return a list
	   of all VSMs configured for any clusters of
	   type VMware within that zone. If neither is
	   passed, it will return a list of all VSMs
	   configured in the management server. If no
	   VSMs are found, it will return an exception
	   response.

	2. Cleaned up miscellaneous code.
2012-05-22 17:22:29 -07:00
Vijayendra Bhamidipati 960d92dccf CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Description:

	More changes incorporating Alena's review comments:

	  1. Changed id to clusterId for better naming.

	  2. Changed the name of GetCiscoVSMByClusterIdCmd
	     to ListCiscoVSMDetailsCmd.

	  3. Removed the GetCiscoVSMDetailsCmd command.

	  4. Removed catch{} blocks in each of the Nexus
	     related APIs since the exceptions raised in
	     the API implementations will be caught in the
   	     command dispatcher.

	  5. Added ActionEvent annotation to
	     deleteCiscoNexusVSM() function.

	  6. Modified each Nexus API command's
	     getEntityOwnerId() to return
	     Account.ACCOUNT_ID_SYSTEM.
2012-05-21 21:10:56 -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
Vijayendra Bhamidipati 02d95e2b97 CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Description:

	Removing two unexposed APIs that we never use:
		ConfigureCiscoNexusVSMCmd
		ListCiscoNexusVSMCmd

	More changes to follow.
2012-05-21 16:49:11 -07:00
Vijayendra Bhamidipati 3a39913fe1 CS-9919 Support for Nexus Swiches (Cisco Vswitches)
Description:

	Modified the following commands to be Async:
		a. EnableCiscoNexusVSM
		b. DisableCiscoNexusVSM
		c. DeleteCiscoNexusVSM

	Cleaned up miscellaneous code.
2012-05-18 17:32:17 -07:00
Alena Prokharchyk e5bfa22944 CS-14894: listTemplates - return hypervisor type to everybody 2012-05-18 12:46:32 -07:00
Nitin Mehta 4b0ae1252d bug CS-14957: Return hypervisor type for uploaded volume 2012-05-17 19:38:49 +05:30
Vijayendra Bhamidipati 9cdba91bd1 CS-9919 Support for Nexus Swiches (Cisco Vswitches)
Description:

	Removed the AddCiscoNexusVSMCmd command, and all
	references to it. From now on, we shall support
	adding a Nexus VSM only when the cluster is being
	created. The VSM ipaddress, username, password,
	the vCenter DC Name and vCenter Ipaddress that it
	serves and connects to respectively can be passed
	to the addClusterCmd command optionally. To support
	these new parameters, parameters have been added
	to the addClusterCmd command.

	Added a debug statement in the code that runs checks
	when attempting to delete a VSM.
2012-05-16 19:51:18 -07:00
Vijayendra Bhamidipati 1b36020873 CS-9919 Support for Nexus Swiches (Cisco Vswitches)
Description:

	Added a new API GetCiscoVSMDetailsCmd. This
	API gets all details of a VSM when provided
	with the VSM ID.

Resolved Conflicts:

	client/tomcatconf/cisconexusvsm_commands.properties.in
2012-05-16 18:06:50 -07:00
Nitin Mehta 86961b79c3 bug CS-14321: Correcting listVolumes API call to return valid value for isExtractable for ISO derived disk and DATA disk. 2012-05-16 21:45:48 +05:30
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
Sateesh Chodapuneedi 014773e7e4 CS-9919 Support for Nexus Swiches (Cisco Vswitches)
Description:

	Added command class GetCiscoVSMByClusterIdCmd.
2012-05-14 18:56: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 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 ed72fbe86e CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Description:

	Fixed type of argument taken by AddCiscoNexusVSMCmd
	from ZONE_ID to CLUSTER_ID.
2012-05-14 18:21:55 -07:00
Vijayendra Bhamidipati 8362c89782 CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Description:

	1. Missed replacing older table name for VSMs in a few
	   files (changed the name from
	   external_virtual_switch_management_devices to
	   virtual_supervisor_module). Fixed that in this commit.

	2. Missed adding the new Dao ClusterVSMMapDao in the Dao
	   loading in DefaultComponentLibrary. Fixed.

	3. Fixed wrong searchbuilder options passed to ipaddrSearch
	   in CiscoNexusVSMDeviceDaoImpl.
2012-05-14 18:18:26 -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 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
Vijayendra Bhamidipati ab6c8f7986 Bug CS-14853: CloudStack list APIs are listing incorrect IDs for all the entities when API response set to "xml". works fine for "json"
Bug 14071: queryAsyncJobResult in xml format gives incorrect UUIDs back

Description:

	CS-14853 is the same bug as 14071, but seen in Bonita branch
	owing to the fix not being merged from master. So putting in
	the same fix to 3.0.x branch. Description of fix follows.

        Incorrectly removed part of the XML serializer that serialized
        the IdentityProxy object in normal responses, when putting in
        support for serialization of lists of IdentityProxy objects in
        exception responses as part of the code changes put in for bug
        13217, resulting in this bug. Putting it back in place.
2012-05-11 14:44:24 -07:00
Nitin Mehta cf23d2e63f bug CS-14785: Improvements to volumes sync so that it can recover from any error. Introduced new state UploadOp which signifies that the volume os on secondary and the status would be picked up from volume host ref table. 2012-05-11 11:38:07 +05:30
JohnZ ef2c7423f1 S3 API merged branch 2012-05-02 15:51:10 +01:00
Nitin Mehta 540f4e1431 bug CS-10789: Put zone id in the volumehost ref table. make list volume to show the percent uploaded. 2012-05-01 18:36:31 +05:30
Vijayendra Bhamidipati f601db1304 Bug 14060: Include a CloudStack error code in an Exception Response
Bug 13127: API error text refer to database ids instead of uuids

Code-Reviewers: Ewan Mellor, Kelven Yang

Description:

	1. A new class CSExceptionErrorCode has been added to utils.
	   It contains a list of error codes for each type of
	   Exception class. Use fully qualified package paths for
	   Exceptions in CSExceptionErrorCode.  We log any exception
	   name not found in the list of error codes for exceptions.

	2. Whenever we throw an exception exobj anywhere in the
	   CS code, the CSErrorCode is set in the base class
	   constructor.

	3. We add a new field csErrorCode in classes CloudException,
	   RuntimeCloudException, ExecutionException and
	   ExceptionResponse.

	4. Two places in ApiServer.java were wrongly modified when
	   putting in changes for bug 13127 to not throw an exception.
	   This has been corrected in this commit.
2012-05-01 13:48:15 +01:00
Vijayendra Bhamidipati 1d749bb9d3 Bug 13127: API error text refer to database ids instead of uuids
Description:

	Modified the IdentityTypeAdapter's custom serializer to
	identify whether this is an exception response that is being
	serialized, by checking if the idFieldName is set. If so,
	serialize both uuid and the uuidProperty (for eg, zoneId and
	"zoneId" (string)) and pass back the json representation of that.

	Modified XML serializer also to build a list of uuids+fieldnames.

	Introduced a new field "cserrorcode" in ExceptionResponse. This
	refers to an error code that can be according to the specific
	Exception being thrown. This will be serialized as usual. There
	shouldn't be any need to do a db lookup for conversion for these
	error codes.
2012-05-01 13:28:22 +01:00
Vijayendra Bhamidipati bea85d47a7 Bug 13127: API error text refer to database ids instead of uuids
Description:

	Modify Exception handling to enable addition of multiple
	uuids in a single exception thrown by API functions. Both
	XML and JSON outputs will store all uuids and Fieldnames.
	This will make it easier to provide more information when
	an exception occurs - for example, a zone id, a cluster id,
	host id, and then a specific property id.
2012-05-01 13:28:21 +01:00
Vijayendra Bhamidipati 094f01be41 Bug 13127: API error text refer to database ids instead of uuids
Description:

	Added a field name for the db id in the IdentityProxy class, and
	modified setProxyObject() to take an additional id name parameter.
	This will let us know the name of the uuid that we are returning.
	E.g.- domainId, zoneId, etc. The client can view this field in
	the json/xml output. Modified the JSON/XML serialization routines
	to append this new parameter to the serialized output for Exception
	Responses.
2012-05-01 13:28:20 +01:00
Vijayendra Bhamidipati 7ea32a4471 Bug 13127: API error text refer to database ids instead of uuids
Description:

	1) Put in an IdentityProxy object in the ExceptionResponse class.
	   This allows us to copy over the IdentityProxy object contained
	   in the exception caught by handlerequest() when thrown by the
	   command's execute() method, into the Response object that is
	   prepared to return an exception response to the calling API
	   invocation.

	2) Modified the GSON serialization method to conver the entire
	   exception object into JSON format and not just the error text.

	3) Modify the updateDomain API to populate the exception it throws
	   upon detecting a duplicate domain to include the tablename and
	   domain db id in the exception's IdentityProxy object.

	NOTE:
	1) We can modify the base exception classes and the ExceptionResponse
	   class to contain a list of IdentityProxy objects rather than a
	   single one.
	2) We will need to modify all commands such that wherever applicable
	   (wherever a db id is involved), they populate the IdentityProxy
	   object(s) before throwing an exception.
2012-05-01 13:28:19 +01:00
Vijayendra Bhamidipati b4cefb4cc6 Bug 13127: API error text refer to database ids instead of uuids
Description:

	1) Added a setProxyObject() method to CloudException and RuntimeCloudException
	2) Modified a bunch of throw exceptions in NetworkManagerImpl.java to call setProxyObject() before throwing an exception.
	3) Changed scope of ProxyIdentity attribute to protected.
	4) Added routines to ServerApiException to get/set IdentityProxy object, and
	   routine in RuntimeCloudException to get the Idproxy object.
	5) Modified the exception handling around the dispatcher and handlerequest()
	   to copy over the IdentityProxy information before rethrowing an exception
	   eventually back to handle().
	6) Removed duplicate IdentityProxy object in ServerApiException.
	   It was extending RuntimeCloudException which already had an
	   IdentityProxy object.
2012-05-01 13:28:16 +01:00
U-CITRITE\vijayendra1 89db087981 Bug 13127: API error text refer to database ids instead of uuids
Description:

1)	Adding two new classes, CloudException and RunTimeCloudException.
	The former extends Exception and the latter RunTimeException.
	These will be used by classes that formerly directly extended
	Exception and RuntimeException. These two classes have an attribute
	of type IdentityProxy to enable exceptions fill in db ids in separate
	attribute fields rather than in a string. Doing so will allow the
	serialization module (GSON for JSON and other for XML) to kick in
	and convert this db id to a uuid in ApiServer.java just before the
	JSON/XML responses are sent out.

2)	Moving IdentityProxy.java from api/ to utils/ since
	both CloudException and RuntimeCloudException refer to it.

3)	Changing references to IdentityProxy class from api/ to utils/.

4)	While rebasing to master, a new file was added, merging
	api/src/com/cloud/api/response/IsoVmResponse.java to this diff.
2012-05-01 13:21:42 +01:00
prachi 9a4f5f90a2 Fix error from merge 2012-04-30 17:08:36 -07:00
prachi 46ccc1ec79 Fixes related to
- DescribeImages
- Fix Vm current state in runInstances
- Set hypervisor to UserVm response in CloudStack
2012-04-30 17:07:28 -07:00
Salvatore Orlando 23b20e3b04 Merge branch '3.0.x' of ssh://git.cloud.com/var/lib/git/cloudstack-oss into 3.0.x 2012-04-25 20:06:26 +01:00
Alena Prokharchyk 1c9af77f59 Set ha host to false when no ha tag is enabled 2012-04-25 11:04:07 -07:00
Salvatore Orlando 8779f0ed25 CS-14270: return VLAN id only if the broadcast URI starts with 'vlan' 2012-04-24 21:34:10 +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
Alena Prokharchyk 1e8856efa0 CS-14512: fixed deployVm with ipToNetworkList when uuid is used for networkIds
Conflicts:

	server/src/com/cloud/api/ApiResponseHelper.java

Conflicts:

	server/src/com/cloud/api/ApiResponseHelper.java
2012-04-16 15:45:19 -07:00
Alena Prokharchyk 572abbf9d5 Added one more parameter - haHost(boolean) - to listHosts api command. The parameter identifies if the host is dedicated for ha only 2012-04-12 11:51:44 -07:00
frank 72d284de7d Switch to Apache license 2012-04-03 04:54:14 -07:00
frank 14f2ee35b0 change a comment in ApiResponseGsonHelper.java
reviewed-by: edison
2012-03-28 16:16:51 -07:00
kishan 8a794c1276 Added since version to API response docs
Reviewed-By: Nitin
2012-03-28 14:35:13 +05:30
Kelven Yang 93151a701c bug 14313: add map type adapter to ApiGsonBuilder as some API response classes are using Map<String, String> 2012-03-21 15:11:58 -07:00
prachi 3e361a2385 Bug 14336 - Login API does not return UUID's
Changes done:
- Provide UUID for userid and domainid only while constructing the login response. Session will hold the DB id's as before, to ensure other parts keep working.
- This reverts commit de28aa3ddde5b601f2f234f2eccef871fbaf1a06.

Conflicts:

	server/src/com/cloud/api/ApiServer.java
2012-03-20 17:05:46 -07:00
prachi aef7dc9aa0 Bug 14047 - login API fails when UUID is used for domain_id
Changes:
- API should accept UUID for domain and convert to id when needed

Conflicts:

	server/src/com/cloud/api/ApiServer.java
2012-03-20 17:03:19 -07:00
Alena Prokharchyk 5cbcdcf703 bug 14401: return juniper srx as a firewall provider along with the Virtual router
status 14401: resolved fixed
2012-03-20 11:51:02 -07:00
Alena Prokharchyk 82135f77a8 bug 14379: don't enable 8096 port by default (set global config variable to null by default, and don't create a listener on this port unless its set to valid integer) 2012-03-19 16:20:15 -07:00
Alena Prokharchyk 7964665cb4 bug 14388: don't return console proxy / ssvm service offerings
status 14388: resolved fixed
2012-03-19 14:52:11 -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