You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ah...@apache.org on 2013/01/19 01:00:12 UTC

[41/51] [abbrv] git commit: All merge conflicts resolved

All merge conflicts resolved


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/10d9c019
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/10d9c019
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/10d9c019

Branch: refs/heads/javelin
Commit: 10d9c019a9bdbb3890480bac7a3ba0f19d87739c
Parents: 593b60c ce4b49d
Author: Alex Huang <al...@citrix.com>
Authored: Fri Jan 18 12:14:57 2013 -0800
Committer: Alex Huang <al...@citrix.com>
Committed: Fri Jan 18 12:14:57 2013 -0800

----------------------------------------------------------------------
 .../agent/api/storage/ResizeVolumeAnswer.java      |   40 +
 .../agent/api/storage/ResizeVolumeCommand.java     |   86 +
 .../api/commands/CreatePrivateNetworkCmd.java      |    8 +-
 .../cloud/api/commands/DestroyConsoleProxyCmd.java |    2 +-
 api/src/com/cloud/event/EventTypes.java            |    1 +
 .../exception/CloudAuthenticationException.java    |    4 +-
 api/src/com/cloud/exception/CloudException.java    |    1 -
 .../cloud/exception/CloudExecutionException.java   |   57 -
 api/src/com/cloud/exception/ErrorCode.java         |   52 -
 api/src/com/cloud/network/Network.java             |    1 -
 api/src/com/cloud/network/NetworkModel.java        |  252 +
 api/src/com/cloud/network/NetworkService.java      |   40 +-
 api/src/com/cloud/network/element/IpDeployer.java  |    3 +-
 .../element/RemoteAccessVPNServiceProvider.java    |    3 +-
 .../element/Site2SiteVpnServiceProvider.java       |    4 +-
 api/src/com/cloud/offering/NetworkOffering.java    |    2 -
 api/src/com/cloud/server/ManagementService.java    |   11 +-
 api/src/com/cloud/storage/StorageService.java      |   10 +
 api/src/com/cloud/storage/Volume.java              |    7 +-
 api/src/com/cloud/user/UserContext.java            |    5 +
 api/src/org/apache/cloudstack/acl/APIChecker.java  |    7 +-
 .../org/apache/cloudstack/api/ApiConstants.java    |    1 +
 .../org/apache/cloudstack/api/ApiErrorCode.java    |   59 +
 api/src/org/apache/cloudstack/api/BaseCmd.java     |   25 +-
 .../api/BaseUpdateTemplateOrIsoPermissionsCmd.java |    2 +-
 .../apache/cloudstack/api/ServerApiException.java  |   37 +-
 .../command/admin/account/CreateAccountCmd.java    |    2 +-
 .../command/admin/account/DeleteAccountCmd.java    |    2 +-
 .../command/admin/account/DisableAccountCmd.java   |    2 +-
 .../command/admin/account/EnableAccountCmd.java    |    3 +-
 .../api/command/admin/account/LockAccountCmd.java  |    2 +-
 .../command/admin/account/UpdateAccountCmd.java    |    3 +-
 .../command/admin/autoscale/CreateCounterCmd.java  |    3 +-
 .../command/admin/autoscale/DeleteCounterCmd.java  |    5 +-
 .../api/command/admin/cluster/AddClusterCmd.java   |    6 +-
 .../command/admin/cluster/DeleteClusterCmd.java    |    3 +-
 .../command/admin/cluster/UpdateClusterCmd.java    |    3 +-
 .../api/command/admin/config/UpdateCfgCmd.java     |    3 +-
 .../config/UpdateHypervisorCapabilitiesCmd.java    |    3 +-
 .../api/command/admin/domain/CreateDomainCmd.java  |    2 +-
 .../api/command/admin/domain/DeleteDomainCmd.java  |    2 +-
 .../api/command/admin/domain/UpdateDomainCmd.java  |    2 +-
 .../api/command/admin/host/AddHostCmd.java         |    5 +-
 .../command/admin/host/AddSecondaryStorageCmd.java |    4 +-
 .../command/admin/host/CancelMaintenanceCmd.java   |    3 +-
 .../api/command/admin/host/DeleteHostCmd.java      |    3 +-
 .../api/command/admin/host/ListHostsCmd.java       |    9 +-
 .../admin/host/PrepareForMaintenanceCmd.java       |    3 +-
 .../api/command/admin/host/ReconnectHostCmd.java   |    5 +-
 .../api/command/admin/host/UpdateHostCmd.java      |    3 +-
 .../command/admin/network/AddNetworkDeviceCmd.java |    5 +-
 .../network/AddNetworkServiceProviderCmd.java      |    5 +-
 .../admin/network/CreateNetworkOfferingCmd.java    |    2 +-
 .../admin/network/CreatePhysicalNetworkCmd.java    |    5 +-
 .../network/CreateStorageNetworkIpRangeCmd.java    |    3 +-
 .../admin/network/DeleteNetworkDeviceCmd.java      |    7 +-
 .../admin/network/DeleteNetworkOfferingCmd.java    |    3 +-
 .../network/DeleteNetworkServiceProviderCmd.java   |    7 +-
 .../admin/network/DeletePhysicalNetworkCmd.java    |    2 +-
 .../network/DeleteStorageNetworkIpRangeCmd.java    |    2 +-
 .../admin/network/ListNetworkDeviceCmd.java        |    5 +-
 .../admin/network/ListPhysicalNetworksCmd.java     |    3 +-
 .../network/ListStorageNetworkIpRangeCmd.java      |    2 +-
 .../admin/network/UpdateNetworkOfferingCmd.java    |    2 +-
 .../network/UpdateNetworkServiceProviderCmd.java   |    3 +-
 .../network/UpdateStorageNetworkIpRangeCmd.java    |    2 +-
 .../admin/offering/CreateDiskOfferingCmd.java      |    3 +-
 .../admin/offering/CreateServiceOfferingCmd.java   |    3 +-
 .../admin/offering/DeleteDiskOfferingCmd.java      |    3 +-
 .../admin/offering/DeleteServiceOfferingCmd.java   |    2 +-
 .../admin/offering/UpdateDiskOfferingCmd.java      |    3 +-
 .../admin/offering/UpdateServiceOfferingCmd.java   |    2 +-
 .../api/command/admin/pod/CreatePodCmd.java        |    2 +-
 .../api/command/admin/pod/DeletePodCmd.java        |    3 +-
 .../api/command/admin/pod/UpdatePodCmd.java        |    2 +-
 .../admin/resource/UploadCustomCertificateCmd.java |    2 +-
 .../router/ConfigureVirtualRouterElementCmd.java   |    3 +-
 .../router/CreateVirtualRouterElementCmd.java      |    4 +-
 .../api/command/admin/router/DestroyRouterCmd.java |    3 +-
 .../api/command/admin/router/RebootRouterCmd.java  |    2 +-
 .../api/command/admin/router/StartRouterCmd.java   |    2 +-
 .../api/command/admin/router/StopRouterCmd.java    |    3 +-
 .../api/command/admin/router/UpgradeRouterCmd.java |    2 +-
 .../api/command/admin/storage/AddS3Cmd.java        |    5 +-
 .../CancelPrimaryStorageMaintenanceCmd.java        |    3 +-
 .../admin/storage/CreateStoragePoolCmd.java        |    8 +-
 .../api/command/admin/storage/DeletePoolCmd.java   |    4 +-
 .../PreparePrimaryStorageForMaintenanceCmd.java    |    3 +-
 .../admin/storage/UpdateStoragePoolCmd.java        |    2 +-
 .../api/command/admin/swift/AddSwiftCmd.java       |    4 +-
 .../command/admin/systemvm/DestroySystemVmCmd.java |    2 +-
 .../command/admin/systemvm/MigrateSystemVMCmd.java |   11 +-
 .../command/admin/systemvm/RebootSystemVmCmd.java  |    3 +-
 .../command/admin/systemvm/StartSystemVMCmd.java   |    3 +-
 .../command/admin/systemvm/StopSystemVmCmd.java    |    2 +-
 .../command/admin/systemvm/UpgradeSystemVMCmd.java |    2 +-
 .../api/command/admin/usage/AddTrafficTypeCmd.java |    5 +-
 .../command/admin/usage/DeleteTrafficTypeCmd.java  |    3 +-
 .../command/admin/usage/UpdateTrafficTypeCmd.java  |    3 +-
 .../api/command/admin/user/CreateUserCmd.java      |    3 +-
 .../api/command/admin/user/DeleteUserCmd.java      |    3 +-
 .../api/command/admin/user/DisableUserCmd.java     |    3 +-
 .../api/command/admin/user/EnableUserCmd.java      |    2 +-
 .../api/command/admin/user/LockUserCmd.java        |    3 +-
 .../api/command/admin/user/UpdateUserCmd.java      |    2 +-
 .../command/admin/vlan/CreateVlanIpRangeCmd.java   |    6 +-
 .../command/admin/vlan/DeleteVlanIpRangeCmd.java   |    3 +-
 .../api/command/admin/vm/AssignVMCmd.java          |    4 +-
 .../api/command/admin/vm/MigrateVMCmd.java         |   10 +-
 .../api/command/admin/vm/RecoverVMCmd.java         |    3 +-
 .../command/admin/vpc/CreatePrivateGatewayCmd.java |    9 +-
 .../command/admin/vpc/CreateVPCOfferingCmd.java    |    4 +-
 .../command/admin/vpc/DeletePrivateGatewayCmd.java |    3 +-
 .../command/admin/vpc/DeleteVPCOfferingCmd.java    |    3 +-
 .../command/admin/vpc/UpdateVPCOfferingCmd.java    |    2 +-
 .../api/command/admin/zone/CreateZoneCmd.java      |    3 +-
 .../api/command/admin/zone/DeleteZoneCmd.java      |    2 +-
 .../admin/zone/MarkDefaultZoneForAccountCmd.java   |    3 +-
 .../api/command/admin/zone/UpdateZoneCmd.java      |    2 +-
 .../user/account/AddAccountToProjectCmd.java       |    2 +-
 .../user/account/DeleteAccountFromProjectCmd.java  |    2 +-
 .../command/user/address/AssociateIPAddrCmd.java   |   11 +-
 .../user/address/DisassociateIPAddrCmd.java        |    2 +-
 .../user/autoscale/CreateAutoScalePolicyCmd.java   |    2 +-
 .../user/autoscale/CreateAutoScaleVmGroupCmd.java  |    4 +-
 .../autoscale/CreateAutoScaleVmProfileCmd.java     |    3 +-
 .../command/user/autoscale/CreateConditionCmd.java |    3 +-
 .../user/autoscale/DeleteAutoScalePolicyCmd.java   |    3 +-
 .../user/autoscale/DeleteAutoScaleVmGroupCmd.java  |    3 +-
 .../autoscale/DeleteAutoScaleVmProfileCmd.java     |    3 +-
 .../command/user/autoscale/DeleteConditionCmd.java |    5 +-
 .../user/autoscale/DisableAutoScaleVmGroupCmd.java |    3 +-
 .../user/autoscale/EnableAutoScaleVmGroupCmd.java  |    2 +-
 .../user/autoscale/UpdateAutoScalePolicyCmd.java   |    3 +-
 .../user/autoscale/UpdateAutoScaleVmGroupCmd.java  |    2 +-
 .../autoscale/UpdateAutoScaleVmProfileCmd.java     |    2 +-
 .../user/firewall/CreateFirewallRuleCmd.java       |    7 +-
 .../user/firewall/CreatePortForwardingRuleCmd.java |    4 +-
 .../user/firewall/DeleteFirewallRuleCmd.java       |    2 +-
 .../user/firewall/DeletePortForwardingRuleCmd.java |    2 +-
 .../user/firewall/UpdatePortForwardingRuleCmd.java |    2 +-
 .../api/command/user/iso/AttachIsoCmd.java         |    5 +-
 .../api/command/user/iso/DeleteIsoCmd.java         |    3 +-
 .../api/command/user/iso/DetachIsoCmd.java         |    3 +-
 .../api/command/user/iso/ExtractIsoCmd.java        |    4 +-
 .../api/command/user/iso/RegisterIsoCmd.java       |    2 +-
 .../api/command/user/iso/UpdateIsoCmd.java         |    3 +-
 .../loadbalancer/AssignToLoadBalancerRuleCmd.java  |    3 +-
 .../loadbalancer/CreateLBStickinessPolicyCmd.java  |    5 +-
 .../loadbalancer/CreateLoadBalancerRuleCmd.java    |    7 +-
 .../loadbalancer/DeleteLBStickinessPolicyCmd.java  |    3 +-
 .../loadbalancer/DeleteLoadBalancerRuleCmd.java    |    2 +-
 .../RemoveFromLoadBalancerRuleCmd.java             |    2 +-
 .../loadbalancer/UpdateLoadBalancerRuleCmd.java    |    2 +-
 .../user/nat/CreateIpForwardingRuleCmd.java        |    5 +-
 .../user/nat/DeleteIpForwardingRuleCmd.java        |    3 +-
 .../api/command/user/nat/DisableStaticNatCmd.java  |    3 +-
 .../api/command/user/nat/EnableStaticNatCmd.java   |    5 +-
 .../command/user/network/CreateNetworkACLCmd.java  |    7 +-
 .../api/command/user/network/CreateNetworkCmd.java |    3 +-
 .../command/user/network/DeleteNetworkACLCmd.java  |    3 +-
 .../api/command/user/network/DeleteNetworkCmd.java |    2 +-
 .../command/user/network/RestartNetworkCmd.java    |    2 +-
 .../api/command/user/network/UpdateNetworkCmd.java |    3 +-
 .../command/user/project/ActivateProjectCmd.java   |    2 +-
 .../api/command/user/project/CreateProjectCmd.java |    4 +-
 .../api/command/user/project/DeleteProjectCmd.java |    3 +-
 .../user/project/DeleteProjectInvitationCmd.java   |    3 +-
 .../command/user/project/SuspendProjectCmd.java    |    2 +-
 .../api/command/user/project/UpdateProjectCmd.java |    3 +-
 .../user/project/UpdateProjectInvitationCmd.java   |    2 +-
 .../user/resource/GetCloudIdentifierCmd.java       |    3 +-
 .../user/resource/UpdateResourceCountCmd.java      |    2 +-
 .../user/resource/UpdateResourceLimitCmd.java      |    2 +-
 .../AuthorizeSecurityGroupEgressCmd.java           |    2 +-
 .../AuthorizeSecurityGroupIngressCmd.java          |    5 +-
 .../user/securitygroup/CreateSecurityGroupCmd.java |    3 +-
 .../user/securitygroup/DeleteSecurityGroupCmd.java |    5 +-
 .../RevokeSecurityGroupEgressCmd.java              |    2 +-
 .../RevokeSecurityGroupIngressCmd.java             |    3 +-
 .../command/user/snapshot/CreateSnapshotCmd.java   |    4 +-
 .../user/snapshot/CreateSnapshotPolicyCmd.java     |    2 +-
 .../command/user/snapshot/DeleteSnapshotCmd.java   |    2 +-
 .../user/snapshot/DeleteSnapshotPoliciesCmd.java   |    3 +-
 .../api/command/user/tag/CreateTagsCmd.java        |    3 +-
 .../api/command/user/tag/DeleteTagsCmd.java        |    3 +-
 .../api/command/user/template/CopyTemplateCmd.java |    5 +-
 .../command/user/template/CreateTemplateCmd.java   |    4 +-
 .../command/user/template/DeleteTemplateCmd.java   |    2 +-
 .../command/user/template/ExtractTemplateCmd.java  |    4 +-
 .../command/user/template/RegisterTemplateCmd.java |    5 +-
 .../command/user/template/UpdateTemplateCmd.java   |    3 +-
 .../api/command/user/vm/DeployVMCmd.java           |   16 +-
 .../api/command/user/vm/DestroyVMCmd.java          |    2 +-
 .../api/command/user/vm/RebootVMCmd.java           |    3 +-
 .../api/command/user/vm/ResetVMPasswordCmd.java    |    3 +-
 .../api/command/user/vm/RestoreVMCmd.java          |    3 +-
 .../cloudstack/api/command/user/vm/StartVMCmd.java |    8 +-
 .../cloudstack/api/command/user/vm/StopVMCmd.java  |    2 +-
 .../api/command/user/vm/UpdateVMCmd.java           |    3 +-
 .../api/command/user/vm/UpgradeVMCmd.java          |    2 +-
 .../api/command/user/vmgroup/CreateVMGroupCmd.java |    2 +-
 .../api/command/user/vmgroup/DeleteVMGroupCmd.java |    2 +-
 .../api/command/user/vmgroup/UpdateVMGroupCmd.java |    2 +-
 .../api/command/user/volume/AttachVolumeCmd.java   |    3 +-
 .../api/command/user/volume/CreateVolumeCmd.java   |    5 +-
 .../api/command/user/volume/DeleteVolumeCmd.java   |    3 +-
 .../api/command/user/volume/DetachVolumeCmd.java   |    2 +-
 .../api/command/user/volume/ExtractVolumeCmd.java  |    5 +-
 .../api/command/user/volume/MigrateVolumeCmd.java  |    3 +-
 .../api/command/user/volume/ResizeVolumeCmd.java   |  154 +
 .../api/command/user/volume/UploadVolumeCmd.java   |    2 +-
 .../api/command/user/vpc/CreateStaticRouteCmd.java |    5 +-
 .../api/command/user/vpc/CreateVPCCmd.java         |   11 +-
 .../api/command/user/vpc/DeleteStaticRouteCmd.java |    2 +-
 .../api/command/user/vpc/DeleteVPCCmd.java         |    6 +-
 .../api/command/user/vpc/RestartVPCCmd.java        |    8 +-
 .../api/command/user/vpc/UpdateVPCCmd.java         |    3 +-
 .../api/command/user/vpn/AddVpnUserCmd.java        |    5 +-
 .../command/user/vpn/CreateRemoteAccessVpnCmd.java |    8 +-
 .../command/user/vpn/CreateVpnConnectionCmd.java   |    8 +-
 .../user/vpn/CreateVpnCustomerGatewayCmd.java      |    3 +-
 .../api/command/user/vpn/CreateVpnGatewayCmd.java  |    3 +-
 .../command/user/vpn/DeleteVpnConnectionCmd.java   |    4 +-
 .../user/vpn/DeleteVpnCustomerGatewayCmd.java      |    2 +-
 .../api/command/user/vpn/DeleteVpnGatewayCmd.java  |    2 +-
 .../api/command/user/vpn/RemoveVpnUserCmd.java     |    5 +-
 .../command/user/vpn/ResetVpnConnectionCmd.java    |    4 +-
 .../user/vpn/UpdateVpnCustomerGatewayCmd.java      |    2 +-
 .../agent/api/test/ResizeVolumeCommandTest.java    |  199 +
 client/bindir/cloud-setup-management.in            |   10 +-
 .../cisconexusvsm_commands.properties.in           |   25 -
 client/tomcatconf/commands-ext.properties.in       |   28 -
 client/tomcatconf/commands.properties.in           |   85 +
 client/tomcatconf/components.xml.in                |   53 +
 client/tomcatconf/f5bigip_commands.properties.in   |   32 -
 .../tomcatconf/junipersrx_commands.properties.in   |   30 -
 client/tomcatconf/netapp_commands.properties.in    |   33 -
 .../netscalerloadbalancer_commands.properties.in   |   26 -
 .../tomcatconf/nicira-nvp_commands.properties.in   |   29 -
 client/tomcatconf/simulator_commands.properties.in |   19 -
 .../virtualrouter_commands.properties.in           |   24 -
 .../virtualnetwork/VirtualRoutingResource.java     |    2 +-
 .../network/resource/TrafficSentinelResource.java  |    2 +-
 .../debian/config/etc/init.d/cloud-early-config    |    2 +-
 .../debian/config/opt/cloud/bin/vpc_guestnw.sh     |    1 +
 .../acl/StaticRoleBasedAPIAccessChecker.java       |   35 +-
 .../api/command/user/discovery/ListApisCmd.java    |   15 +-
 .../cloudstack/discovery/ApiDiscoveryService.java  |    4 +-
 .../discovery/ApiDiscoveryServiceImpl.java         |  133 +-
 .../cloud/api/commands/netapp/AssociateLunCmd.java |    5 +-
 .../cloud/api/commands/netapp/CreateLunCmd.java    |    5 +-
 .../commands/netapp/CreateVolumeOnFilerCmd.java    |    7 +-
 .../api/commands/netapp/CreateVolumePoolCmd.java   |    3 +-
 .../api/commands/netapp/DeleteVolumePoolCmd.java   |    5 +-
 .../cloud/api/commands/netapp/DestroyLunCmd.java   |    5 +-
 .../commands/netapp/DestroyVolumeOnFilerCmd.java   |    6 +-
 .../api/commands/netapp/DissociateLunCmd.java      |    4 +-
 .../com/cloud/api/commands/netapp/ListLunsCmd.java |    3 +-
 .../api/commands/netapp/ListVolumePoolsCmd.java    |    3 +-
 .../api/commands/netapp/ListVolumesOnFilerCmd.java |    2 +-
 .../hypervisor/kvm/resource/KVMGuestOsMapper.java  |    2 +
 .../kvm/resource/LibvirtComputingResource.java     |   89 +-
 .../com/cloud/api/commands/ConfigureSimulator.java |    3 +-
 .../server/ManagementServerSimulatorImpl.java      |   11 +-
 .../cloud/simulator/SimulatorRuntimeException.java |    4 +-
 .../cloud/api/commands/DeleteCiscoNexusVSMCmd.java |    3 +-
 .../api/commands/DisableCiscoNexusVSMCmd.java      |    3 +-
 .../cloud/api/commands/EnableCiscoNexusVSMCmd.java |    2 +-
 .../cloud/api/commands/ListCiscoNexusVSMsCmd.java  |    3 +-
 .../src/com/cloud/hypervisor/guru/VMwareGuru.java  |    4 +-
 .../hypervisor/vmware/VmwareServerDiscoverer.java  |    4 +-
 .../hypervisor/vmware/manager/VmwareManager.java   |   68 +-
 .../vmware/manager/VmwareManagerImpl.java          |  265 +-
 .../hypervisor/vmware/resource/VmwareResource.java |  921 ++--
 .../network/element/CiscoNexusVSMElement.java      |   11 +-
 .../xen/resource/CitrixResourceBase.java           |  471 +-
 .../element/ElasticLoadBalancerElement.java        |    4 +-
 .../network/lb/ElasticLoadBalancerManagerImpl.java |   21 +-
 .../api/commands/AddExternalLoadBalancerCmd.java   |    5 +-
 .../cloud/api/commands/AddF5LoadBalancerCmd.java   |    6 +-
 .../api/commands/ConfigureF5LoadBalancerCmd.java   |    6 +-
 .../commands/DeleteExternalLoadBalancerCmd.java    |    4 +-
 .../api/commands/DeleteF5LoadBalancerCmd.java      |    7 +-
 .../commands/ListF5LoadBalancerNetworksCmd.java    |    5 +-
 .../cloud/api/commands/ListF5LoadBalancersCmd.java |    4 +-
 .../element/F5ExternalLoadBalancerElement.java     |   45 +-
 .../cloud/network/resource/F5BigIpResource.java    |    2 +-
 .../cloud/api/commands/AddExternalFirewallCmd.java |    5 +-
 .../com/cloud/api/commands/AddSrxFirewallCmd.java  |    7 +-
 .../api/commands/ConfigureSrxFirewallCmd.java      |    7 +-
 .../api/commands/DeleteExternalFirewallCmd.java    |    5 +-
 .../cloud/api/commands/DeleteSrxFirewallCmd.java   |    7 +-
 .../api/commands/ListSrxFirewallNetworksCmd.java   |    4 +-
 .../cloud/api/commands/ListSrxFirewallsCmd.java    |    4 +-
 .../element/JuniperSRXExternalFirewallElement.java |   49 +-
 .../cloud/network/resource/JuniperSrxResource.java |    2 +-
 .../network/element/MidokuraMidonetElement.java    |    8 +-
 .../api/commands/AddNetscalerLoadBalancerCmd.java  |    6 +-
 .../ConfigureNetscalerLoadBalancerCmd.java         |    6 +-
 .../commands/DeleteNetscalerLoadBalancerCmd.java   |    7 +-
 .../ListNetscalerLoadBalancerNetworksCmd.java      |    5 +-
 .../commands/ListNetscalerLoadBalancersCmd.java    |    5 +-
 .../cloud/network/element/NetscalerElement.java    |   50 +-
 .../cloud/network/resource/NetscalerResource.java  |    2 +-
 .../cloud/api/commands/AddNiciraNvpDeviceCmd.java  |    6 +-
 .../api/commands/DeleteNiciraNvpDeviceCmd.java     |    7 +-
 .../commands/ListNiciraNvpDeviceNetworksCmd.java   |    5 +-
 .../api/commands/ListNiciraNvpDevicesCmd.java      |    5 +-
 .../cloud/network/element/NiciraNvpElement.java    |  120 +-
 .../network/guru/NiciraNvpGuestNetworkGuru.java    |    9 +-
 .../cloud/network/resource/NiciraNvpResource.java  |    2 +-
 .../network/element/NiciraNvpElementTest.java      |    9 +-
 .../guru/NiciraNvpGuestNetworkGuruTest.java        |   13 +-
 .../src/com/cloud/network/element/OvsElement.java  |    2 +-
 .../cloud/network/guru/OvsGuestNetworkGuru.java    |   72 +-
 pom.xml                                            |    2 -
 python/lib/cloudutils/utilities.py                 |    8 +-
 scripts/storage/qcow2/resizevolume.sh              |  253 +
 server/src/com/cloud/acl/DomainChecker.java        |   20 +-
 .../com/cloud/agent/manager/AgentManagerImpl.java  |   23 +-
 .../cloud/agent/manager/DirectAgentAttache.java    |   13 +-
 server/src/com/cloud/api/ApiDBUtils.java           |  212 +-
 server/src/com/cloud/api/ApiDispatcher.java        |  192 +-
 server/src/com/cloud/api/ApiServer.java            |  262 +-
 server/src/com/cloud/api/ApiServlet.java           |   38 +-
 .../cloud/api/commands/AddTrafficMonitorCmd.java   |    4 +-
 .../api/commands/DeleteTrafficMonitorCmd.java      |    5 +-
 .../api/commands/GenerateUsageRecordsCmd.java      |    2 +-
 server/src/com/cloud/async/AsyncCommandQueued.java |    4 +-
 .../com/cloud/async/AsyncJobExecutorContext.java   |    4 +-
 .../cloud/async/AsyncJobExecutorContextImpl.java   |    6 +-
 .../src/com/cloud/async/AsyncJobManagerImpl.java   |   16 +-
 .../cloud/baremetal/BareMetalVmManagerImpl.java    |    2 +-
 .../cloud/baremetal/ExternalDhcpResourceBase.java  |    2 +-
 .../com/cloud/baremetal/PxeServerResourceBase.java |    2 +-
 server/src/com/cloud/configuration/Config.java     |    2 +-
 .../configuration/ConfigurationManagerImpl.java    |  146 +-
 .../consoleproxy/ConsoleProxyManagerImpl.java      |   15 +-
 .../cloud/ha/ManagementIPSystemVMInvestigator.java |    4 +-
 .../src/com/cloud/ha/UserVmDomRInvestigator.java   |    4 +-
 .../com/cloud/hypervisor/HypervisorGuruBase.java   |    1 +
 .../kvm/discoverer/KvmServerDiscoverer.java        |    4 +-
 .../network/ExternalFirewallDeviceManagerImpl.java |    6 +-
 .../ExternalLoadBalancerDeviceManagerImpl.java     |   10 +-
 .../ExternalLoadBalancerUsageManagerImpl.java      |    2 +-
 .../network/ExternalNetworkDeviceManagerImpl.java  |    2 +-
 server/src/com/cloud/network/NetworkManager.java   |  231 +-
 .../src/com/cloud/network/NetworkManagerImpl.java  | 5061 ++-------------
 server/src/com/cloud/network/NetworkModelImpl.java | 1839 ++++++
 .../src/com/cloud/network/NetworkRuleApplier.java  |   28 +
 .../src/com/cloud/network/NetworkServiceImpl.java  | 2885 ++++++++
 .../network/element/CloudZonesNetworkElement.java  |    4 +-
 .../network/element/VirtualRouterElement.java      |   23 +-
 .../network/element/VpcVirtualRouterElement.java   |  176 +-
 .../network/firewall/FirewallManagerImpl.java      |  117 +-
 .../com/cloud/network/guru/ControlNetworkGuru.java |  139 +-
 .../com/cloud/network/guru/DirectNetworkGuru.java  |    5 +-
 .../network/guru/DirectPodBasedNetworkGuru.java    |    2 +-
 .../network/guru/ExternalGuestNetworkGuru.java     |   14 +-
 .../com/cloud/network/guru/GuestNetworkGuru.java   |   11 +-
 .../com/cloud/network/guru/PrivateNetworkGuru.java |    4 +-
 .../network/lb/LoadBalancingRulesManagerImpl.java  |  148 +-
 .../router/VirtualNetworkApplianceManagerImpl.java |  133 +-
 .../VpcVirtualNetworkApplianceManagerImpl.java     |   59 +-
 .../com/cloud/network/rules/RulesManagerImpl.java  |  131 +-
 .../network/security/SecurityGroupManagerImpl.java |    9 +-
 .../cloud/network/vpc/NetworkACLManagerImpl.java   |    4 +-
 .../src/com/cloud/network/vpc/VpcManagerImpl.java  |   34 +-
 .../network/vpn/RemoteAccessVpnManagerImpl.java    |  124 +-
 .../cloud/network/vpn/Site2SiteVpnManagerImpl.java |   69 +-
 .../src/com/cloud/offerings/NetworkOfferingVO.java |   28 +-
 server/src/com/cloud/resource/DiscovererBase.java  |   43 +-
 .../cloud/resource/DummyHostServerResource.java    |    2 +-
 .../com/cloud/resource/ResourceManagerImpl.java    |    1 +
 .../com/cloud/server/ConfigurationServerImpl.java  |   10 +-
 .../com/cloud/server/ManagementServerExtImpl.java  |    6 +-
 .../src/com/cloud/server/ManagementServerImpl.java |   89 +-
 .../src/com/cloud/storage/StorageManagerImpl.java  |  184 +-
 .../secondary/SecondaryStorageManagerImpl.java     |   12 +-
 .../src/com/cloud/upgrade/dao/Upgrade40to41.java   |   40 +-
 server/src/com/cloud/vm/UserVmManagerImpl.java     |  117 +-
 .../com/cloud/vm/VirtualMachineManagerImpl.java    |   15 +-
 server/src/com/cloud/vm/dao/NicDao.java            |    2 -
 server/src/com/cloud/vm/dao/NicDaoImpl.java        |    8 -
 .../test/com/cloud/alert/MockAlertManagerImpl.java |   87 +
 .../com/cloud/network/MockFirewallManagerImpl.java |  202 +
 .../com/cloud/network/MockNetworkManagerImpl.java  |  662 +--
 .../com/cloud/network/MockNetworkModelImpl.java    |  809 +++
 .../com/cloud/network/MockRulesManagerImpl.java    |  312 +
 .../test/com/cloud/network/NetworkManagerTest.java |   66 +
 .../NetworkManagerTestComponentLibrary.java        |  104 +
 .../test/com/cloud/network/NetworkModelTest.java   |   88 +
 .../network/firewall/FirewallManagerTest.java      |  177 +
 .../vpn/MockRemoteAccessVPNServiceProvider.java    |   78 +
 .../com/cloud/network/vpn/RemoteAccessVpnTest.java |  109 +
 .../cloud/resource/MockResourceManagerImpl.java    |  601 ++
 .../test/com/cloud/user/MockDomainManagerImpl.java |    4 +-
 .../test/com/cloud/vpc/MockNetworkManagerImpl.java | 1228 ++--
 .../cloud/vpc/MockSite2SiteVpnServiceProvider.java |   86 +
 .../vpc/MockVpcVirtualNetworkApplianceManager.java |  391 ++
 server/test/com/cloud/vpc/Site2SiteVpnTest.java    |   98 +
 server/test/resources/network-mgr-component.xml    |  184 +
 setup/db/create-schema.sql                         |    1 -
 setup/db/db/schema-40to410.sql                     |    3 +-
 setup/db/templates.kvm.sql                         |   11 +-
 setup/db/templates.sql                             |    7 +
 test/integration/smoke/test_routers.py             |    2 +-
 test/integration/smoke/test_service_offerings.py   |    2 +-
 test/integration/smoke/test_templates.py           |    2 +-
 test/integration/smoke/test_vm_life_cycle.py       |    2 +-
 test/integration/smoke/test_volumes.py             |  127 +-
 tools/apidoc/gen_toc.py                            |    1 +
 tools/apidoc/pom.xml                               |    2 +-
 tools/devcloud-kvm/devcloud-kvm-advanced.cfg       |  134 +
 tools/devcloud-kvm/devcloud-kvm.cfg                |   20 +
 tools/devcloud-kvm/devcloud-kvm.py                 |  157 +
 tools/devcloud-kvm/devcloud-kvm.sql                |    5 +-
 tools/devcloud-kvm/kvm.properties                  |   62 +
 tools/devcloud/devcloud-advanced.cfg               |  135 +
 tools/devcloud/devcloud-advanced_internal-mgt.cfg  |  141 +
 tools/devcloud/devcloud.cfg                        |   18 +
 tools/marvin/marvin/configGenerator.py             |    3 +-
 tools/marvin/marvin/deployDataCenter.py            |   10 +-
 tools/marvin/marvin/integration/lib/base.py        |    9 +
 .../marvin/marvin/sandbox/advanced/advanced_env.py |   18 +-
 .../marvin/sandbox/advanced/setup.properties       |   16 +-
 ui/scripts/instanceWizard.js                       |    5 +-
 ui/scripts/network.js                              |   10 +-
 ui/scripts/sharedFunctions.js                      |    3 +-
 ui/scripts/system.js                               |    1 +
 ui/scripts/ui/widgets/listView.js                  |    4 +-
 .../cloud/utils/component/PluggableService.java    |    3 +-
 .../utils/exception/CSExceptionErrorCode.java      |   32 -
 .../utils/exception/CloudRuntimeException.java     |   48 +-
 .../HypervisorVersionChangedException.java         |    4 +-
 .../utils/exception/RuntimeCloudException.java     |   78 -
 437 files changed, 14737 insertions(+), 9518 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/api/src/com/cloud/storage/Volume.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/storage/Volume.java
index e241851,38ba2d4..5b92f4d
--- a/api/src/com/cloud/storage/Volume.java
+++ b/api/src/com/cloud/storage/Volume.java
@@@ -36,10 -36,10 +36,11 @@@ public interface Volume extends Control
          Ready("The volume is ready to be used."),
          Migrating("The volume is migrating to other storage pool"),
          Snapshotting("There is a snapshot created on this volume, not backed up to secondary storage yet"),
+         Resizing("The volume is being resized"),
          Expunging("The volume is being expunging"),
 -        Destroy("The volume is destroyed, and can't be recovered."),
 -        UploadOp ("The volume upload operation is in progress or in short the volume is on secondary storage");
 +        Destroy("The volume is destroyed, and can't be recovered."), 
 +        Destroying("The volume is destroying, and can't be recovered."),  
 +        UploadOp ("The volume upload operation is in progress or in short the volume is on secondary storage");            
  
          String _description;
  
@@@ -63,11 -63,14 +64,14 @@@
              s_fsm.addTransition(Creating, Event.OperationFailed, Allocated);
              s_fsm.addTransition(Creating, Event.OperationSucceeded, Ready);
              s_fsm.addTransition(Creating, Event.DestroyRequested, Destroy);
 -            s_fsm.addTransition(Creating, Event.CreateRequested, Creating);  
 +            s_fsm.addTransition(Creating, Event.CreateRequested, Creating);            
+             s_fsm.addTransition(Ready, Event.ResizeRequested, Resizing);
+             s_fsm.addTransition(Resizing, Event.OperationSucceeded, Ready);
+             s_fsm.addTransition(Resizing, Event.OperationFailed, Ready);          
              s_fsm.addTransition(Allocated, Event.UploadRequested, UploadOp);
 -            s_fsm.addTransition(UploadOp, Event.CopyRequested, Creating);// CopyRequested for volume from sec to primary storage
 +            s_fsm.addTransition(UploadOp, Event.CopyRequested, Creating);// CopyRequested for volume from sec to primary storage            
              s_fsm.addTransition(Creating, Event.CopySucceeded, Ready);
 -            s_fsm.addTransition(Creating, Event.CopyFailed, UploadOp);// Copying volume from sec to primary failed.
 +            s_fsm.addTransition(Creating, Event.CopyFailed, UploadOp);// Copying volume from sec to primary failed.  
              s_fsm.addTransition(UploadOp, Event.DestroyRequested, Destroy);
              s_fsm.addTransition(Ready, Event.DestroyRequested, Destroy);
              s_fsm.addTransition(Destroy, Event.ExpungingRequested, Expunging);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/api/src/com/cloud/user/UserContext.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/user/UserContext.java
index 54c0134,539e118..daf30b4
--- a/api/src/com/cloud/user/UserContext.java
+++ b/api/src/com/cloud/user/UserContext.java
@@@ -16,6 -16,9 +16,7 @@@
  // under the License.
  package com.cloud.user;
  
 -import com.cloud.server.ManagementService;
 -import com.cloud.utils.component.ComponentLocator;
+ 
  public class UserContext {
  
      private static ThreadLocal<UserContext> s_currentContext = new ThreadLocal<UserContext>();

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/api/src/org/apache/cloudstack/api/BaseCmd.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/api/src/org/apache/cloudstack/api/command/admin/network/AddNetworkDeviceCmd.java
----------------------------------------------------------------------
diff --cc api/src/org/apache/cloudstack/api/command/admin/network/AddNetworkDeviceCmd.java
index 793c982,b8f9802..4983255
--- a/api/src/org/apache/cloudstack/api/command/admin/network/AddNetworkDeviceCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/network/AddNetworkDeviceCmd.java
@@@ -18,17 -18,14 +18,18 @@@ package org.apache.cloudstack.api.comma
  
  import java.util.Map;
  
 -import org.apache.log4j.Logger;
 +import javax.inject.Inject;
  
 +import org.apache.cloudstack.api.APICommand;
  import org.apache.cloudstack.api.ApiConstants;
+ import org.apache.cloudstack.api.ApiErrorCode;
  import org.apache.cloudstack.api.BaseCmd;
 -import org.apache.cloudstack.api.APICommand;
  import org.apache.cloudstack.api.Parameter;
  import org.apache.cloudstack.api.ServerApiException;
 +import org.apache.cloudstack.api.response.NetworkDeviceResponse;
 +import org.apache.cloudstack.network.ExternalNetworkDeviceManager;
 +import org.apache.log4j.Logger;
 +
  import com.cloud.exception.ConcurrentOperationException;
  import com.cloud.exception.InsufficientCapacityException;
  import com.cloud.exception.InvalidParameterValueException;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/api/src/org/apache/cloudstack/api/command/admin/network/DeleteNetworkDeviceCmd.java
----------------------------------------------------------------------
diff --cc api/src/org/apache/cloudstack/api/command/admin/network/DeleteNetworkDeviceCmd.java
index 38971c1,4d8d18e..2ca618c
--- a/api/src/org/apache/cloudstack/api/command/admin/network/DeleteNetworkDeviceCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/network/DeleteNetworkDeviceCmd.java
@@@ -16,18 -16,17 +16,19 @@@
  // under the License.
  package org.apache.cloudstack.api.command.admin.network;
  
 -import org.apache.log4j.Logger;
 +import javax.inject.Inject;
  
 +import org.apache.cloudstack.api.APICommand;
  import org.apache.cloudstack.api.ApiConstants;
+ import org.apache.cloudstack.api.ApiErrorCode;
  import org.apache.cloudstack.api.BaseCmd;
 -import org.apache.cloudstack.api.APICommand;
  import org.apache.cloudstack.api.Parameter;
  import org.apache.cloudstack.api.ServerApiException;
 -import org.apache.cloudstack.network.ExternalNetworkDeviceManager;
  import org.apache.cloudstack.api.response.HostResponse;
  import org.apache.cloudstack.api.response.SuccessResponse;
 +import org.apache.cloudstack.network.ExternalNetworkDeviceManager;
 +import org.apache.log4j.Logger;
 +
  import com.cloud.exception.ConcurrentOperationException;
  import com.cloud.exception.InsufficientCapacityException;
  import com.cloud.exception.InvalidParameterValueException;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/api/src/org/apache/cloudstack/api/command/admin/network/ListNetworkDeviceCmd.java
----------------------------------------------------------------------
diff --cc api/src/org/apache/cloudstack/api/command/admin/network/ListNetworkDeviceCmd.java
index 04a26af,11e74fb..25b9a8e
--- a/api/src/org/apache/cloudstack/api/command/admin/network/ListNetworkDeviceCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/network/ListNetworkDeviceCmd.java
@@@ -20,19 -20,18 +20,20 @@@ import java.util.ArrayList
  import java.util.List;
  import java.util.Map;
  
 -import org.apache.log4j.Logger;
 +import javax.inject.Inject;
  
 +import org.apache.cloudstack.api.APICommand;
  import org.apache.cloudstack.api.ApiConstants;
+ import org.apache.cloudstack.api.ApiErrorCode;
  import org.apache.cloudstack.api.BaseCmd;
  import org.apache.cloudstack.api.BaseListCmd;
 -import org.apache.cloudstack.api.APICommand;
  import org.apache.cloudstack.api.Parameter;
  import org.apache.cloudstack.api.ServerApiException;
 -import org.apache.cloudstack.network.ExternalNetworkDeviceManager;
 -import org.apache.cloudstack.api.response.NetworkDeviceResponse;
  import org.apache.cloudstack.api.response.ListResponse;
 +import org.apache.cloudstack.api.response.NetworkDeviceResponse;
 +import org.apache.cloudstack.network.ExternalNetworkDeviceManager;
 +import org.apache.log4j.Logger;
 +
  import com.cloud.exception.ConcurrentOperationException;
  import com.cloud.exception.InsufficientCapacityException;
  import com.cloud.exception.InvalidParameterValueException;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/api/src/org/apache/cloudstack/api/command/admin/router/ConfigureVirtualRouterElementCmd.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/api/src/org/apache/cloudstack/api/command/admin/router/CreateVirtualRouterElementCmd.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/acl/static-role-based/src/org/apache/cloudstack/acl/StaticRoleBasedAPIAccessChecker.java
----------------------------------------------------------------------
diff --cc plugins/acl/static-role-based/src/org/apache/cloudstack/acl/StaticRoleBasedAPIAccessChecker.java
index f51a63a,1635784..d4d73d1
--- a/plugins/acl/static-role-based/src/org/apache/cloudstack/acl/StaticRoleBasedAPIAccessChecker.java
+++ b/plugins/acl/static-role-based/src/org/apache/cloudstack/acl/StaticRoleBasedAPIAccessChecker.java
@@@ -16,34 -16,27 +16,29 @@@
  // under the License.
  package org.apache.cloudstack.acl;
  
- import static org.apache.cloudstack.acl.RoleType.Admin;
- import static org.apache.cloudstack.acl.RoleType.DomainAdmin;
- import static org.apache.cloudstack.acl.RoleType.ResourceAdmin;
- import static org.apache.cloudstack.acl.RoleType.User;
- 
 -import com.cloud.exception.PermissionDeniedException;
 -import com.cloud.server.ManagementServer;
 -import com.cloud.user.Account;
 -import com.cloud.user.AccountService;
 -import com.cloud.user.User;
 -import com.cloud.utils.PropertiesUtil;
 -import com.cloud.utils.component.AdapterBase;
 -import com.cloud.utils.component.ComponentLocator;
 -
 -import javax.ejb.Local;
 -import javax.naming.ConfigurationException;
  import java.util.HashMap;
  import java.util.HashSet;
 +import java.util.List;
  import java.util.Map;
  import java.util.Set;
  
 +import javax.ejb.Local;
 +import javax.inject.Inject;
 +import javax.naming.ConfigurationException;
 +
  import org.apache.log4j.Logger;
- import org.springframework.stereotype.Component;
  
- import com.cloud.server.ManagementServer;
 +import com.cloud.exception.PermissionDeniedException;
- import com.cloud.user.AccountManager;
++import com.cloud.user.Account;
++import com.cloud.user.AccountService;
++import com.cloud.user.User;
++import com.cloud.utils.PropertiesUtil;
 +import com.cloud.utils.component.AdapterBase;
- import com.cloud.utils.component.ComponentContext;
 +import com.cloud.utils.component.PluggableService;
 +
  // This is the default API access checker that grab's the user's account
  // based on the account type, access is granted
 -@Local(value = APIChecker.class)
 +@Local(value=APIChecker.class)
  public class StaticRoleBasedAPIAccessChecker extends AdapterBase implements APIChecker {
  
      protected static final Logger s_logger = Logger.getLogger(StaticRoleBasedAPIAccessChecker.class);
@@@ -51,7 -44,7 +46,8 @@@
      private static Map<RoleType, Set<String>> s_roleBasedApisMap =
              new HashMap<RoleType, Set<String>>();
  
 -    private static AccountService s_accountService;
 +    @Inject List<PluggableService> _services;
++    @Inject AccountService _accountService;
  
      protected StaticRoleBasedAPIAccessChecker() {
          super();
@@@ -60,8 -53,14 +56,14 @@@
      }
  
      @Override
-     public boolean checkAccess(RoleType roleType, String commandName)
+     public boolean checkAccess(User user, String commandName)
              throws PermissionDeniedException {
 -        Account account = s_accountService.getAccount(user.getAccountId());
++        Account account = _accountService.getAccount(user.getAccountId());
+         if (account == null) {
+             throw new PermissionDeniedException("The account id=" + user.getAccountId() + "for user id=" + user.getId() + "is null");
+         }
+ 
 -        RoleType roleType = s_accountService.getRoleType(account);
++        RoleType roleType = _accountService.getRoleType(account);
          boolean isAllowed = s_roleBasedApisMap.get(roleType).contains(commandName);
          if (!isAllowed) {
              throw new PermissionDeniedException("The API does not exist or is blacklisted. Role type=" + roleType.toString() + " is not allowed to request the api: " + commandName);
@@@ -72,16 -71,19 +74,14 @@@
      @Override
      public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
          super.configure(name, params);
-         _services.add((PluggableService) ComponentContext.getComponent(ManagementServer.Name));
-         for (PluggableService service : _services) {
-             processConfigFiles(service.getProperties(), service.getClass().toString());
-             s_logger.info("Processed role based acl for: " + service.toString());
-         }
+ 
 -        // Read command properties files to build the static map per role.
 -        ComponentLocator locator = ComponentLocator.getLocator(ManagementServer.Name);
 -        s_accountService = locator.getManager(AccountService.class);
 -
+         processMapping(PropertiesUtil.processConfigFile(new String[]
+                 {"commands.properties"}));
          return true;
      }
  
-     private void processConfigFiles(Map<String, String> configMap, String service) {
+     private void processMapping(Map<String, String> configMap) {
 -        for (Map.Entry<String, String> entry : configMap.entrySet()) {
 +        for (Map.Entry<String, String> entry: configMap.entrySet()) {
              String apiName = entry.getKey();
              String roleMask = entry.getValue();
              try {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/api/discovery/src/org/apache/cloudstack/api/command/user/discovery/ListApisCmd.java
----------------------------------------------------------------------
diff --cc plugins/api/discovery/src/org/apache/cloudstack/api/command/user/discovery/ListApisCmd.java
index f93e398,18c3976..5de04f0
--- a/plugins/api/discovery/src/org/apache/cloudstack/api/command/user/discovery/ListApisCmd.java
+++ b/plugins/api/discovery/src/org/apache/cloudstack/api/command/user/discovery/ListApisCmd.java
@@@ -16,21 -16,21 +16,22 @@@
  // under the License.
  package org.apache.cloudstack.api.command.user.discovery;
  
 -import com.cloud.user.User;
 -import com.cloud.user.UserContext;
 +import javax.inject.Inject;
 +
- import com.cloud.user.UserContext;
- import org.apache.cloudstack.acl.RoleType;
  import org.apache.cloudstack.api.APICommand;
  import org.apache.cloudstack.api.ApiConstants;
+ import org.apache.cloudstack.api.ApiErrorCode;
  import org.apache.cloudstack.api.BaseCmd;
  import org.apache.cloudstack.api.Parameter;
 -import org.apache.cloudstack.api.PlugService;
  import org.apache.cloudstack.api.ServerApiException;
++import org.apache.cloudstack.api.response.ApiDiscoveryResponse;
  import org.apache.cloudstack.api.response.ListResponse;
  import org.apache.cloudstack.discovery.ApiDiscoveryService;
--import org.apache.cloudstack.api.response.ApiDiscoveryResponse;
--
  import org.apache.log4j.Logger;
  
++import com.cloud.user.User;
++import com.cloud.user.UserContext;
++
  @APICommand(name = "listApis", responseObject = ApiDiscoveryResponse.class, description = "lists all available apis on the server, provided by the Api Discovery plugin", since = "4.1.0")
  public class ListApisCmd extends BaseCmd {
  

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/api/discovery/src/org/apache/cloudstack/discovery/ApiDiscoveryServiceImpl.java
----------------------------------------------------------------------
diff --cc plugins/api/discovery/src/org/apache/cloudstack/discovery/ApiDiscoveryServiceImpl.java
index 6ff4085,f06e200..d10d959
--- a/plugins/api/discovery/src/org/apache/cloudstack/discovery/ApiDiscoveryServiceImpl.java
+++ b/plugins/api/discovery/src/org/apache/cloudstack/discovery/ApiDiscoveryServiceImpl.java
@@@ -16,58 -16,48 +16,54 @@@
  // under the License.
  package org.apache.cloudstack.discovery;
  
--import com.cloud.serializer.Param;
- import com.cloud.server.ManagementServer;
- import com.cloud.utils.ReflectUtil;
- import com.cloud.utils.StringUtils;
- import com.cloud.utils.component.ComponentContext;
- import com.cloud.utils.component.PluggableService;
- import com.google.gson.annotations.SerializedName;
- import org.apache.cloudstack.acl.RoleType;
 -import com.cloud.user.User;
 -import com.cloud.utils.ReflectUtil;
 -import com.cloud.utils.StringUtils;
 -import com.cloud.utils.component.Adapters;
 -import com.cloud.utils.component.ComponentLocator;
 -import com.google.gson.annotations.SerializedName;
++import java.lang.reflect.Field;
++import java.util.ArrayList;
++import java.util.HashMap;
++import java.util.HashSet;
++import java.util.List;
++import java.util.Map;
++import java.util.Set;
++
++import javax.ejb.Local;
++import javax.inject.Inject;
++
+ import org.apache.cloudstack.acl.APIChecker;
  import org.apache.cloudstack.api.APICommand;
--import org.apache.cloudstack.api.BaseCmd;
  import org.apache.cloudstack.api.BaseAsyncCmd;
  import org.apache.cloudstack.api.BaseAsyncCreateCmd;
++import org.apache.cloudstack.api.BaseCmd;
  import org.apache.cloudstack.api.BaseResponse;
  import org.apache.cloudstack.api.Parameter;
+ import org.apache.cloudstack.api.command.user.discovery.ListApisCmd;
  import org.apache.cloudstack.api.response.ApiDiscoveryResponse;
  import org.apache.cloudstack.api.response.ApiParameterResponse;
  import org.apache.cloudstack.api.response.ApiResponseResponse;
  import org.apache.cloudstack.api.response.ListResponse;
  import org.apache.log4j.Logger;
 +import org.springframework.stereotype.Component;
  
--import javax.ejb.Local;
- import javax.inject.Inject;
--import java.lang.reflect.Field;
--import java.util.ArrayList;
--import java.util.HashMap;
--import java.util.HashSet;
--import java.util.List;
--import java.util.Map;
--import java.util.Set;
++import com.cloud.serializer.Param;
++import com.cloud.user.User;
++import com.cloud.utils.ReflectUtil;
++import com.cloud.utils.StringUtils;
++import com.cloud.utils.component.PluggableService;
++import com.google.gson.annotations.SerializedName;
  
 +@Component
  @Local(value = ApiDiscoveryService.class)
  public class ApiDiscoveryServiceImpl implements ApiDiscoveryService {
      private static final Logger s_logger = Logger.getLogger(ApiDiscoveryServiceImpl.class);
  
-     private static Map<RoleType, List<ApiDiscoveryResponse>> _roleTypeDiscoveryResponseListMap;
- 
-     private static Map<String, ApiDiscoveryResponse> _apiNameDiscoveryResponseMap =
-             new HashMap<String, ApiDiscoveryResponse>();
- 
-     private static Map<String, List<RoleType>> _apiNameRoleTypeListMap = null;
 -    protected static Adapters<APIChecker> s_apiAccessCheckers = null;
 -    private static Map<String, ApiDiscoveryResponse> s_apiNameDiscoveryResponseMap = null;
++    @Inject List<APIChecker> _apiAccessCheckers = null;
++    private Map<String, ApiDiscoveryResponse> _apiNameDiscoveryResponseMap = null;
 +
 +    @Inject List<PluggableService> _services;
  
      protected ApiDiscoveryServiceImpl() {
          super();
-         if (_roleTypeDiscoveryResponseListMap == null) {
 -        if (s_apiNameDiscoveryResponseMap == null) {
++        if (_apiNameDiscoveryResponseMap == null) {
              long startTime = System.nanoTime();
-             _roleTypeDiscoveryResponseListMap = new HashMap<RoleType, List<ApiDiscoveryResponse>>();
-             for (RoleType roleType: RoleType.values())
-                 _roleTypeDiscoveryResponseListMap.put(roleType, new ArrayList<ApiDiscoveryResponse>());
 -            s_apiNameDiscoveryResponseMap = new HashMap<String, ApiDiscoveryResponse>();
++            _apiNameDiscoveryResponseMap = new HashMap<String, ApiDiscoveryResponse>();
              cacheResponseMap();
              long endTime = System.nanoTime();
              s_logger.info("Api Discovery Service: Annotation, docstrings, api relation graph processed in " + (endTime - startTime) / 1000000.0 + " ms");
@@@ -100,9 -68,11 +74,11 @@@
          Set<Class<?>> cmdClasses = ReflectUtil.getClassesWithAnnotation(APICommand.class,
                  new String[]{"org.apache.cloudstack.api", "com.cloud.api"});
  
+         //TODO: Fix and use PluggableService to get the classes
+ 
          Map<String, List<String>> responseApiNameListMap = new HashMap<String, List<String>>();
  
 -        for (Class<?> cmdClass : cmdClasses) {
 +        for(Class<?> cmdClass: cmdClasses) {
              APICommand apiCmdAnnotation = cmdClass.getAnnotation(APICommand.class);
              if (apiCmdAnnotation == null)
                  apiCmdAnnotation = cmdClass.getSuperclass().getAnnotation(APICommand.class);
@@@ -166,13 -136,13 +142,13 @@@
                  }
              }
              response.setObjectName("api");
 -            s_apiNameDiscoveryResponseMap.put(apiName, response);
 +            _apiNameDiscoveryResponseMap.put(apiName, response);
          }
  
-         for (String apiName: _apiNameDiscoveryResponseMap.keySet()) {
 -        for (String apiName : s_apiNameDiscoveryResponseMap.keySet()) {
 -            ApiDiscoveryResponse response = s_apiNameDiscoveryResponseMap.get(apiName);
++        for (String apiName : _apiNameDiscoveryResponseMap.keySet()) {
 +            ApiDiscoveryResponse response = _apiNameDiscoveryResponseMap.get(apiName);
              Set<ApiParameterResponse> processedParams = new HashSet<ApiParameterResponse>();
 -            for (ApiParameterResponse param : response.getParams()) {
 +            for (ApiParameterResponse param: response.getParams()) {
                  if (responseApiNameListMap.containsKey(param.getRelated())) {
                      List<String> relatedApis = responseApiNameListMap.get(param.getRelated());
                      param.setRelated(StringUtils.join(relatedApis, ","));
@@@ -195,34 -165,46 +171,41 @@@
      }
  
      @Override
-     public ListResponse<? extends BaseResponse> listApis(RoleType roleType, String name) {
-         // Creates roles based response list cache the first time listApis is called
-         // Due to how adapters work, this cannot be done when mgmt loads
-         if (_apiNameRoleTypeListMap == null) {
-             long startTime = System.nanoTime();
-             _apiNameRoleTypeListMap = getApiNameRoleTypeListMap();
-             for (Map.Entry<String, List<RoleType>> entry: _apiNameRoleTypeListMap.entrySet()) {
-                 String apiName = entry.getKey();
-                 for (RoleType roleTypeInList: entry.getValue()) {
-                     _roleTypeDiscoveryResponseListMap.get(roleTypeInList).add(
-                             _apiNameDiscoveryResponseMap.get(apiName));
-                 }
-             }
-             long endTime = System.nanoTime();
-             s_logger.info("Api Discovery Service: List apis cached in " + (endTime - startTime) / 1000000.0 + " ms");
-         }
+     public ListResponse<? extends BaseResponse> listApis(User user, String name) {
          ListResponse<ApiDiscoveryResponse> response = new ListResponse<ApiDiscoveryResponse>();
+         List<ApiDiscoveryResponse> responseList = new ArrayList<ApiDiscoveryResponse>();
+ 
 -        if (s_apiAccessCheckers == null) {
 -            ComponentLocator locator = ComponentLocator.getCurrentLocator();
 -            s_apiAccessCheckers = locator.getAdapters(APIChecker.class);
 -        }
 -
+         if (user == null)
+             return null;
+ 
          if (name != null) {
 -            if (!s_apiNameDiscoveryResponseMap.containsKey(name))
 +            if (!_apiNameDiscoveryResponseMap.containsKey(name))
                  return null;
  
-              List<ApiDiscoveryResponse> singleResponse = new ArrayList<ApiDiscoveryResponse>();
-             singleResponse.add(_apiNameDiscoveryResponseMap.get(name));
-             response.setResponses(singleResponse);
 -            for (APIChecker apiChecker : s_apiAccessCheckers) {
++            for (APIChecker apiChecker : _apiAccessCheckers) {
+                 try {
+                     apiChecker.checkAccess(user, name);
+                 } catch (Exception ex) {
+                     return null;
+                 }
+             }
 -            responseList.add(s_apiNameDiscoveryResponseMap.get(name));
++            responseList.add(_apiNameDiscoveryResponseMap.get(name));
  
          } else {
-             response.setResponses(_roleTypeDiscoveryResponseListMap.get(roleType));
 -            for (String apiName : s_apiNameDiscoveryResponseMap.keySet()) {
++            for (String apiName : _apiNameDiscoveryResponseMap.keySet()) {
+                 boolean isAllowed = true;
 -                for (APIChecker apiChecker : s_apiAccessCheckers) {
++                for (APIChecker apiChecker : _apiAccessCheckers) {
+                     try {
+                         apiChecker.checkAccess(user, apiName);
+                     } catch (Exception ex) {
+                         isAllowed = false;
+                     }
+                 }
+                 if (isAllowed)
 -                    responseList.add(s_apiNameDiscoveryResponseMap.get(apiName));
++                    responseList.add(_apiNameDiscoveryResponseMap.get(apiName));
+             }
          }
+         response.setResponses(responseList);
          return response;
      }
  

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/AssociateLunCmd.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateLunCmd.java
----------------------------------------------------------------------
diff --cc plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateLunCmd.java
index c8d8d04,fde0dc3..d94b7c9
--- a/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateLunCmd.java
+++ b/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateLunCmd.java
@@@ -76,11 -77,11 +77,11 @@@ public class CreateLunCmd extends BaseC
      		response.setResponseName(getCommandName());
      		this.setResponseObject(response);
      	} catch (ServerException e) {
-     		throw new ServerApiException(BaseCmd.PARAM_ERROR, e.toString());
+     		throw new ServerApiException(ApiErrorCode.PARAM_ERROR, e.toString());
      	} catch (InvalidParameterValueException e) {
-     		throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e.toString());
+     		throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.toString());
      	}
 -
 +		
  	}
  
  	@Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateVolumeOnFilerCmd.java
----------------------------------------------------------------------
diff --cc plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateVolumeOnFilerCmd.java
index 72a9efa,5ca187d..9480c85
--- a/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateVolumeOnFilerCmd.java
+++ b/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateVolumeOnFilerCmd.java
@@@ -122,13 -123,13 +123,13 @@@ public class CreateVolumeOnFilerCmd ext
  			response.setResponseName(getCommandName());
  			this.setResponseObject(response);
  		} catch (ServerException e) {
- 			throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e.toString());
+ 			throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.toString());
  		} catch (InvalidParameterValueException e) {
- 			throw new ServerApiException(BaseCmd.PARAM_ERROR, e.toString());
+ 			throw new ServerApiException(ApiErrorCode.PARAM_ERROR, e.toString());
  		} catch (UnknownHostException e) {
- 			throw new ServerApiException(BaseCmd.PARAM_ERROR, e.toString());
+ 			throw new ServerApiException(ApiErrorCode.PARAM_ERROR, e.toString());
  		}
 -
 +		
  	}
  
  	@Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateVolumePoolCmd.java
----------------------------------------------------------------------
diff --cc plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateVolumePoolCmd.java
index f7ff567,107f6b0..ae0e411
--- a/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateVolumePoolCmd.java
+++ b/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/CreateVolumePoolCmd.java
@@@ -64,9 -65,9 +65,9 @@@ public class CreateVolumePoolCmd extend
      		response.setResponseName(getCommandName());
      		this.setResponseObject(response);
      	} catch (InvalidParameterValueException e) {
-     		throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e.toString());
+     		throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.toString());
      	}
 -
 +		
  	}
  
  	@Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/DeleteVolumePoolCmd.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/DestroyLunCmd.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/DestroyVolumeOnFilerCmd.java
----------------------------------------------------------------------
diff --cc plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/DestroyVolumeOnFilerCmd.java
index 730f1c0,21e10b0..ab1e0df
--- a/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/DestroyVolumeOnFilerCmd.java
+++ b/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/DestroyVolumeOnFilerCmd.java
@@@ -60,13 -60,13 +60,13 @@@ public class DestroyVolumeOnFilerCmd ex
      		response.setResponseName(getCommandName());
      		this.setResponseObject(response);
      	} catch (InvalidParameterValueException e) {
-     		throw new ServerApiException(BaseCmd.PARAM_ERROR, e.toString());
+     		throw new ServerApiException(ApiErrorCode.PARAM_ERROR, e.toString());
      	} catch (ResourceInUseException e) {
-     		throw new ServerApiException(BaseCmd.RESOURCE_IN_USE_ERROR, e.toString());
+     		throw new ServerApiException(ApiErrorCode.RESOURCE_IN_USE_ERROR, e.toString());
      	} catch (ServerException e) {
-     		throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e.toString());
+     		throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.toString());
  		}
 -
 +		
  	}
  
  	@Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/DissociateLunCmd.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListLunsCmd.java
----------------------------------------------------------------------
diff --cc plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListLunsCmd.java
index 7c2ed45,61b81db..d1bf7ea
--- a/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListLunsCmd.java
+++ b/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListLunsCmd.java
@@@ -70,8 -71,8 +71,8 @@@ public class ListLunsCmd extends BaseCm
      		listResponse.setResponseName(getCommandName());
      		this.setResponseObject(listResponse);
      	} catch (InvalidParameterValueException e) {
-     		throw new ServerApiException(BaseCmd.PARAM_ERROR, e.toString());
+     		throw new ServerApiException(ApiErrorCode.PARAM_ERROR, e.toString());
 -    	}
 +    	}		
  	}
  
  	@Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListVolumePoolsCmd.java
----------------------------------------------------------------------
diff --cc plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListVolumePoolsCmd.java
index 5857f43,882cf1b..6ab551e
--- a/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListVolumePoolsCmd.java
+++ b/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListVolumePoolsCmd.java
@@@ -64,9 -65,9 +65,9 @@@ public class ListVolumePoolsCmd extend
      		listResponse.setResponseName(getCommandName());
      		this.setResponseObject(listResponse);
      	} catch (InvalidParameterValueException e) {
-     		throw new ServerApiException(BaseCmd.PARAM_ERROR, e.toString());
+     		throw new ServerApiException(ApiErrorCode.PARAM_ERROR, e.toString());
 -    	}
 -
 +    	}		
 +		
  	}
  
  	@Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListVolumesOnFilerCmd.java
----------------------------------------------------------------------
diff --cc plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListVolumesOnFilerCmd.java
index 17548cd,3cc98f4..7d26365
--- a/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListVolumesOnFilerCmd.java
+++ b/plugins/file-systems/netapp/src/com/cloud/api/commands/netapp/ListVolumesOnFilerCmd.java
@@@ -71,9 -71,9 +71,9 @@@ public class ListVolumesOnFilerCmd exte
      		listResponse.setResponseName(getCommandName());
      		this.setResponseObject(listResponse);
      	} catch (InvalidParameterValueException e) {
-     		throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e.toString());
+     		throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.toString());
      	}
 -
 +		
  	}
  
  	@Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/simulator/src/com/cloud/api/commands/ConfigureSimulator.java
----------------------------------------------------------------------
diff --cc plugins/hypervisors/simulator/src/com/cloud/api/commands/ConfigureSimulator.java
index 205484d,e6afcc9..e982665
--- a/plugins/hypervisors/simulator/src/com/cloud/api/commands/ConfigureSimulator.java
+++ b/plugins/hypervisors/simulator/src/com/cloud/api/commands/ConfigureSimulator.java
@@@ -16,11 -16,13 +16,12 @@@
  // under the License.
  package com.cloud.api.commands;
  
 -import org.apache.log4j.Logger;
 +import javax.inject.Inject;
  
 -import com.cloud.agent.manager.SimulatorManager;
 +import org.apache.cloudstack.api.APICommand;
  import org.apache.cloudstack.api.ApiConstants;
+ import org.apache.cloudstack.api.ApiErrorCode;
  import org.apache.cloudstack.api.BaseCmd;
 -import org.apache.cloudstack.api.APICommand;
  import org.apache.cloudstack.api.Parameter;
  import org.apache.cloudstack.api.ServerApiException;
  import org.apache.cloudstack.api.response.SuccessResponse;
@@@ -61,9 -59,11 +62,9 @@@ public class ConfigureSimulator extend
  
      @Override
      public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, ResourceAllocationException {
 -        ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name);
 -        SimulatorManager _simMgr = locator.getManager(SimulatorManager.class);
          boolean result = _simMgr.configureSimulator(zoneId, podId, clusterId, hostId, command, values);
          if (!result) {
-             throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to configure simulator");
+             throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to configure simulator");
          }
  
          SuccessResponse response = new SuccessResponse(getCommandName());

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/vmware/src/com/cloud/api/commands/DeleteCiscoNexusVSMCmd.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/vmware/src/com/cloud/api/commands/DisableCiscoNexusVSMCmd.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/vmware/src/com/cloud/api/commands/EnableCiscoNexusVSMCmd.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/vmware/src/com/cloud/api/commands/ListCiscoNexusVSMsCmd.java
----------------------------------------------------------------------
diff --cc plugins/hypervisors/vmware/src/com/cloud/api/commands/ListCiscoNexusVSMsCmd.java
index 2e647c2,1ac00f9..1eb197f
--- a/plugins/hypervisors/vmware/src/com/cloud/api/commands/ListCiscoNexusVSMsCmd.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/api/commands/ListCiscoNexusVSMsCmd.java
@@@ -102,10 -102,10 +103,10 @@@ public class ListCiscoNexusVSMsCmd exte
      		response.setResponseName(getCommandName());
      		this.setResponseObject(response);
      	} else {
-         	throw new ServerApiException(BaseListCmd.INTERNAL_ERROR, "No VSM found.");
+         	throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "No VSM found.");
          }
      }
 -
 + 
      @Override
      public String getCommandName() {
          return s_name;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
----------------------------------------------------------------------
diff --cc plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
index 7286ada,684df54..b51e9df
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
@@@ -70,101 -69,76 +70,101 @@@ import com.cloud.utils.UriUtils
  import com.vmware.vim25.ClusterDasConfigInfo;
  import com.vmware.vim25.ManagedObjectReference;
  
 -@Local(value=Discoverer.class)
 -public class VmwareServerDiscoverer extends DiscovererBase implements Discoverer, ResourceStateAdapter {
 -	private static final Logger s_logger = Logger.getLogger(VmwareServerDiscoverer.class);
 -	
 -	@Inject ClusterDao _clusterDao;
 -	@Inject VmwareManager _vmwareMgr;
 -    @Inject AlertManager _alertMgr;
 -    @Inject VMTemplateDao _tmpltDao;
 -    @Inject ClusterDetailsDao _clusterDetailsDao;
 -    @Inject HostDao _hostDao;
 -    @Inject
 -    DataCenterDao _dcDao;
 -    @Inject ResourceManager _resourceMgr;
 -    @Inject CiscoNexusVSMDeviceDao _nexusDao;
 -    @Inject
 +@Component
 +@Local(value = Discoverer.class)
 +public class VmwareServerDiscoverer extends DiscovererBase implements
 +		Discoverer, ResourceStateAdapter {
 +	private static final Logger s_logger = Logger
 +			.getLogger(VmwareServerDiscoverer.class);
 +
 +	@Inject
 +	ClusterDao _clusterDao;
 +	@Inject
 +	VmwareManager _vmwareMgr;
 +	@Inject
 +	AlertManager _alertMgr;
 +	@Inject
 +	VMTemplateDao _tmpltDao;
 +	@Inject
 +	ClusterDetailsDao _clusterDetailsDao;
 +	@Inject
 +	HostDao _hostDao;
 +	@Inject
 +	DataCenterDao _dcDao;
 +	@Inject
 +	ResourceManager _resourceMgr;
 +	@Inject
 +	CiscoNexusVSMDeviceDao _nexusDao;
 +	@Inject
- 	NetworkManager _netmgr;
+     NetworkModel _netmgr;
 -    
 -    @Override
 -    public Map<? extends ServerResource, Map<String, String>> find(long dcId, Long podId, Long clusterId, URI url, 
 -    	String username, String password, List<String> hostTags) throws DiscoveryException {
 -    	
 -    	if(s_logger.isInfoEnabled())
 -    		s_logger.info("Discover host. dc: " + dcId + ", pod: " + podId + ", cluster: " + clusterId + ", uri host: " + url.getHost());
 -    	
 -    	if(podId == null) {
 -        	if(s_logger.isInfoEnabled())
 -        		s_logger.info("No pod is assigned, assuming that it is not for vmware and skip it to next discoverer"); 
 -    		return null;
 -    	}
 -    	
 -        ClusterVO cluster = _clusterDao.findById(clusterId);
 -        if(cluster == null || cluster.getHypervisorType() != HypervisorType.VMware) {
 -        	if(s_logger.isInfoEnabled())
 -        		s_logger.info("invalid cluster id or cluster is not for VMware hypervisors"); 
 -    		return null;
 -        }
 -        
 -        List<HostVO> hosts = _resourceMgr.listAllHostsInCluster(clusterId);
 -        if(hosts.size() >= _vmwareMgr.getMaxHostsPerCluster()) {
 -        	String msg = "VMware cluster " + cluster.getName() + " is too big to add new host now. (current configured cluster size: " + _vmwareMgr.getMaxHostsPerCluster() + ")";
 -        	s_logger.error(msg);
 -        	throw new DiscoveredWithErrorException(msg);
 -        }
 -
 -        String privateTrafficLabel = null;
 -        String publicTrafficLabel = null;
 -        String guestTrafficLabel = null;
 -        Map<String, String> vsmCredentials = null;
 -        
 -        privateTrafficLabel = _netmgr.getDefaultManagementTrafficLabel(dcId, HypervisorType.VMware);
 -        if (privateTrafficLabel != null) {
 -            s_logger.info("Detected private network label : " + privateTrafficLabel);
 -        }
 -        
 -        if (_vmwareMgr.getNexusVSwitchGlobalParameter()) {
 -            DataCenterVO zone = _dcDao.findById(dcId);
 -            NetworkType zoneType = zone.getNetworkType();
 -            if (zoneType != NetworkType.Basic) {
 -                publicTrafficLabel = _netmgr.getDefaultPublicTrafficLabel(dcId, HypervisorType.VMware);
 -                if (publicTrafficLabel != null) {
 -                    s_logger.info("Detected public network label : " + publicTrafficLabel);
 -                }
 -            }
 -            // Get physical network label
 -            guestTrafficLabel = _netmgr.getDefaultGuestTrafficLabel(dcId, HypervisorType.VMware);
 -            if (guestTrafficLabel != null) {
 -                s_logger.info("Detected guest network label : " + guestTrafficLabel);
 -            }
 -            vsmCredentials = _vmwareMgr.getNexusVSMCredentialsByClusterId(clusterId);
 -        }
 +
 +	@Override
 +	public Map<? extends ServerResource, Map<String, String>> find(long dcId,
 +			Long podId, Long clusterId, URI url, String username,
 +			String password, List<String> hostTags) throws DiscoveryException {
 +
 +		if (s_logger.isInfoEnabled())
 +			s_logger.info("Discover host. dc: " + dcId + ", pod: " + podId
 +					+ ", cluster: " + clusterId + ", uri host: "
 +					+ url.getHost());
 +
 +		if (podId == null) {
 +			if (s_logger.isInfoEnabled())
 +				s_logger.info("No pod is assigned, assuming that it is not for vmware and skip it to next discoverer");
 +			return null;
 +		}
 +
 +		ClusterVO cluster = _clusterDao.findById(clusterId);
 +		if (cluster == null
 +				|| cluster.getHypervisorType() != HypervisorType.VMware) {
 +			if (s_logger.isInfoEnabled())
 +				s_logger.info("invalid cluster id or cluster is not for VMware hypervisors");
 +			return null;
 +		}
 +
 +		List<HostVO> hosts = _resourceMgr.listAllHostsInCluster(clusterId);
 +		if (hosts.size() >= _vmwareMgr.getMaxHostsPerCluster()) {
 +			String msg = "VMware cluster "
 +					+ cluster.getName()
 +					+ " is too big to add new host now. (current configured cluster size: "
 +					+ _vmwareMgr.getMaxHostsPerCluster() + ")";
 +			s_logger.error(msg);
 +			throw new DiscoveredWithErrorException(msg);
 +		}
 +
 +		String privateTrafficLabel = null;
 +		String publicTrafficLabel = null;
 +		String guestTrafficLabel = null;
 +		Map<String, String> vsmCredentials = null;
 +
 +		privateTrafficLabel = _netmgr.getDefaultManagementTrafficLabel(dcId,
 +				HypervisorType.VMware);
 +		if (privateTrafficLabel != null) {
 +			s_logger.info("Detected private network label : "
 +					+ privateTrafficLabel);
 +		}
 +
 +		if (_vmwareMgr.getNexusVSwitchGlobalParameter()) {
 +			DataCenterVO zone = _dcDao.findById(dcId);
 +			NetworkType zoneType = zone.getNetworkType();
 +			if (zoneType != NetworkType.Basic) {
 +				publicTrafficLabel = _netmgr.getDefaultPublicTrafficLabel(dcId,
 +						HypervisorType.VMware);
 +				if (publicTrafficLabel != null) {
 +					s_logger.info("Detected public network label : "
 +							+ publicTrafficLabel);
 +				}
 +			}
 +			// Get physical network label
 +			guestTrafficLabel = _netmgr.getDefaultGuestTrafficLabel(dcId,
 +					HypervisorType.VMware);
 +			if (guestTrafficLabel != null) {
 +				s_logger.info("Detected guest network label : "
 +						+ guestTrafficLabel);
 +			}
 +			vsmCredentials = _vmwareMgr
 +					.getNexusVSMCredentialsByClusterId(clusterId);
 +		}
  
  		VmwareContext context = null;
  		try {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/10d9c019/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManager.java
----------------------------------------------------------------------
diff --cc plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManager.java
index be3fe9f,be3fe9f..e1ca6cc
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManager.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManager.java
@@@ -27,43 -27,43 +27,41 @@@ import com.cloud.utils.Pair
  import com.vmware.vim25.ManagedObjectReference;
  
  public interface VmwareManager {
--	public final String CONTEXT_STOCK_NAME = "vmwareMgr";
--	
--	// this limitation comes from the fact that we are using linked clone on shared VMFS storage,
--	// we need to limit the size of vCenter cluster, http://en.wikipedia.org/wiki/VMware_VMFS
--	public final int MAX_HOSTS_PER_CLUSTER = 8;
--
--	String composeWorkerName();
--	
++    public final String CONTEXT_STOCK_NAME = "vmwareMgr";
++
++    // this limitation comes from the fact that we are using linked clone on shared VMFS storage,
++    // we need to limit the size of vCenter cluster, http://en.wikipedia.org/wiki/VMware_VMFS
++    public final int MAX_HOSTS_PER_CLUSTER = 8;
++
++    String composeWorkerName();
++
      String getSystemVMIsoFileNameOnDatastore();
      String getSystemVMDefaultNicAdapterType();
--    
--	void prepareSecondaryStorageStore(String strStorageUrl);
--	
--	void setupResourceStartupParams(Map<String, Object> params);
--	List<ManagedObjectReference> addHostToPodCluster(VmwareContext serviceContext, long dcId, Long podId, Long clusterId,
--			String hostInventoryPath) throws Exception;
--
--	String getManagementPortGroupByHost(HostMO hostMo) throws Exception; 
--	String getServiceConsolePortGroupName();
--	String getManagementPortGroupName();
--	
--	String getSecondaryStorageStoreUrl(long dcId);
--	
--	File getSystemVMKeyFile();
--	
--	VmwareStorageManager getStorageManager();
--	long pushCleanupCheckpoint(String hostGuid, String vmName);
--	void popCleanupCheckpoint(long checkpiont);
--	void gcLeftOverVMs(VmwareContext context);
--	
--	Pair<Integer, Integer> getAddiionalVncPortRange();
--	
--	int getMaxHostsPerCluster();
--	int getRouterExtraPublicNics();
--	
--	boolean beginExclusiveOperation(int timeOutSeconds);
--	void endExclusiveOperation();
++
++    void prepareSecondaryStorageStore(String strStorageUrl);
++
++    void setupResourceStartupParams(Map<String, Object> params);
++    List<ManagedObjectReference> addHostToPodCluster(VmwareContext serviceContext, long dcId, Long podId, Long clusterId,
++            String hostInventoryPath) throws Exception;
++
++    String getManagementPortGroupByHost(HostMO hostMo) throws Exception; 
++    String getServiceConsolePortGroupName();
++    String getManagementPortGroupName();
++
++    String getSecondaryStorageStoreUrl(long dcId);
++
++    File getSystemVMKeyFile();
++
++    VmwareStorageManager getStorageManager();
++    void gcLeftOverVMs(VmwareContext context);
++
++    Pair<Integer, Integer> getAddiionalVncPortRange();
++
++    int getMaxHostsPerCluster();
++    int getRouterExtraPublicNics();
++
++    boolean beginExclusiveOperation(int timeOutSeconds);
++    void endExclusiveOperation();
  
      boolean getNexusVSwitchGlobalParameter();