This is an automated email from the ASF dual-hosted git repository. nvazquez pushed a commit to branch pr/5579 in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit 51f5f452b440e5107599bc731baa6ad2553716c3 Merge: 16b000238c 62e342c1bc Author: nvazquez <nicovazque...@gmail.com> AuthorDate: Thu Feb 2 21:30:17 2023 -0300 Merge branch 'main' into pr/5579 .github/boring-cyborg.yml | 4 +- .github/linters/.flake8 | 14 +- .github/workflows/build.yml | 66 + .github/workflows/ci.yml | 280 ++ .github/workflows/codecov.yml | 6 +- .github/workflows/coverage-check.yml | 94 - .github/workflows/linter.yml | 30 +- .github/workflows/main-coverage.yml | 63 - .github/workflows/main-sonar-check.yml | 63 + .github/workflows/merge-conflict-checker.yml | 11 +- .github/workflows/rat.yml | 47 + .github/workflows/sonar-check.yml | 67 + .github/workflows/ui.yml | 54 + .pre-commit-config.yaml | 42 + .travis.yml | 228 -- CHANGES.md | 10 +- CONTRIBUTING.md | 2 +- INSTALL.md | 2 +- README.md | 17 +- agent/bindir/cloud-setup-agent.in | 3 +- agent/conf/agent.properties | 497 ++- agent/src/main/java/com/cloud/agent/Agent.java | 6 +- .../src/main/java/com/cloud/agent/AgentShell.java | 136 +- .../src/main/java/com/cloud/agent/IAgentShell.java | 1 - .../cloud/agent/properties/AgentProperties.java | 725 +++- .../properties/AgentPropertiesFileHandler.java | 40 +- .../test/java/com/cloud/agent/AgentShellTest.java | 308 ++ .../properties/AgentPropertiesFileHandlerTest.java | 52 + .../agent/properties/AgentPropertiesTest.java | 43 + api/src/main/java/com/cloud/agent/api/Answer.java | 2 +- .../java/com/cloud/agent/api/to/IpAddressTO.java | 18 +- .../com/cloud/agent/api/to/LoadBalancerTO.java | 113 +- .../main/java/com/cloud/agent/api/to/NicTO.java | 9 + .../cloud/configuration/ConfigurationService.java | 3 + api/src/main/java/com/cloud/dc/DataCenter.java | 6 + .../com/cloud/deploy/DataCenterDeployment.java | 38 + .../java/com/cloud/deploy/DeployDestination.java | 8 +- .../main/java/com/cloud/deploy/DeploymentPlan.java | 19 + api/src/main/java/com/cloud/event/EventTypes.java | 34 + api/src/main/java/com/cloud/host/ControlState.java | 41 + .../main/java/com/cloud/host/HostEnvironment.java | 1 - api/src/main/java/com/cloud/network/Network.java | 7 + .../main/java/com/cloud/network/NetworkModel.java | 5 +- .../java/com/cloud/network/NetworkProfile.java | 12 + .../java/com/cloud/network/NetworkService.java | 21 + api/src/main/java/com/cloud/network/Networks.java | 5 +- .../java/com/cloud/network/TungstenProvider.java | 31 + .../com/cloud/network/as/AutoScaleCounter.java | 9 +- .../java/com/cloud/network/as/AutoScalePolicy.java | 21 +- .../com/cloud/network/as/AutoScaleService.java | 5 +- .../com/cloud/network/as/AutoScaleVmGroup.java | 31 +- .../com/cloud/network/as/AutoScaleVmProfile.java | 8 +- .../main/java/com/cloud/network/as/Condition.java | 2 +- .../main/java/com/cloud/network/as/Counter.java | 18 +- .../com/cloud/network/lb/LoadBalancingRule.java | 6 +- .../network/lb/LoadBalancingRulesService.java | 8 +- .../network/router/VirtualRouterAutoScale.java | 132 + .../network/security/SecurityGroupService.java | 5 + .../security/TungstenSecurityGroupRule.java | 23 + api/src/main/java/com/cloud/network/vpc/Vpc.java | 2 + .../java/com/cloud/network/vpc/VpcService.java | 11 +- .../java/com/cloud/offering/NetworkOffering.java | 5 + .../java/com/cloud/server/ManagementService.java | 11 +- .../main/java/com/cloud/server/ResourceTag.java | 16 + .../java/com/cloud/storage/VolumeApiService.java | 7 + api/src/main/java/com/cloud/vm/Nic.java | 2 + api/src/main/java/com/cloud/vm/NicIpAlias.java | 2 +- api/src/main/java/com/cloud/vm/NicProfile.java | 11 + api/src/main/java/com/cloud/vm/UserVmService.java | 2 + .../java/com/cloud/vm/VirtualMachineProfile.java | 1 + .../main/java/com/cloud/vm/VmDetailConstants.java | 4 + .../org/apache/cloudstack/alert/AlertService.java | 2 + .../cloudstack/annotation/AnnotationService.java | 3 +- .../org/apache/cloudstack/api/ApiArgValidator.java | 2 +- .../org/apache/cloudstack/api/ApiConstants.java | 117 +- .../java/org/apache/cloudstack/api/BaseCmd.java | 40 +- .../apache/cloudstack/api/ResponseGenerator.java | 4 + .../command/admin/account/CreateAccountCmd.java | 6 - .../command/admin/account/DeleteAccountCmd.java | 10 - .../command/admin/account/DisableAccountCmd.java | 6 - .../command/admin/account/EnableAccountCmd.java | 6 - .../api/command/admin/account/LockAccountCmd.java | 6 - .../command/admin/account/UpdateAccountCmd.java | 6 - .../api/command/admin/acl/CreateRoleCmd.java | 9 +- .../command/admin/acl/CreateRolePermissionCmd.java | 9 +- .../api/command/admin/acl/DeleteRoleCmd.java | 8 +- .../command/admin/acl/DeleteRolePermissionCmd.java | 8 +- .../api/command/admin/acl/ImportRoleCmd.java | 9 +- .../command/admin/acl/ListRolePermissionsCmd.java | 8 +- .../api/command/admin/acl/ListRolesCmd.java | 8 +- .../api/command/admin/acl/UpdateRoleCmd.java | 8 +- .../command/admin/acl/UpdateRolePermissionCmd.java | 10 +- .../admin/acl/project/CreateProjectRoleCmd.java | 8 +- .../project/CreateProjectRolePermissionCmd.java | 8 +- .../admin/acl/project/DeleteProjectRoleCmd.java | 8 +- .../project/DeleteProjectRolePermissionCmd.java | 8 +- .../acl/project/ListProjectRolePermissionsCmd.java | 8 +- .../admin/acl/project/ListProjectRolesCmd.java | 8 +- .../admin/acl/project/UpdateProjectRoleCmd.java | 8 +- .../project/UpdateProjectRolePermissionCmd.java | 8 +- .../api/command/admin/alert/GenerateAlertCmd.java | 8 +- .../command/admin/annotation/AddAnnotationCmd.java | 10 +- .../admin/annotation/ListAnnotationsCmd.java | 13 +- .../admin/annotation/RemoveAnnotationCmd.java | 8 +- .../annotation/UpdateAnnotationVisibilityCmd.java | 8 +- .../command/admin/autoscale/CreateCounterCmd.java | 9 +- .../command/admin/autoscale/DeleteCounterCmd.java | 8 +- .../admin/backup/DeleteBackupOfferingCmd.java | 8 +- .../admin/backup/ImportBackupOfferingCmd.java | 8 +- .../backup/ListBackupProviderOfferingsCmd.java | 7 +- .../admin/backup/ListBackupProvidersCmd.java | 8 +- .../admin/backup/UpdateBackupOfferingCmd.java | 8 +- .../api/command/admin/ca/IssueCertificateCmd.java | 8 +- .../api/command/admin/ca/ListCAProvidersCmd.java | 8 +- .../api/command/admin/ca/ListCaCertificateCmd.java | 8 +- .../command/admin/ca/ProvisionCertificateCmd.java | 9 +- .../api/command/admin/ca/RevokeCertificateCmd.java | 8 +- .../api/command/admin/cluster/AddClusterCmd.java | 6 - .../command/admin/cluster/DeleteClusterCmd.java | 6 - .../api/command/admin/cluster/ListClustersCmd.java | 6 - .../command/admin/cluster/UpdateClusterCmd.java | 6 - .../command/admin/config/ListCfgGroupsByCmd.java | 79 + .../api/command/admin/config/ListCfgsByCmd.java | 123 +- .../admin/config/ListDeploymentPlannersCmd.java | 6 - .../config/ListHypervisorCapabilitiesCmd.java | 6 - .../api/command/admin/config/ResetCfgCmd.java | 6 - .../api/command/admin/config/UpdateCfgCmd.java | 6 - .../config/UpdateHypervisorCapabilitiesCmd.java | 6 - .../admin/diagnostics/GetDiagnosticsDataCmd.java | 8 +- .../admin/diagnostics/RunDiagnosticsCmd.java | 11 +- .../ListTemplateDirectDownloadCertificatesCmd.java | 9 +- ...visionTemplateDirectDownloadCertificateCmd.java | 8 +- ...RevokeTemplateDirectDownloadCertificateCmd.java | 10 +- ...UploadTemplateDirectDownloadCertificateCmd.java | 240 +- .../api/command/admin/domain/CreateDomainCmd.java | 8 +- .../api/command/admin/domain/DeleteDomainCmd.java | 6 - .../admin/domain/ListDomainChildrenCmd.java | 6 - .../api/command/admin/domain/UpdateDomainCmd.java | 6 - .../api/command/admin/guest/AddGuestOsCmd.java | 6 - .../command/admin/guest/AddGuestOsMappingCmd.java | 6 - .../command/admin/guest/ListGuestOsMappingCmd.java | 8 +- .../api/command/admin/guest/RemoveGuestOsCmd.java | 6 - .../admin/guest/RemoveGuestOsMappingCmd.java | 6 - .../api/command/admin/guest/UpdateGuestOsCmd.java | 6 - .../admin/guest/UpdateGuestOsMappingCmd.java | 6 - .../command/admin/ha/ConfigureHAForHostCmd.java | 9 +- .../command/admin/ha/DisableHAForClusterCmd.java | 8 +- .../api/command/admin/ha/DisableHAForHostCmd.java | 9 +- .../api/command/admin/ha/DisableHAForZoneCmd.java | 8 +- .../command/admin/ha/EnableHAForClusterCmd.java | 8 +- .../api/command/admin/ha/EnableHAForHostCmd.java | 9 +- .../api/command/admin/ha/EnableHAForZoneCmd.java | 8 +- .../command/admin/ha/ListHostHAProvidersCmd.java | 8 +- .../command/admin/ha/ListHostHAResourcesCmd.java | 8 +- .../api/command/admin/host/AddHostCmd.java | 6 - .../command/admin/host/AddSecondaryStorageCmd.java | 6 - .../admin/host/CancelHostAsDegradedCmd.java | 5 - .../command/admin/host/CancelMaintenanceCmd.java | 6 - .../admin/host/DeclareHostAsDegradedCmd.java | 5 - .../api/command/admin/host/DeleteHostCmd.java | 6 - .../admin/host/FindHostsForMigrationCmd.java | 6 - .../api/command/admin/host/ListHostTagsCmd.java | 8 +- .../api/command/admin/host/ListHostsCmd.java | 6 - .../admin/host/PrepareForMaintenanceCmd.java | 6 - .../api/command/admin/host/ReconnectHostCmd.java | 6 - .../admin/host/ReleaseHostReservationCmd.java | 6 - .../api/command/admin/host/UpdateHostCmd.java | 6 - .../command/admin/host/UpdateHostPasswordCmd.java | 9 +- .../ConfigureInternalLoadBalancerElementCmd.java | 6 - .../CreateInternalLoadBalancerElementCmd.java | 6 - .../ListInternalLoadBalancerElementsCmd.java | 6 - .../api/command/admin/management/ListMgmtsCmd.java | 9 +- .../command/admin/network/AddNetworkDeviceCmd.java | 6 - .../network/AddNetworkServiceProviderCmd.java | 6 - .../network/CreateGuestNetworkIpv6PrefixCmd.java | 8 +- .../network/CreateManagementNetworkIpRangeCmd.java | 10 +- .../admin/network/CreateNetworkOfferingCmd.java | 19 +- .../admin/network/CreatePhysicalNetworkCmd.java | 6 - .../network/CreateStorageNetworkIpRangeCmd.java | 8 +- .../admin/network/DedicateGuestVlanRangeCmd.java | 6 - .../network/DeleteGuestNetworkIpv6PrefixCmd.java | 8 +- .../network/DeleteManagementNetworkIpRangeCmd.java | 10 +- .../admin/network/DeleteNetworkDeviceCmd.java | 6 - .../admin/network/DeleteNetworkOfferingCmd.java | 6 - .../network/DeleteNetworkServiceProviderCmd.java | 6 - .../admin/network/DeletePhysicalNetworkCmd.java | 6 - .../network/DeleteStorageNetworkIpRangeCmd.java | 6 - .../network/ListDedicatedGuestVlanRangesCmd.java | 6 - .../network/ListGuestNetworkIpv6PrefixesCmd.java | 8 +- .../command/admin/network/ListGuestVlansCmd.java | 8 +- .../network/ListNetworkIsolationMethodsCmd.java | 6 - .../network/ListNetworkServiceProvidersCmd.java | 6 - .../admin/network/ListPhysicalNetworksCmd.java | 6 - .../network/ListStorageNetworkIpRangeCmd.java | 5 - .../network/ListSupportedNetworkServicesCmd.java | 6 - .../command/admin/network/MigrateNetworkCmd.java | 9 +- .../api/command/admin/network/MigrateVPCCmd.java | 9 +- .../network/ReleaseDedicatedGuestVlanRangeCmd.java | 6 - .../admin/network/UpdateNetworkOfferingCmd.java | 6 - .../network/UpdateNetworkServiceProviderCmd.java | 6 - .../admin/network/UpdatePhysicalNetworkCmd.java | 6 - .../UpdatePodManagementNetworkIpRangeCmd.java | 8 +- .../network/UpdateStorageNetworkIpRangeCmd.java | 6 - .../admin/offering/CreateDiskOfferingCmd.java | 6 - .../admin/offering/CreateServiceOfferingCmd.java | 8 +- .../admin/offering/DeleteDiskOfferingCmd.java | 6 - .../admin/offering/DeleteServiceOfferingCmd.java | 6 - ...AccountAllowedToCreateOfferingsWithTagsCmd.java | 56 + .../admin/offering/UpdateDiskOfferingCmd.java | 8 - .../admin/offering/UpdateServiceOfferingCmd.java | 9 - .../ChangeOutOfBandManagementPasswordCmd.java | 9 +- .../ConfigureOutOfBandManagementCmd.java | 8 +- .../DisableOutOfBandManagementForClusterCmd.java | 8 +- .../DisableOutOfBandManagementForHostCmd.java | 8 +- .../DisableOutOfBandManagementForZoneCmd.java | 8 +- .../EnableOutOfBandManagementForClusterCmd.java | 8 +- .../EnableOutOfBandManagementForHostCmd.java | 8 +- .../EnableOutOfBandManagementForZoneCmd.java | 8 +- .../IssueOutOfBandManagementPowerActionCmd.java | 9 +- .../api/command/admin/pod/CreatePodCmd.java | 14 +- .../api/command/admin/pod/DeletePodCmd.java | 6 - .../api/command/admin/pod/ListPodsByCmd.java | 6 - .../api/command/admin/pod/UpdatePodCmd.java | 6 - .../api/command/admin/region/AddRegionCmd.java | 6 - .../admin/region/CreatePortableIpRangeCmd.java | 6 - .../api/command/admin/region/RemoveRegionCmd.java | 6 - .../api/command/admin/region/UpdateRegionCmd.java | 6 - .../command/admin/resource/ArchiveAlertsCmd.java | 6 - .../command/admin/resource/DeleteAlertsCmd.java | 6 - .../api/command/admin/resource/ListAlertsCmd.java | 6 - .../command/admin/resource/ListCapacityCmd.java | 6 - .../admin/resource/StartRollingMaintenanceCmd.java | 11 +- .../admin/resource/UploadCustomCertificateCmd.java | 6 - .../admin/resource/icon/DeleteResourceIconCmd.java | 6 - .../admin/resource/icon/ListResourceIconCmd.java | 6 - .../admin/resource/icon/UploadResourceIconCmd.java | 6 - .../admin/router/ConfigureOvsElementCmd.java | 6 - .../router/ConfigureVirtualRouterElementCmd.java | 6 - .../router/CreateVirtualRouterElementCmd.java | 6 - .../api/command/admin/router/DestroyRouterCmd.java | 6 - .../router/GetRouterHealthCheckResultsCmd.java | 8 +- .../command/admin/router/ListOvsElementsCmd.java | 6 - .../api/command/admin/router/ListRoutersCmd.java | 6 - .../admin/router/ListVirtualRouterElementsCmd.java | 6 - .../api/command/admin/router/RebootRouterCmd.java | 6 - .../api/command/admin/router/StartRouterCmd.java | 6 - .../api/command/admin/router/StopRouterCmd.java | 6 - .../api/command/admin/router/UpgradeRouterCmd.java | 6 - .../admin/router/UpgradeRouterTemplateCmd.java | 6 - .../command/admin/storage/AddImageStoreCmd.java | 6 - .../storage/CreateSecondaryStagingStoreCmd.java | 6 - .../admin/storage/CreateStoragePoolCmd.java | 6 - .../command/admin/storage/DeleteImageStoreCmd.java | 6 - .../api/command/admin/storage/DeletePoolCmd.java | 6 - .../storage/DeleteSecondaryStagingStoreCmd.java | 6 - .../storage/FindStoragePoolsForMigrationCmd.java | 6 - .../command/admin/storage/ListImageStoresCmd.java | 6 - .../command/admin/storage/ListStoragePoolsCmd.java | 6 - .../admin/storage/ListStorageProvidersCmd.java | 6 - .../command/admin/storage/ListStorageTagsCmd.java | 6 - .../storage/MigrateSecondaryStorageDataCmd.java | 10 +- .../command/admin/storage/SyncStoragePoolCmd.java | 8 +- .../storage/UpdateCloudToUseObjectStoreCmd.java | 6 - .../storage/UpdateStorageCapabilitiesCmd.java | 9 +- .../admin/storage/UpdateStoragePoolCmd.java | 6 - .../api/command/admin/swift/AddSwiftCmd.java | 6 - .../api/command/admin/swift/ListSwiftsCmd.java | 6 - .../command/admin/systemvm/DestroySystemVmCmd.java | 8 +- .../command/admin/systemvm/ListSystemVMsCmd.java | 6 - .../command/admin/systemvm/MigrateSystemVMCmd.java | 6 - .../command/admin/systemvm/PatchSystemVMCmd.java | 9 +- .../command/admin/systemvm/RebootSystemVmCmd.java | 6 - .../command/admin/systemvm/StartSystemVMCmd.java | 6 - .../command/admin/systemvm/StopSystemVmCmd.java | 6 - .../command/admin/systemvm/UpgradeSystemVMCmd.java | 6 - .../command/admin/template/PrepareTemplateCmd.java | 6 - .../command/admin/usage/AddTrafficMonitorCmd.java | 6 - .../api/command/admin/usage/AddTrafficTypeCmd.java | 6 - .../admin/usage/DeleteTrafficMonitorCmd.java | 6 - .../command/admin/usage/DeleteTrafficTypeCmd.java | 6 - .../admin/usage/GenerateUsageRecordsCmd.java | 6 - .../admin/usage/ListTrafficMonitorsCmd.java | 6 - .../usage/ListTrafficTypeImplementorsCmd.java | 5 - .../command/admin/usage/ListTrafficTypesCmd.java | 6 - .../command/admin/usage/ListUsageRecordsCmd.java | 9 +- .../api/command/admin/usage/ListUsageTypesCmd.java | 6 - .../admin/usage/RemoveRawUsageRecordsCmd.java | 6 - .../command/admin/usage/UpdateTrafficTypeCmd.java | 6 - .../api/command/admin/user/CreateUserCmd.java | 6 - .../api/command/admin/user/DeleteUserCmd.java | 6 - .../api/command/admin/user/DisableUserCmd.java | 6 - .../api/command/admin/user/EnableUserCmd.java | 6 - .../api/command/admin/user/GetUserCmd.java | 6 - .../api/command/admin/user/GetUserKeysCmd.java | 11 +- .../api/command/admin/user/ListUsersCmd.java | 6 - .../api/command/admin/user/LockUserCmd.java | 6 - .../api/command/admin/user/MoveUserCmd.java | 6 - .../api/command/admin/user/RegisterCmd.java | 6 - .../api/command/admin/user/UpdateUserCmd.java | 6 - .../command/admin/vlan/CreateVlanIpRangeCmd.java | 10 +- .../admin/vlan/DedicatePublicIpRangeCmd.java | 6 - .../command/admin/vlan/DeleteVlanIpRangeCmd.java | 6 - .../command/admin/vlan/ListVlanIpRangesCmd.java | 6 - .../admin/vlan/ReleasePublicIpRangeCmd.java | 6 - .../command/admin/vlan/UpdateVlanIpRangeCmd.java | 10 +- .../api/command/admin/vm/AssignVMCmd.java | 6 - .../api/command/admin/vm/ExpungeVMCmd.java | 6 - .../api/command/admin/vm/GetVMUserDataCmd.java | 5 - .../admin/vm/ImportUnmanagedInstanceCmd.java | 8 +- .../admin/vm/ListUnmanagedInstancesCmd.java | 9 +- .../api/command/admin/vm/MigrateVMCmd.java | 6 - .../vm/MigrateVirtualMachineWithVolumeCmd.java | 43 +- .../api/command/admin/vm/RecoverVMCmd.java | 6 - .../command/admin/vm/UnmanageVMInstanceCmd.java | 10 +- .../admin/vpc/CreatePrivateGatewayByAdminCmd.java | 2 +- .../command/admin/vpc/CreateVPCOfferingCmd.java | 6 - .../command/admin/vpc/DeletePrivateGatewayCmd.java | 6 - .../command/admin/vpc/DeleteVPCOfferingCmd.java | 6 - .../command/admin/vpc/UpdateVPCOfferingCmd.java | 6 - .../api/command/admin/zone/CreateZoneCmd.java | 17 +- .../api/command/admin/zone/DeleteZoneCmd.java | 6 - .../admin/zone/MarkDefaultZoneForAccountCmd.java | 6 - .../api/command/admin/zone/UpdateZoneCmd.java | 6 - .../user/account/AddAccountToProjectCmd.java | 6 - .../command/user/account/AddUserToProjectCmd.java | 8 +- .../user/account/DeleteAccountFromProjectCmd.java | 6 - .../user/account/DeleteUserFromProjectCmd.java | 8 +- .../user/account/ListProjectAccountsCmd.java | 6 - .../user/address/DisassociateIPAddrCmd.java | 6 - .../api/command/user/address/ReleaseIPAddrCmd.java | 6 - .../api/command/user/address/ReserveIPAddrCmd.java | 6 - .../api/command/user/address/UpdateIPAddrCmd.java | 8 +- .../user/affinitygroup/CreateAffinityGroupCmd.java | 6 - .../user/affinitygroup/DeleteAffinityGroupCmd.java | 6 - .../affinitygroup/ListAffinityGroupTypesCmd.java | 6 - .../user/affinitygroup/ListAffinityGroupsCmd.java | 6 - .../user/autoscale/CreateAutoScalePolicyCmd.java | 14 +- .../user/autoscale/CreateAutoScaleVmGroupCmd.java | 15 +- .../autoscale/CreateAutoScaleVmProfileCmd.java | 139 +- .../command/user/autoscale/CreateConditionCmd.java | 23 +- .../user/autoscale/DeleteAutoScalePolicyCmd.java | 6 - .../user/autoscale/DeleteAutoScaleVmGroupCmd.java | 18 +- .../autoscale/DeleteAutoScaleVmProfileCmd.java | 6 - .../command/user/autoscale/DeleteConditionCmd.java | 8 +- .../user/autoscale/ListAutoScalePoliciesCmd.java | 17 +- .../user/autoscale/ListAutoScaleVmGroupsCmd.java | 13 +- .../user/autoscale/ListAutoScaleVmProfilesCmd.java | 6 - .../command/user/autoscale/ListConditionsCmd.java | 12 +- .../command/user/autoscale/ListCountersCmd.java | 9 +- .../user/autoscale/UpdateAutoScalePolicyCmd.java | 20 +- .../user/autoscale/UpdateAutoScaleVmGroupCmd.java | 18 +- .../autoscale/UpdateAutoScaleVmProfileCmd.java | 54 +- .../command/user/autoscale/UpdateConditionCmd.java | 117 + .../AssignVirtualMachineToBackupOfferingCmd.java | 11 +- .../api/command/user/backup/CreateBackupCmd.java | 9 +- .../user/backup/CreateBackupScheduleCmd.java | 8 +- .../api/command/user/backup/DeleteBackupCmd.java | 23 +- .../user/backup/DeleteBackupScheduleCmd.java | 8 +- .../user/backup/ListBackupOfferingsCmd.java | 7 +- .../command/user/backup/ListBackupScheduleCmd.java | 10 +- .../api/command/user/backup/ListBackupsCmd.java | 9 +- .../RemoveVirtualMachineFromBackupOfferingCmd.java | 11 +- .../api/command/user/backup/RestoreBackupCmd.java | 9 +- .../RestoreVolumeFromBackupAndAttachToVMCmd.java | 9 +- .../user/backup/UpdateBackupScheduleCmd.java | 3 +- .../command/user/config/ListCapabilitiesCmd.java | 11 +- .../consoleproxy/CreateConsoleEndpointCmd.java | 8 +- .../api/command/user/event/ArchiveEventsCmd.java | 6 - .../api/command/user/event/DeleteEventsCmd.java | 6 - .../api/command/user/event/ListEventTypesCmd.java | 6 - .../api/command/user/event/ListEventsCmd.java | 6 - .../user/firewall/CreateEgressFirewallRuleCmd.java | 6 - .../user/firewall/CreateFirewallRuleCmd.java | 6 - .../user/firewall/CreatePortForwardingRuleCmd.java | 6 - .../user/firewall/DeleteEgressFirewallRuleCmd.java | 6 - .../user/firewall/DeleteFirewallRuleCmd.java | 6 - .../user/firewall/DeletePortForwardingRuleCmd.java | 6 - .../user/firewall/ListEgressFirewallRulesCmd.java | 6 - .../user/firewall/ListFirewallRulesCmd.java | 6 - .../user/firewall/ListPortForwardingRulesCmd.java | 6 - .../user/firewall/UpdateEgressFirewallRuleCmd.java | 6 - .../user/firewall/UpdateFirewallRuleCmd.java | 8 +- .../user/firewall/UpdatePortForwardingRuleCmd.java | 6 - .../user/guest/ListGuestOsCategoriesCmd.java | 6 - .../api/command/user/guest/ListGuestOsCmd.java | 6 - .../user/ipv6/CreateIpv6FirewallRuleCmd.java | 8 +- .../user/ipv6/DeleteIpv6FirewallRuleCmd.java | 8 +- .../user/ipv6/ListIpv6FirewallRulesCmd.java | 8 +- .../user/ipv6/UpdateIpv6FirewallRuleCmd.java | 8 +- .../api/command/user/iso/DeleteIsoCmd.java | 10 - .../api/command/user/iso/ExtractIsoCmd.java | 10 - .../api/command/user/job/ListAsyncJobsCmd.java | 8 +- .../command/user/job/QueryAsyncJobResultCmd.java | 6 - .../loadbalancer/AssignCertToLoadBalancerCmd.java | 6 - .../loadbalancer/AssignToLoadBalancerRuleCmd.java | 8 +- .../CreateApplicationLoadBalancerCmd.java | 6 - .../loadbalancer/CreateLBHealthCheckPolicyCmd.java | 6 - .../loadbalancer/CreateLoadBalancerRuleCmd.java | 8 +- .../DeleteApplicationLoadBalancerCmd.java | 6 - .../loadbalancer/DeleteLBHealthCheckPolicyCmd.java | 6 - .../loadbalancer/DeleteLoadBalancerRuleCmd.java | 6 - .../user/loadbalancer/DeleteSslCertCmd.java | 8 +- .../ListApplicationLoadBalancersCmd.java | 6 - .../loadbalancer/ListLBHealthCheckPoliciesCmd.java | 6 - .../loadbalancer/ListLBStickinessPoliciesCmd.java | 6 - .../loadbalancer/ListLoadBalancerRulesCmd.java | 6 - .../command/user/loadbalancer/ListSslCertsCmd.java | 6 - .../RemoveCertFromLoadBalancerCmd.java | 6 - .../RemoveFromLoadBalancerRuleCmd.java | 8 +- .../UpdateApplicationLoadBalancerCmd.java | 6 - .../loadbalancer/UpdateLBHealthCheckPolicyCmd.java | 6 - .../loadbalancer/UpdateLBStickinessPolicyCmd.java | 6 - .../loadbalancer/UpdateLoadBalancerRuleCmd.java | 6 - .../user/loadbalancer/UploadSslCertCmd.java | 6 - .../user/nat/CreateIpForwardingRuleCmd.java | 6 - .../user/nat/DeleteIpForwardingRuleCmd.java | 6 - .../api/command/user/nat/DisableStaticNatCmd.java | 6 - .../api/command/user/nat/EnableStaticNatCmd.java | 6 - .../command/user/nat/ListIpForwardingRulesCmd.java | 6 - .../command/user/network/CreateNetworkACLCmd.java | 6 - .../user/network/CreateNetworkACLListCmd.java | 6 - .../api/command/user/network/CreateNetworkCmd.java | 23 + .../user/network/CreateNetworkPermissionsCmd.java | 8 +- .../command/user/network/DeleteNetworkACLCmd.java | 6 - .../user/network/DeleteNetworkACLListCmd.java | 6 - .../api/command/user/network/DeleteNetworkCmd.java | 6 - .../user/network/ListNetworkACLListsCmd.java | 6 - .../command/user/network/ListNetworkACLsCmd.java | 6 - .../user/network/ListNetworkOfferingsCmd.java | 6 - .../user/network/ListNetworkPermissionsCmd.java | 8 +- .../user/network/RemoveNetworkPermissionsCmd.java | 8 +- .../user/network/ReplaceNetworkACLListCmd.java | 6 - .../user/network/ResetNetworkPermissionsCmd.java | 8 +- .../command/user/network/RestartNetworkCmd.java | 6 - .../user/network/UpdateNetworkACLListCmd.java | 6 - .../api/command/user/network/UpdateNetworkCmd.java | 18 +- .../user/offering/ListDiskOfferingsCmd.java | 6 - .../user/offering/ListServiceOfferingsCmd.java | 6 - .../api/command/user/project/CreateProjectCmd.java | 6 - .../api/command/user/project/DeleteProjectCmd.java | 6 - .../user/project/DeleteProjectInvitationCmd.java | 6 - .../user/project/ListProjectInvitationsCmd.java | 6 - .../api/command/user/project/ListProjectsCmd.java | 6 - .../command/user/project/SuspendProjectCmd.java | 6 - .../api/command/user/project/UpdateProjectCmd.java | 6 - .../user/project/UpdateProjectInvitationCmd.java | 6 - .../api/command/user/region/ListRegionsCmd.java | 6 - .../ha/gslb/AssignToGlobalLoadBalancerRuleCmd.java | 6 - .../ha/gslb/CreateGlobalLoadBalancerRuleCmd.java | 6 - .../ha/gslb/DeleteGlobalLoadBalancerRuleCmd.java | 6 - .../ha/gslb/ListGlobalLoadBalancerRuleCmd.java | 6 - .../ha/gslb/UpdateGlobalLoadBalancerRuleCmd.java | 6 - .../user/resource/GetCloudIdentifierCmd.java | 6 - .../user/resource/ListDetailOptionsCmd.java | 8 +- .../command/user/resource/ListHypervisorsCmd.java | 6 - .../user/resource/ListResourceLimitsCmd.java | 6 - .../user/resource/UpdateResourceCountCmd.java | 6 - .../user/resource/UpdateResourceLimitCmd.java | 6 - .../AuthorizeSecurityGroupEgressCmd.java | 6 - .../AuthorizeSecurityGroupIngressCmd.java | 6 - .../user/securitygroup/CreateSecurityGroupCmd.java | 6 - .../user/securitygroup/DeleteSecurityGroupCmd.java | 6 - .../user/securitygroup/ListSecurityGroupsCmd.java | 6 - .../RevokeSecurityGroupEgressCmd.java | 6 - .../RevokeSecurityGroupIngressCmd.java | 6 - .../user/securitygroup/UpdateSecurityGroupCmd.java | 9 +- .../command/user/snapshot/CreateSnapshotCmd.java | 6 - .../snapshot/CreateSnapshotFromVMSnapshotCmd.java | 6 - .../user/snapshot/CreateSnapshotPolicyCmd.java | 6 - .../command/user/snapshot/DeleteSnapshotCmd.java | 6 - .../user/snapshot/DeleteSnapshotPoliciesCmd.java | 6 - .../user/snapshot/ListSnapshotPoliciesCmd.java | 6 - .../command/user/snapshot/ListSnapshotsCmd.java | 6 - .../command/user/snapshot/RevertSnapshotCmd.java | 6 - .../user/snapshot/UpdateSnapshotPolicyCmd.java | 8 +- .../api/command/user/ssh/CreateSSHKeyPairCmd.java | 5 - .../api/command/user/ssh/DeleteSSHKeyPairCmd.java | 6 - .../api/command/user/ssh/ListSSHKeyPairsCmd.java | 6 - .../command/user/ssh/RegisterSSHKeyPairCmd.java | 6 - .../api/command/user/tag/CreateTagsCmd.java | 6 - .../api/command/user/tag/DeleteTagsCmd.java | 6 - .../api/command/user/tag/ListTagsCmd.java | 6 - .../command/user/template/DeleteTemplateCmd.java | 10 - .../command/user/template/ExtractTemplateCmd.java | 10 - .../template/UpdateTemplatePermissionsCmd.java | 2 +- .../command/user/userdata/DeleteUserDataCmd.java | 6 - .../user/userdata/LinkUserDataToTemplateCmd.java | 6 - .../api/command/user/userdata/ListUserDataCmd.java | 6 - .../command/user/userdata/RegisterUserDataCmd.java | 5 - .../api/command/user/vm/DeployVMCmd.java | 32 + .../api/command/user/vm/GetVMPasswordCmd.java | 5 - .../api/command/user/vm/ListNicsCmd.java | 6 - .../cloudstack/api/command/user/vm/ListVMsCmd.java | 8 + .../api/command/user/vm/RemoveIpFromVmNicCmd.java | 6 - .../cloudstack/api/command/user/vm/StartVMCmd.java | 11 + .../api/command/user/vm/UpdateVmNicIpCmd.java | 6 - .../api/command/user/vmgroup/CreateVMGroupCmd.java | 6 - .../api/command/user/vmgroup/DeleteVMGroupCmd.java | 6 - .../api/command/user/vmgroup/ListVMGroupsCmd.java | 6 - .../api/command/user/vmgroup/UpdateVMGroupCmd.java | 6 - .../user/vmsnapshot/CreateVMSnapshotCmd.java | 6 - .../user/vmsnapshot/DeleteVMSnapshotCmd.java | 6 - .../command/user/vmsnapshot/ListVMSnapshotCmd.java | 6 - .../command/user/volume/AddResourceDetailCmd.java | 6 - .../api/command/user/volume/AssignVolumeCmd.java | 119 + .../user/volume/ChangeOfferingForVolumeCmd.java | 8 +- .../api/command/user/volume/DeleteVolumeCmd.java | 6 - .../api/command/user/volume/ExtractVolumeCmd.java | 10 - .../user/volume/ListResourceDetailsCmd.java | 6 - .../api/command/user/volume/ListVolumesCmd.java | 8 + .../user/volume/RemoveResourceDetailCmd.java | 6 - .../api/command/user/vpc/CreateStaticRouteCmd.java | 6 - .../api/command/user/vpc/CreateVPCCmd.java | 9 + .../api/command/user/vpc/DeleteStaticRouteCmd.java | 6 - .../api/command/user/vpc/DeleteVPCCmd.java | 6 - .../command/user/vpc/ListPrivateGatewaysCmd.java | 6 - .../api/command/user/vpc/ListStaticRoutesCmd.java | 6 - .../api/command/user/vpc/ListVPCOfferingsCmd.java | 20 +- .../api/command/user/vpc/RestartVPCCmd.java | 6 - .../api/command/user/vpc/UpdateVPCCmd.java | 10 +- .../api/command/user/vpn/AddVpnUserCmd.java | 6 - .../command/user/vpn/CreateRemoteAccessVpnCmd.java | 8 +- .../command/user/vpn/CreateVpnConnectionCmd.java | 6 - .../user/vpn/CreateVpnCustomerGatewayCmd.java | 6 - .../api/command/user/vpn/CreateVpnGatewayCmd.java | 6 - .../command/user/vpn/DeleteRemoteAccessVpnCmd.java | 6 - .../command/user/vpn/DeleteVpnConnectionCmd.java | 6 - .../user/vpn/DeleteVpnCustomerGatewayCmd.java | 6 - .../api/command/user/vpn/DeleteVpnGatewayCmd.java | 6 - .../command/user/vpn/ListRemoteAccessVpnsCmd.java | 8 +- .../command/user/vpn/ListVpnConnectionsCmd.java | 6 - .../user/vpn/ListVpnCustomerGatewaysCmd.java | 6 - .../api/command/user/vpn/ListVpnGatewaysCmd.java | 6 - .../api/command/user/vpn/ListVpnUsersCmd.java | 6 - .../api/command/user/vpn/RemoveVpnUserCmd.java | 6 - .../command/user/vpn/ResetVpnConnectionCmd.java | 6 - .../command/user/vpn/UpdateRemoteAccessVpnCmd.java | 8 +- .../command/user/vpn/UpdateVpnConnectionCmd.java | 6 - .../user/vpn/UpdateVpnCustomerGatewayCmd.java | 6 - .../api/command/user/vpn/UpdateVpnGatewayCmd.java | 6 - .../api/response/AnnotationResponse.java | 4 +- .../api/response/AutoScalePolicyResponse.java | 8 + .../api/response/AutoScaleVmGroupResponse.java | 141 +- .../api/response/AutoScaleVmProfileResponse.java | 30 +- .../api/response/CapabilitiesResponse.java | 32 + .../cloudstack/api/response/ConditionResponse.java | 22 +- .../api/response/ConfigurationGroupResponse.java | 76 + .../api/response/ConfigurationResponse.java | 96 + .../response/ConfigurationSubGroupResponse.java | 50 + .../cloudstack/api/response/CounterResponse.java | 8 + .../api/response/DomainRouterResponse.java | 8 + .../response/HypervisorCapabilitiesResponse.java | 4 + ...ntAllowedToCreateOfferingsWithTagsResponse.java | 34 + .../api/response/LBStickinessPolicyResponse.java | 4 +- .../api/response/NetworkOfferingResponse.java | 8 + .../cloudstack/api/response/NetworkResponse.java | 48 + .../cloudstack/api/response/NicResponse.java | 16 +- .../api/response/PrivateGatewayResponse.java | 2 +- .../api/response/SSHKeyPairResponse.java | 16 + .../cloudstack/api/response/SystemVmResponse.java | 12 + .../cloudstack/api/response/UserVmResponse.java | 46 +- .../api/response/VMSnapshotResponse.java | 2 +- .../cloudstack/api/response/VolumeResponse.java | 12 + .../cloudstack/api/response/VpcResponse.java | 8 + .../cloudstack/api/response/ZoneResponse.java | 36 + .../apache/cloudstack/backup/BackupManager.java | 13 +- .../apache/cloudstack/backup/BackupProvider.java | 5 +- .../java/org/apache/cloudstack/ca/CAManager.java | 11 +- .../cloudstack/config/ApiServiceConfiguration.java | 6 +- .../consoleproxy/ConsoleAccessManager.java | 18 +- .../org/apache/cloudstack/context/CallContext.java | 14 + .../org/apache/cloudstack/query/QueryService.java | 12 +- .../apache/cloudstack/region/RegionService.java | 2 +- .../apache/cloudstack/usage/UsageUnitTypes.java | 52 + .../com/cloud/agent/api/storage/OVFHelperTest.java | 2 +- .../com/cloud/agent/api/to/LoadBalancerTOTest.java | 176 + .../com/cloud/deploy/DataCenterDeploymentTest.java | 57 + .../test/java/com/cloud/host/ControlStateTest.java | 109 + .../com/cloud/network/as/AutoScalePolicyTest.java | 55 + .../com/cloud/network/as/AutoScaleVmGroupTest.java | 51 + .../network/router/VirtualRouterAutoScaleTest.java | 68 + .../vm/MigrateVirtualMachineWithVolumeCmdTest.java | 226 ++ .../api/command/admin/zone/CreateZoneCmdTest.java | 35 + .../api/command/test/AddHostCmdTest.java | 3 +- .../command/test/AddSecondaryStorageCmdTest.java | 3 +- .../test/CreateAutoScaleVmProfileCmdTest.java | 176 + .../api/command/test/ResetVMUserDataCmdTest.java | 2 +- .../test/UpdateAutoScaleVmProfileCmdTest.java | 129 + .../api/command/test/UpdateConditionCmdTest.java | 132 + .../command/test/UpdateHostPasswordCmdTest.java | 14 +- .../command/user/network/CreateNetworkCmdTest.java | 298 ++ .../command/user/network/UpdateNetworkCmdTest.java | 176 + .../api/command/user/vpc/CreateVPCCmdTest.java | 165 + .../api/command/user/vpc/UpdateVPCCmdTest.java | 94 + .../cloudstack/usage/UsageUnitTypesTest.java | 53 + client/bindir/cloud-setup-management.in | 2 +- client/conf/db.properties.in | 1 + client/conf/ehcache.xml.in | 4 +- client/pom.xml | 51 +- cloud-cli/cloudapis/__init__.py | 1 - cloud-cli/cloudapis/cloud.py | 2 - .../com/cloud/agent/api/NetworkUsageCommand.java | 2 +- .../com/cloud/agent/api/UnregisterNicCommand.java | 2 +- .../java/com/cloud/agent/api/VmDiskStatsEntry.java | 37 + .../java/com/cloud/agent/api/VmStatsEntry.java | 12 +- .../api/routing/GetAutoScaleMetricsAnswer.java | 51 + .../api/routing/GetAutoScaleMetricsCommand.java | 65 + .../cloud/agent/api/routing/IpAssocCommand.java | 5 - .../cloud/agent/api/routing/IpAssocVpcCommand.java | 6 - .../agent/api/routing/NetworkElementCommand.java | 3 +- .../agent/api/routing/SetFirewallRulesCommand.java | 5 - .../api/routing/SetIpv6FirewallRulesCommand.java | 5 - .../api/routing/SetMonitorServiceCommand.java | 5 + .../agent/api/routing/SetNetworkACLCommand.java | 5 - .../api/routing/SetPortForwardingRulesCommand.java | 5 - .../api/routing/SetStaticNatRulesCommand.java | 5 - .../agent/api/routing/SetStaticRouteCommand.java | 5 - .../agent/api/routing/SiteLoadBalancerConfig.java | 2 +- .../agent/api/routing/UpdateNetworkCommand.java | 59 + .../api/storage/CreateDatadiskTemplateCommand.java | 6 + .../agent/resource/virtualnetwork/VRScripts.java | 2 + .../virtualnetwork/VirtualRoutingResource.java | 54 + .../facade/IpAssociationConfigItem.java | 1 + .../facade/SetGuestNetworkConfigItem.java | 4 +- .../virtualnetwork/model/GuestNetwork.java | 10 + .../resource/virtualnetwork/model/IpAddress.java | 9 +- .../resource/virtualnetwork/model/TcpAclRule.java | 2 +- .../resource/virtualnetwork/model/UdpAclRule.java | 2 +- .../com/cloud/network/HAProxyConfigurator.java | 8 +- .../network/resource/TrafficSentinelResource.java | 2 +- .../com/cloud/resource/ServerResourceBase.java | 131 +- .../storage/template/HttpTemplateDownloader.java | 2 +- .../template/MetalinkTemplateDownloader.java | 2 +- .../java/com/cloud/storage/template/Processor.java | 2 +- .../storage/template/S3TemplateDownloader.java | 4 +- .../cloudstack/storage/command/DettachCommand.java | 9 + .../storage/command/MoveVolumeCommand.java | 66 + .../core/spring-core-registry-core-context.xml | 2 +- .../agent/api/storage/DownloadAnswerTest.java | 2 +- .../resource/virtualnetwork/ConfigHelperTest.java | 2 +- .../virtualnetwork/VirtualRoutingResourceTest.java | 6 +- .../com/cloud/resource/ServerResourceBaseTest.java | 241 ++ .../cloudstack/api/agent/test/AnswerTest.java | 2 +- .../agent/test/GetAutoScaleMetricsAnswerTest.java | 93 + .../agent/test/GetAutoScaleMetricsCommandTest.java | 77 + debian/cloudstack-usage.postinst | 7 + debian/control | 4 +- debian/rules | 2 + .../java/com/cloud/vm/VirtualMachineManager.java | 26 +- .../cloud/entity/api/VirtualMachineEntity.java | 6 +- .../service/NetworkOrchestrationService.java | 2 +- .../subsystem/api/network/NetworkSubsystem.java | 2 +- .../subsystem/api/storage/DataMotionStrategy.java | 2 +- .../subsystem/api/storage/EndPointSelector.java | 2 + .../engine/subsystem/api/storage/SnapshotInfo.java | 6 + .../subsystem/api/storage/VolumeService.java | 4 + .../main/java/com/cloud/alert/AlertManager.java | 2 +- .../java/com/cloud/capacity/CapacityManager.java | 2 +- .../cloud/configuration/ConfigurationManager.java | 23 +- .../cloud/deploy/DeploymentPlanningManager.java | 6 + .../java/com/cloud/network/IpAddressManager.java | 11 +- .../network/lb/LoadBalancingRulesManager.java | 13 +- .../com/cloud/network/rules/FirewallManager.java | 2 +- .../java/com/cloud/network/vpc/VpcManager.java | 3 +- .../java/com/cloud/resource/ResourceManager.java | 6 +- .../java/com/cloud/storage/StorageManager.java | 34 +- .../com/cloud/vm/VirtualMachineProfileImpl.java | 5 +- engine/orchestration/pom.xml | 3 - .../com/cloud/agent/manager/AgentManagerImpl.java | 10 +- .../agent/manager/ClusteredAgentManagerImpl.java | 8 +- .../com/cloud/vm/VirtualMachineManagerImpl.java | 171 +- .../engine/cloud/entity/api/VMEntityManager.java | 2 +- .../cloud/entity/api/VMEntityManagerImpl.java | 5 +- .../cloud/entity/api/VirtualMachineEntityImpl.java | 6 +- .../entity/api/db/EngineDataCenterVO.java | 10 + .../engine/orchestration/NetworkOrchestrator.java | 154 +- .../engine/orchestration/VolumeOrchestrator.java | 67 +- .../cloud/vm/VirtualMachineManagerImplTest.java | 159 +- .../orchestration/NetworkOrchestratorTest.java | 2 + .../engine/provisioning/test/ProvisioningTest.java | 63 +- .../src/test/resources/provisioningContext.xml | 47 - engine/schema/pom.xml | 6 + .../src/main/java/com/cloud/dc/DataCenterVO.java | 13 + .../main/java/com/cloud/dc/dao/DataCenterDao.java | 2 + .../java/com/cloud/dc/dao/DataCenterDaoImpl.java | 21 + .../main/java/com/cloud/domain/dao/DomainDao.java | 3 + .../java/com/cloud/domain/dao/DomainDaoImpl.java | 25 + .../src/main/java/com/cloud/host/dao/HostDao.java | 8 + .../main/java/com/cloud/host/dao/HostDaoImpl.java | 24 +- .../java/com/cloud/host/dao/HostDetailsDao.java | 3 + .../com/cloud/host/dao/HostDetailsDaoImpl.java | 13 +- .../network/TungstenGuestNetworkIpAddressVO.java | 104 + .../com/cloud/network/as/AutoScalePolicyVO.java | 29 +- .../network/as/AutoScaleVmGroupStatisticsVO.java | 168 + .../com/cloud/network/as/AutoScaleVmGroupVO.java | 54 +- .../com/cloud/network/as/AutoScaleVmProfileVO.java | 85 +- .../java/com/cloud/network/as/ConditionVO.java | 17 +- .../main/java/com/cloud/network/as/CounterVO.java | 12 +- .../cloud/network/as/dao/AutoScaleVmGroupDao.java | 9 + .../network/as/dao/AutoScaleVmGroupDaoImpl.java | 70 +- .../as/dao/AutoScaleVmGroupStatisticsDao.java | 41 + .../as/dao/AutoScaleVmGroupStatisticsDaoImpl.java | 138 + .../network/as/dao/AutoScaleVmGroupVmMapDao.java | 7 + .../as/dao/AutoScaleVmGroupVmMapDaoImpl.java | 78 +- .../com/cloud/network/as/dao/ConditionDaoImpl.java | 2 +- .../java/com/cloud/network/as/dao/CounterDao.java | 2 +- .../com/cloud/network/as/dao/CounterDaoImpl.java | 12 +- .../java/com/cloud/network/dao/IPAddressDao.java | 6 + .../com/cloud/network/dao/IPAddressDaoImpl.java | 34 + .../java/com/cloud/network/dao/NetworkDaoImpl.java | 2 +- .../main/java/com/cloud/network/dao/NetworkVO.java | 26 + .../dao/TungstenGuestNetworkIpAddressDao.java | 34 + .../dao/TungstenGuestNetworkIpAddressDaoImpl.java | 93 + .../com/cloud/network/dao/TungstenProviderDao.java | 32 + .../cloud/network/dao/TungstenProviderDaoImpl.java | 84 + .../cloud/network/element/TungstenProviderVO.java | 169 + .../security/TungstenSecurityGroupRuleVO.java | 129 + .../security/dao/TungstenSecurityGroupRuleDao.java | 31 + .../dao/TungstenSecurityGroupRuleDaoImpl.java | 78 + .../src/main/java/com/cloud/network/vpc/VpcVO.java | 11 + .../com/cloud/offerings/NetworkOfferingVO.java | 24 + .../java/com/cloud/service/ServiceOfferingVO.java | 2 +- .../service/dao/ServiceOfferingDetailsDaoImpl.java | 2 +- .../main/java/com/cloud/storage/VolumeStatsVO.java | 86 + .../storage/dao/GuestOSHypervisorDaoImpl.java | 5 +- .../main/java/com/cloud/storage/dao/VolumeDao.java | 1 + .../java/com/cloud/storage/dao/VolumeDaoImpl.java | 7 + .../java/com/cloud/storage/dao/VolumeStatsDao.java | 82 + .../com/cloud/storage/dao/VolumeStatsDaoImpl.java | 124 + .../upgrade/ConfigurationGroupsAggregator.java | 106 + .../com/cloud/upgrade/DatabaseUpgradeChecker.java | 52 +- .../cloud/upgrade/DatabaseVersionHierarchy.java | 9 +- .../main/java/com/cloud/upgrade/GuestOsMapper.java | 18 +- .../com/cloud/upgrade/dao/Upgrade2214to30.java | 2 +- .../com/cloud/upgrade/dao/Upgrade222to224.java | 4 +- .../com/cloud/upgrade/dao/Upgrade304to305.java | 2 +- .../com/cloud/upgrade/dao/Upgrade41400to41500.java | 238 -- .../com/cloud/upgrade/dao/Upgrade41500to41510.java | 140 +- .../com/cloud/upgrade/dao/Upgrade41510to41520.java | 10 +- .../com/cloud/upgrade/dao/Upgrade41520to41600.java | 9 - .../com/cloud/upgrade/dao/Upgrade41600to41610.java | 10 +- .../com/cloud/upgrade/dao/Upgrade41610to41700.java | 9 +- .../com/cloud/upgrade/dao/Upgrade41700to41710.java | 2 +- .../com/cloud/upgrade/dao/Upgrade41710to41720.java | 75 + .../com/cloud/upgrade/dao/Upgrade41710to41800.java | 86 - .../com/cloud/upgrade/dao/Upgrade41720to41800.java | 712 ++++ .../com/cloud/upgrade/dao/Upgrade430to440.java | 2 +- .../com/cloud/upgrade/dao/Upgrade450to451.java | 3 +- .../src/main/java/com/cloud/usage/UsageVO.java | 6 + .../main/java/com/cloud/usage/dao/UsageDao.java | 5 +- .../java/com/cloud/usage/dao/UsageDaoImpl.java | 86 +- .../src/main/java/com/cloud/user/AccountVO.java | 4 + .../main/java/com/cloud/vm/ConsoleSessionVO.java | 134 + .../schema/src/main/java/com/cloud/vm/NicVO.java | 12 + .../java/com/cloud/vm/constants/VmDetails.java | 32 + .../java/com/cloud/vm/dao/ConsoleSessionDao.java | 36 + .../com/cloud/vm/dao/ConsoleSessionDaoImpl.java | 69 + .../src/main/java/com/cloud/vm/dao/NicDao.java | 4 + .../src/main/java/com/cloud/vm/dao/NicDaoImpl.java | 16 + .../resourcedetail/ResourceDetailsDao.java | 2 +- .../resourcedetail/ResourceDetailsDaoBase.java | 2 +- .../dao/DiskOfferingDetailsDaoImpl.java | 2 +- .../datastore/db/SnapshotDataStoreDaoImpl.java | 466 +++ ...n-daos-between-management-and-usage-context.xml | 70 + .../spring-engine-schema-core-daos-context.xml | 49 +- .../resources/META-INF/db/schema-2211to2212.sql | 2 +- .../main/resources/META-INF/db/schema-228to229.sql | 2 +- .../resources/META-INF/db/schema-229to2210.sql | 2 +- .../main/resources/META-INF/db/schema-305to306.sql | 2 +- .../resources/META-INF/db/schema-41000to41100.sql | 2 +- .../main/resources/META-INF/db/schema-410to420.sql | 4 +- .../resources/META-INF/db/schema-41610to41700.sql | 8 +- .../META-INF/db/schema-41710to41800-cleanup.sql | 20 - .../resources/META-INF/db/schema-41710to41800.sql | 577 --- .../META-INF/db/schema-41720to41800-cleanup.sql | 20 + .../resources/META-INF/db/schema-41720to41800.sql | 1495 ++++++++ .../main/resources/META-INF/db/schema-420to421.sql | 2 +- .../src/test/java/com/cloud/host/HostVOTest.java | 122 +- .../cloud/network/as/AutoScaleVmProfileVOTest.java | 65 + .../as/dao/AutoScaleVmGroupDaoImplTest.java | 137 + .../dao/AutoScaleVmGroupStatisticsDaoImplTest.java | 247 ++ .../as/dao/AutoScaleVmGroupVmMapDaoImplTest.java | 204 ++ .../cloud/upgrade/DatabaseUpgradeCheckerTest.java | 40 +- .../upgrade/DatabaseVersionHierarchyTest.java | 117 + .../storage/motion/AncientDataMotionStrategy.java | 3 +- .../manager/ImageStoreProviderManagerImpl.java | 4 +- .../storage/test/ChildTestConfiguration.java | 14 +- .../apache/cloudstack/storage/test/TestHttp.java | 22 +- .../src/test/resources/component.xml | 6 +- .../src/test/resources/fakeDriverTestContext.xml | 2 +- .../src/test/resources/storageContext.xml | 2 +- .../storage/snapshot/DefaultSnapshotStrategy.java | 64 +- .../snapshot/DefaultSnapshotStrategyTest.java | 104 +- .../allocator/AbstractStoragePoolAllocator.java | 6 + .../ClusterScopeStoragePoolAllocator.java | 2 +- .../allocator/LocalStoragePoolAllocator.java | 2 +- .../allocator/ZoneWideStoragePoolAllocator.java | 2 +- .../storage/datastore/DataObjectManagerImpl.java | 4 +- .../storage/endpoint/DefaultEndPointSelector.java | 12 +- .../storage/image/db/SnapshotDataStoreDaoImpl.java | 552 --- .../image/deployasis/DeployAsIsHelperImpl.java | 6 +- .../datastore/db/SnapshotDataStoreDaoImplTest.java | 145 + .../image/db/SnapshotDataStoreDaoImplTest.java | 77 - .../storage/datastore/PrimaryDataStoreImpl.java | 6 + .../storage/volume/VolumeServiceImpl.java | 59 +- .../cluster/ClusterServiceServletHttpHandler.java | 4 +- .../apache/cloudstack/config/Configuration.java | 29 +- .../cloudstack/config/ConfigurationGroup.java | 28 + .../cloudstack/config/ConfigurationSubGroup.java | 30 + .../framework/config/ConfigDepotAdmin.java | 4 + .../cloudstack/framework/config/ConfigKey.java | 70 +- .../config/dao/ConfigurationGroupDao.java | 25 + .../config/dao/ConfigurationGroupDaoImpl.java | 44 + .../config/dao/ConfigurationSubGroupDao.java | 31 + .../config/dao/ConfigurationSubGroupDaoImpl.java | 131 + .../framework/config/impl/ConfigDepotImpl.java | 114 + .../config/impl/ConfigurationGroupVO.java | 91 + .../config/impl/ConfigurationSubGroupVO.java | 103 + .../framework/config/impl/ConfigurationVO.java | 112 +- .../spring-framework-config-system-context.xml | 6 + .../cloudstack/framework/config/ConfigKeyTest.java | 4 +- .../config/impl/ConfigDepotAdminTest.java | 61 +- .../cloud/utils/crypt/DBEncryptionFinderCLI.java | 30 + .../utils/crypt/EncryptionSecretKeyChanger.java | 755 +++- .../java/com/cloud/utils/crypt/OVFPropertyTO.java | 130 + .../main/java/com/cloud/utils/db/GenericDao.java | 2 + .../java/com/cloud/utils/db/GenericDaoBase.java | 41 +- .../java/com/cloud/utils/db/SearchCriteria.java | 8 + .../crypt/EncryptionSecretKeyChangerTest.java | 87 + .../com/cloud/utils/db/GenericDaoBaseTest.java | 32 + .../jobs/AsyncJobManagerTestConfiguration.java | 19 +- .../cloudstack/quota/QuotaAlertManagerImpl.java | 60 +- .../apache/cloudstack/quota/QuotaManagerImpl.java | 666 ++-- .../activationrule/presetvariables/Account.java | 32 + .../presetvariables/BackupOffering.java | 33 + .../presetvariables/ComputeOffering.java | 32 + .../presetvariables/ComputingResources.java | 56 + .../activationrule/presetvariables/Domain.java | 32 + .../presetvariables/GenericPresetVariable.java | 52 + .../quota/activationrule/presetvariables/Host.java | 34 + .../presetvariables/PresetVariableHelper.java | 653 ++++ .../presetvariables/PresetVariables.java | 76 + .../activationrule/presetvariables/Resource.java | 48 + .../quota/activationrule/presetvariables/Role.java | 34 + .../activationrule/presetvariables/Storage.java | 46 + .../activationrule/presetvariables/Value.java | 188 + .../cloudstack/quota/constant/QuotaConfig.java | 24 +- .../cloudstack/quota/constant/QuotaTypes.java | 52 +- .../cloudstack/quota/dao/QuotaAccountDaoImpl.java | 15 +- .../cloudstack/quota/dao/QuotaTariffDao.java | 4 + .../cloudstack/quota/dao/QuotaTariffDaoImpl.java | 77 +- .../apache/cloudstack/quota/dao/VmTemplateDao.java | 24 + .../cloudstack/quota/dao/VmTemplateDaoImpl.java | 33 + .../apache/cloudstack/quota/vo/QuotaTariffVO.java | 98 +- .../quota/spring-framework-quota-context.xml | 1 + .../cloudstack/quota/QuotaManagerImplTest.java | 562 ++- .../presetvariables/AccountTest.java | 34 + .../presetvariables/BackupOfferingTest.java | 36 + .../presetvariables/ComputeOfferingTest.java | 35 + .../presetvariables/ComputingResourcesTest.java | 40 + .../activationrule/presetvariables/DomainTest.java | 35 + .../presetvariables/GenericPresetVariableTest.java | 73 + .../activationrule/presetvariables/HostTest.java | 34 + .../presetvariables/PresetVariableHelperTest.java | 1151 ++++++ .../presetvariables/ResourceTest.java | 40 + .../activationrule/presetvariables/RoleTest.java | 34 + .../presetvariables/StorageTest.java | 41 + .../activationrule/presetvariables/ValueTest.java | 139 + .../cloudstack/quota/constant/QuotaTypesTest.java | 2 +- .../quota/dao/QuotaAccountDaoImplTest.java | 80 + .../cloudstack/quota/vo/QuotaTariffVOTest.java | 51 + .../lifecycle/registry/ExtensionRegistry.java | 4 +- packaging/centos7/cloud.spec | 18 +- packaging/centos8/cloud.spec | 112 +- packaging/centos8/replace.properties | 2 +- packaging/el9 | 1 + packaging/suse15 | 1 + packaging/suse15/cloud-ipallocator.rc | 96 - packaging/suse15/cloud.limits | 19 - packaging/suse15/cloud.spec | 684 ---- packaging/suse15/cloudstack-agent.te | 33 - packaging/suse15/cloudstack-sccs | 20 - packaging/suse15/replace.properties | 59 - .../cloudstack/affinity/HostAffinityProcessor.java | 4 +- .../non-strict-host-affinity/pom.xml | 30 + .../affinity/NonStrictHostAffinityProcessor.java | 133 + .../non-strict-host-affinity/module.properties | 18 + .../spring-non-strict-host-affinity-context.xml | 37 + .../NonStrictHostAffinityProcessorTest.java | 172 + .../non-strict-host-anti-affinity/pom.xml | 38 + .../NonStrictHostAntiAffinityProcessor.java | 28 + .../module.properties | 18 + ...pring-non-strict-host-anti-affinity-context.xml | 37 + .../NonStrictHostAntiAffinityProcessorTest.java | 172 + plugins/alert-handlers/snmp-alerts/CS-ROOT-MIB.mib | 4 +- .../api/command/user/discovery/ListApisCmd.java | 6 - .../command/admin/ratelimit/ResetApiLimitCmd.java | 6 - .../api/command/user/ratelimit/GetApiLimitCmd.java | 6 - .../ratelimit/ApiRateLimitServiceImpl.java | 17 + .../cloudstack/ratelimit/ApiRateLimitTest.java | 18 +- .../admin/solidfire/GetPathForVolumeCmd.java | 6 - .../admin/solidfire/GetSolidFireAccountIdCmd.java | 6 - .../GetSolidFireVolumeAccessGroupIdsCmd.java | 8 +- .../admin/solidfire/GetSolidFireVolumeSizeCmd.java | 8 +- .../solidfire/GetVolumeSnapshotDetailsCmd.java | 8 +- .../admin/solidfire/GetVolumeiScsiNameCmd.java | 8 +- .../api/command/admin/sioc/UpdateSiocInfoCmd.java | 8 +- .../cloudstack/backup/DummyBackupProvider.java | 2 +- plugins/backup/networker/pom.xml | 54 + .../cloudstack/backup/NetworkerBackupProvider.java | 639 ++++ .../backup/networker/NetworkerBackupOffering.java | 76 + .../backup/networker/NetworkerClient.java | 351 ++ .../backup/networker/NetworkerObject.java | 27 + .../cloudstack/backup/networker/api/Action.java | 350 ++ .../backup/networker/api/ActionSpecificData.java | 107 + .../cloudstack/backup/networker/api/Attribute.java | 92 + .../backup/networker/api/BackupSpecificData.java | 75 + .../networker/api/CompletionNotification.java | 91 + .../cloudstack/backup/networker/api/Expire.java | 47 + .../cloudstack/backup/networker/api/Instance.java | 124 + .../cloudstack/backup/networker/api/Link.java | 91 + .../backup/networker/api/NetworkerBackup.java | 334 ++ .../backup/networker/api/NetworkerBackups.java | 92 + .../backup/networker/api/ProtectionPolicies.java | 92 + .../backup/networker/api/ProtectionPolicy.java | 175 + .../backup/networker/api/ResourceId.java | 91 + .../backup/networker/api/ServerBackup.java | 140 + .../cloudstack/backup/networker/api/Size.java | 90 + .../backup/networker/api/SummaryNotification.java | 91 + .../backup/networker/api/Traditional.java | 238 ++ .../cloudstack/networker/module.properties | 18 + .../networker/spring-backup-networker-context.xml | 27 + .../backup/networker/NetworkerClientTest.java | 732 ++++ .../cloudstack/backup/VeeamBackupProvider.java | 33 +- .../cloudstack/backup/veeam/VeeamClient.java | 26 +- .../cloudstack/backup/VeeamBackupProviderTest.java | 133 + .../cloudstack/backup/veeam/VeeamClientTest.java | 2 +- .../cloudstack/api/command/QuotaBalanceCmd.java | 6 - .../cloudstack/api/command/QuotaCreditsCmd.java | 6 - .../api/command/QuotaEmailTemplateListCmd.java | 5 - .../api/command/QuotaEmailTemplateUpdateCmd.java | 6 - .../cloudstack/api/command/QuotaEnabledCmd.java | 6 - .../cloudstack/api/command/QuotaStatementCmd.java | 6 - .../cloudstack/api/command/QuotaSummaryCmd.java | 6 - .../api/command/QuotaTariffCreateCmd.java | 137 + .../api/command/QuotaTariffDeleteCmd.java | 63 + .../cloudstack/api/command/QuotaTariffListCmd.java | 47 +- .../api/command/QuotaTariffUpdateCmd.java | 60 +- .../cloudstack/api/command/QuotaUpdateCmd.java | 6 - .../api/response/QuotaResponseBuilder.java | 5 + .../api/response/QuotaResponseBuilderImpl.java | 204 +- .../api/response/QuotaSummaryResponse.java | 12 + .../api/response/QuotaTariffResponse.java | 89 +- .../apache/cloudstack/quota/QuotaServiceImpl.java | 10 +- .../api/command/QuotaTariffListCmdTest.java | 2 +- .../api/command/QuotaTariffUpdateCmdTest.java | 2 +- .../api/response/QuotaResponseBuilderImplTest.java | 238 +- .../api/commands/DedicateClusterCmd.java | 6 - .../cloudstack/api/commands/DedicateHostCmd.java | 6 - .../cloudstack/api/commands/DedicatePodCmd.java | 6 - .../cloudstack/api/commands/DedicateZoneCmd.java | 6 - .../api/commands/ListDedicatedClustersCmd.java | 6 - .../api/commands/ListDedicatedHostsCmd.java | 6 - .../api/commands/ListDedicatedPodsCmd.java | 6 - .../api/commands/ListDedicatedZonesCmd.java | 6 - .../api/commands/ReleaseDedicatedClusterCmd.java | 6 - .../api/commands/ReleaseDedicatedHostCmd.java | 6 - .../api/commands/ReleaseDedicatedPodCmd.java | 6 - .../api/commands/ReleaseDedicatedZoneCmd.java | 6 - .../implicitplanner/ImplicitPlannerTest.java | 34 +- .../mom/inmemory/InMemoryEventBusTest.java | 6 +- .../cloud/baremetal/database/BaremetalRctDao.java | 52 +- .../baremetal/database/BaremetalRctDaoImpl.java | 52 +- .../cloud/baremetal/database/BaremetalRctVO.java | 164 +- .../com/cloud/baremetal/manager/BaremetalRct.java | 250 +- .../baremetal/manager/BaremetalVlanManager.java | 86 +- .../manager/BaremetalVlanManagerImpl.java | 544 +-- .../networkservice/BareMetalResourceBase.java | 2 +- .../networkservice/BaremetalPingPxeResource.java | 2 +- .../networkservice/BaremetalRctResponse.java | 110 +- .../networkservice/BaremetalSwitchBackend.java | 68 +- .../BaremetalVirtualRouterCommands.java | 244 +- .../networkservice/BaremetalVlanStruct.java | 184 +- .../Force10BaremetalSwitchBackend.java | 332 +- .../apache/cloudstack/api/AddBaremetalDhcpCmd.java | 6 - .../apache/cloudstack/api/AddBaremetalRctCmd.java | 166 +- .../cloudstack/api/DeleteBaremetalRctCmd.java | 164 +- .../cloudstack/api/ListBaremetalDhcpCmd.java | 6 - .../cloudstack/api/ListBaremetalPxeServersCmd.java | 5 - .../apache/cloudstack/api/ListBaremetalRctCmd.java | 6 - .../security_group_agent/cs_sg_agent.py | 472 +-- .../security_group_agent/xmlobject.py | 194 +- .../HypervResource/HypervResourceController.cs | 2 +- ...on.v2.Msvm_VirtualSystemMigrationSettingData.cs | 2 +- plugins/hypervisors/kvm/pom.xml | 5 + .../hypervisor/kvm/resource/BridgeVifDriver.java | 7 +- .../hypervisor/kvm/resource/IvsVifDriver.java | 8 +- .../kvm/resource/LibvirtComputingResource.java | 694 ++-- .../kvm/resource/LibvirtDomainXMLParser.java | 31 +- .../kvm/resource/LibvirtStoragePoolDef.java | 12 +- .../kvm/resource/LibvirtStoragePoolXMLParser.java | 13 +- .../hypervisor/kvm/resource/LibvirtVMDef.java | 176 +- .../hypervisor/kvm/resource/OvsVifDriver.java | 11 +- .../hypervisor/kvm/resource/VRouterVifDriver.java | 117 + .../LibvirtGetAutoScaleMetricsCommandWrapper.java | 76 + .../wrapper/LibvirtReadyCommandWrapper.java | 9 +- .../wrapper/LibvirtScaleVmCommandWrapper.java | 2 +- .../wrapper/LibvirtSetTfRouteCommandWrapper.java | 39 + .../LibvirtSetupTungstenVRouterCommandWrapper.java | 40 + ...pdateTungstenLoadbalancerSslCommandWrapper.java | 44 + ...ateTungstenLoadbalancerStatsCommandWrapper.java | 44 + .../resource/wrapper/LibvirtUtilitiesHelper.java | 2 +- .../hypervisor/kvm/storage/KVMPhysicalDisk.java | 28 +- .../kvm/storage/KVMStorageProcessor.java | 228 +- .../kvm/storage/LinstorStorageAdaptor.java | 583 --- .../cloudstack/utils/qemu/QemuImageOptions.java | 16 +- .../org/apache/cloudstack/utils/qemu/QemuImg.java | 283 +- .../kvm/resource/LibvirtComputingResourceTest.java | 1514 +++++--- .../kvm/resource/LibvirtDomainXMLParserTest.java | 6 + .../kvm/resource/LibvirtStoragePoolDefTest.java | 32 + .../resource/LibvirtStoragePoolXMLParserTest.java | 104 + .../hypervisor/kvm/resource/LibvirtVMDefTest.java | 89 + .../kvm/resource/LibvirtVifDriverTest.java | 29 +- ...bvirtGetAutoScaleMetricsCommandWrapperTest.java | 120 + .../wrapper/LibvirtScaleVmCommandWrapperTest.java | 2 +- .../wrapper/LibvirtUtilitiesHelperTest.java | 2 +- .../kvm/storage/KVMPhysicalDiskTest.java | 20 + .../kvm/storage/KVMStorageProcessorTest.java | 94 + .../utils/qemu/QemuImageOptionsTest.java | 4 +- .../com/cloud/ovm/hypervisor/OvmResourceBase.java | 4 +- .../src/main/java/com/cloud/ovm/object/OvmVm.java | 2 +- .../scripts/vm/hypervisor/ovm/ConfigFileOps.py | 1 - .../scripts/vm/hypervisor/ovm/OvmCommonModule.py | 1 - .../scripts/vm/hypervisor/ovm/OvmDispatcher.py | 8 +- .../scripts/vm/hypervisor/ovm/OvmFaultConstants.py | 4 +- .../vm/hypervisor/ovm/OvmHaHeartBeatModule.py | 1 - .../scripts/vm/hypervisor/ovm/OvmOCFS2Module.py | 1 - .../vm/hypervisor/ovm/OvmSecurityGroupModule.py | 38 - .../vm/hypervisor/ovm/OvmStoragePoolModule.py | 2 - .../main/scripts/vm/hypervisor/ovm/OvmVmModule.py | 2 +- .../scripts/vm/hypervisor/ovm/OvmVolumeModule.py | 3 - .../ovm3/resources/helpers/Ovm3StoragePool.java | 4 +- .../cloud/agent/manager/MockAgentManagerImpl.java | 12 +- .../cloud/api/commands/ConfigureSimulatorCmd.java | 2 +- .../java/com/cloud/ucs/manager/UcsHttpClient.java | 2 +- .../api/AssociateUcsProfileToBladeCmd.java | 5 - .../apache/cloudstack/api/ListUcsManagerCmd.java | 2 +- .../cloud/api/commands/DeleteCiscoNexusVSMCmd.java | 6 - .../api/commands/DisableCiscoNexusVSMCmd.java | 6 - .../cloud/api/commands/EnableCiscoNexusVSMCmd.java | 6 - .../java/com/cloud/hypervisor/guru/VMwareGuru.java | 50 +- .../hypervisor/vmware/manager/VmwareManager.java | 2 +- .../vmware/manager/VmwareStorageManagerImpl.java | 13 +- .../hypervisor/vmware/resource/VmwareResource.java | 96 +- .../storage/resource/VmwareStorageProcessor.java | 7 +- .../api/command/admin/zone/AddVmwareDcCmd.java | 6 - .../zone/ImportVsphereStoragePoliciesCmd.java | 8 +- .../api/command/admin/zone/ListVmwareDcsCmd.java | 6 - .../admin/zone/ListVsphereStoragePoliciesCmd.java | 8 +- ...ListVsphereStoragePolicyCompatiblePoolsCmd.java | 8 +- .../api/command/admin/zone/RemoveVmwareDcCmd.java | 6 - .../api/command/admin/zone/UpdateVmwareDcCmd.java | 10 +- .../com/cloud/hypervisor/guru/VMwareGuruTest.java | 33 + .../manager/VmwareStorageManagerImplTest.java | 119 + .../vmware/resource/VmwareResourceTest.java | 121 +- .../xenserver/resource/CitrixResourceBase.java | 44 +- .../xenserver/resource/XcpServerResource.java | 24 + .../xenserver/resource/XenServer56Resource.java | 6 +- ...XcpServerGetAutoScaleMetricsCommandWrapper.java | 85 + .../xcp/XcpServerNetworkUsageCommandWrapper.java | 2 +- ...nServer56GetAutoScaleMetricsCommandWrapper.java | 85 + .../XenServer56NetworkUsageCommandWrapper.java | 2 +- .../CitrixCreateVMSnapshotCommandWrapper.java | 2 +- .../CitrixOvsCreateGreTunnelCommandWrapper.java | 2 +- .../wrapper/xenbase/CitrixSetupCommandWrapper.java | 2 +- .../wrapper/xenbase/CitrixStartCommandWrapper.java | 2 +- .../xenserver/resource/CitrixResourceBaseTest.java | 66 +- .../xenserver/resource/XcpServerResourceTest.java | 25 + .../resource/XenServer56ResourceTest.java | 25 + .../wrapper/xenbase/XcpServerWrapperTest.java | 101 +- .../wrapper/xenbase/XenServer56WrapperTest.java | 105 +- .../cloudian/api/CloudianIsEnabledCmd.java | 10 +- .../cloudian/api/CloudianSsoLoginCmd.java | 10 +- .../cloudstack/cloudian/client/CloudianClient.java | 4 +- .../cloudstack/cloudian/CloudianClientTest.java | 34 +- .../cluster/KubernetesClusterManagerImpl.java | 9 +- .../cluster/KubernetesClusterService.java | 20 +- .../KubernetesClusterActionWorker.java | 11 +- .../KubernetesClusterDestroyWorker.java | 3 +- .../KubernetesClusterScaleWorker.java | 3 +- .../KubernetesClusterStartWorker.java | 2 +- .../KubernetesClusterUpgradeWorker.java | 2 +- .../cluster/utils/KubernetesClusterUtil.java | 60 +- .../version/AddKubernetesSupportedVersionCmd.java | 8 +- .../DeleteKubernetesSupportedVersionCmd.java | 8 +- .../UpdateKubernetesSupportedVersionCmd.java | 8 +- .../cluster/CreateKubernetesClusterCmd.java | 8 +- .../cluster/DeleteKubernetesClusterCmd.java | 8 +- .../cluster/GetKubernetesClusterConfigCmd.java | 8 +- .../cluster/ListKubernetesClustersCmd.java | 8 +- .../cluster/ScaleKubernetesClusterCmd.java | 8 +- .../cluster/StartKubernetesClusterCmd.java | 8 +- .../cluster/StopKubernetesClusterCmd.java | 8 +- .../cluster/UpgradeKubernetesClusterCmd.java | 8 +- .../ListKubernetesSupportedVersionsCmd.java | 8 +- .../main/resources/script/deploy-cloudstack-secret | 10 + .../cluster/utils/KubernetesClusterUtilTest.java | 49 +- .../cloudstack/metrics/PrometheusExporterImpl.java | 25 +- .../metrics/PrometheusExporterServer.java | 4 +- .../metrics/PrometheusExporterServerImpl.java | 2 +- .../api/BaseResourceUsageHistoryCmd.java | 54 + .../cloudstack/api/ListClustersMetricsCmd.java | 8 +- .../apache/cloudstack/api/ListDbMetricsCmd.java | 8 +- .../apache/cloudstack/api/ListHostsMetricsCmd.java | 8 +- .../cloudstack/api/ListInfrastructureCmd.java | 8 +- .../apache/cloudstack/api/ListMgmtsMetricsCmd.java | 8 +- .../cloudstack/api/ListStoragePoolsMetricsCmd.java | 8 +- .../api/ListSystemVMsUsageHistoryCmd.java | 71 + .../cloudstack/api/ListUsageServerMetricsCmd.java | 8 +- .../apache/cloudstack/api/ListVMsMetricsCmd.java | 15 +- .../cloudstack/api/ListVMsMetricsCmdByAdmin.java | 73 + .../cloudstack/api/ListVMsUsageHistoryCmd.java | 35 +- .../cloudstack/api/ListVolumesMetricsCmd.java | 8 +- .../cloudstack/api/ListVolumesUsageHistoryCmd.java | 72 + .../apache/cloudstack/api/ListZonesMetricsCmd.java | 8 +- .../apache/cloudstack/metrics/MetricsService.java | 11 +- .../cloudstack/metrics/MetricsServiceImpl.java | 271 +- .../cloudstack/response/DbMetricsResponse.java | 8 +- .../response/VolumeMetricsStatsResponse.java | 54 + .../cloudstack/metrics/MetricsServiceImplTest.java | 20 +- .../api/commands/AddBigSwitchBcfDeviceCmd.java | 6 - .../api/commands/DeleteBigSwitchBcfDeviceCmd.java | 6 - .../cloud/network/bigswitch/BigSwitchBcfApi.java | 2 +- .../cloud/network/bigswitch/BigSwitchApiTest.java | 8 +- .../cloud/api/commands/AddBrocadeVcsDeviceCmd.java | 6 - .../api/commands/DeleteBrocadeVcsDeviceCmd.java | 6 - .../src/main/resources/components-example.xml | 2 +- plugins/network-elements/f5/pom.xml | 41 - .../api/commands/AddExternalLoadBalancerCmd.java | 118 - .../cloud/api/commands/AddF5LoadBalancerCmd.java | 143 - .../api/commands/ConfigureF5LoadBalancerCmd.java | 124 - .../commands/DeleteExternalLoadBalancerCmd.java | 96 - .../api/commands/DeleteF5LoadBalancerCmd.java | 112 - .../api/commands/ListExternalLoadBalancersCmd.java | 90 - .../commands/ListF5LoadBalancerNetworksCmd.java | 108 - .../cloud/api/commands/ListF5LoadBalancersCmd.java | 112 - .../cloud/api/response/F5LoadBalancerResponse.java | 109 - .../element/F5ExternalLoadBalancerElement.java | 538 --- .../F5ExternalLoadBalancerElementService.java | 97 - .../cloud/network/resource/F5BigIpResource.java | 1176 ------ .../META-INF/cloudstack/f5/module.properties | 18 - .../META-INF/cloudstack/f5/spring-f5-context.xml | 34 - .../cloudstack/api/AddGloboDnsHostCmd.java | 6 - .../api/command/CreateServiceInstanceCmd.java | 6 - .../contrail/management/ContrailManagerImpl.java | 4 +- .../network/contrail/management/DBSyncGeneric.java | 2 +- .../contrail/model/VirtualMachineModel.java | 2 +- .../management/IntegrationTestConfiguration.java | 10 +- .../contrail/management/ManagementServerMock.java | 2 +- plugins/network-elements/juniper-srx/pom.xml | 37 - .../cloud/api/commands/AddExternalFirewallCmd.java | 116 - .../com/cloud/api/commands/AddSrxFirewallCmd.java | 141 - .../api/commands/ConfigureSrxFirewallCmd.java | 123 - .../api/commands/DeleteExternalFirewallCmd.java | 90 - .../cloud/api/commands/DeleteSrxFirewallCmd.java | 111 - .../api/commands/ListExternalFirewallsCmd.java | 89 - .../api/commands/ListSrxFirewallNetworksCmd.java | 107 - .../cloud/api/commands/ListSrxFirewallsCmd.java | 109 - .../cloud/api/response/SrxFirewallResponse.java | 159 - .../element/JuniperSRXExternalFirewallElement.java | 551 --- .../element/JuniperSRXFirewallElementService.java | 95 - .../cloud/network/resource/JuniperSrxResource.java | 3795 -------------------- .../META-INF/cloudstack/srx/module.properties | 18 - .../META-INF/cloudstack/srx/spring-srx-context.xml | 35 - .../api/commands/AddNetscalerLoadBalancerCmd.java | 6 - .../ConfigureNetscalerLoadBalancerCmd.java | 6 - .../commands/DeleteNetscalerLoadBalancerCmd.java | 6 - .../ListNetscalerLoadBalancerNetworksCmd.java | 5 - .../RegisterNetscalerControlCenterCmd.java | 12 +- .../cloud/network/element/NetscalerElement.java | 14 +- .../cloud/network/resource/NetscalerResource.java | 29 +- .../cloud/api/commands/AddNiciraNvpDeviceCmd.java | 6 - .../api/commands/DeleteNiciraNvpDeviceCmd.java | 6 - .../com/cloud/network/nicira/NiciraRestClient.java | 2 +- .../agent/OpenDaylightControllerResource.java | 2 +- .../network/opendaylight/api/resources/Action.java | 2 +- .../api/test/NeutronNetworkAdapterTest.java | 4 +- .../api/test/NeutronNodeAdapterTest.java | 4 +- .../api/test/NeutronPortAdapterTest.java | 4 +- .../cloud/api/commands/AddPaloAltoFirewallCmd.java | 6 - .../api/commands/ConfigurePaloAltoFirewallCmd.java | 6 - .../api/commands/DeletePaloAltoFirewallCmd.java | 6 - .../commands/ListPaloAltoFirewallNetworksCmd.java | 5 - .../stratosphere-ssp/sspmock/sspmock.py | 8 +- plugins/network-elements/tungsten/pom.xml | 47 + ...ngstenNetworkGatewayToLogicalRouterCommand.java | 57 + .../agent/api/AddTungstenNetworkSubnetCommand.java | 101 + .../agent/api/AddTungstenPolicyRuleCommand.java | 133 + .../api/AddTungstenSecondaryIpAddressCommand.java | 64 + .../api/AddTungstenSecurityGroupRuleCommand.java | 89 + .../api/AddTungstenVmToSecurityGroupCommand.java | 52 + .../api/ApplyTungstenNetworkPolicyCommand.java | 86 + .../api/ApplyTungstenPortForwardingCommand.java | 89 + .../agent/api/ApplyTungstenTagCommand.java | 77 + .../agent/api/AssignTungstenFloatingIpCommand.java | 70 + .../api/ClearTungstenNetworkGatewayCommand.java | 57 + .../api/CreateTungstenAddressGroupCommand.java | 64 + .../CreateTungstenApplicationPolicySetCommand.java | 52 + .../api/CreateTungstenDefaultProjectCommand.java | 20 + .../agent/api/CreateTungstenDomainCommand.java | 51 + .../api/CreateTungstenFirewallPolicyCommand.java | 64 + .../api/CreateTungstenFirewallRuleCommand.java | 126 + .../agent/api/CreateTungstenFloatingIpCommand.java | 70 + .../api/CreateTungstenFloatingIpPoolCommand.java | 59 + .../api/CreateTungstenLogicalRouterCommand.java | 57 + .../agent/api/CreateTungstenNetworkCommand.java | 139 + .../CreateTungstenNetworkLoadbalancerCommand.java | 200 ++ .../api/CreateTungstenNetworkPolicyCommand.java | 61 + .../agent/api/CreateTungstenPolicyCommand.java | 58 + .../agent/api/CreateTungstenProjectCommand.java | 64 + .../CreateTungstenRoutingLogicalRouterCommand.java | 58 + .../api/CreateTungstenSecurityGroupCommand.java | 64 + .../api/CreateTungstenServiceGroupCommand.java | 71 + .../agent/api/CreateTungstenTagCommand.java | 58 + .../agent/api/CreateTungstenTagTypeCommand.java | 52 + .../api/CreateTungstenVirtualMachineCommand.java | 125 + .../api/DeleteTungstenAddressGroupCommand.java | 45 + .../DeleteTungstenApplicationPolicySetCommand.java | 45 + .../agent/api/DeleteTungstenDomainCommand.java | 45 + .../api/DeleteTungstenFirewallPolicyCommand.java | 45 + .../api/DeleteTungstenFirewallRuleCommand.java | 45 + .../agent/api/DeleteTungstenFloatingIpCommand.java | 57 + .../api/DeleteTungstenFloatingIpPoolCommand.java | 51 + .../api/DeleteTungstenLoadBalancerCommand.java | 83 + .../DeleteTungstenLoadBalancerListenerCommand.java | 51 + .../agent/api/DeleteTungstenNetworkCommand.java | 46 + .../api/DeleteTungstenNetworkPolicyCommand.java | 57 + .../agent/api/DeleteTungstenObjectCommand.java | 47 + .../agent/api/DeleteTungstenPolicyCommand.java | 46 + .../agent/api/DeleteTungstenProjectCommand.java | 45 + .../DeleteTungstenRoutingLogicalRouterCommand.java | 46 + .../api/DeleteTungstenSecurityGroupCommand.java | 45 + .../api/DeleteTungstenServiceGroupCommand.java | 45 + .../agent/api/DeleteTungstenTagCommand.java | 46 + .../agent/api/DeleteTungstenTagTypeCommand.java | 46 + .../api/DeleteTungstenVRouterPortCommand.java | 51 + .../agent/api/DeleteTungstenVmCommand.java | 46 + .../api/DeleteTungstenVmInterfaceCommand.java | 51 + .../agent/api/GetTungstenFabricNetworkCommand.java | 21 + .../agent/api/GetTungstenFloatingIpsCommand.java | 51 + .../agent/api/GetTungstenLoadBalancerCommand.java | 51 + .../agent/api/GetTungstenNatIpCommand.java | 51 + .../agent/api/GetTungstenNetworkDnsCommand.java | 51 + .../agent/api/GetTungstenPolicyCommand.java | 51 + .../agent/api/GetTungstenSecurityGroupCommand.java | 45 + .../agent/api/ListTungstenAddressGroupCommand.java | 45 + .../ListTungstenApplicationPolicySetCommand.java | 45 + ...enConnectedNetworkFromLogicalRouterCommand.java | 45 + .../api/ListTungstenFirewallPolicyCommand.java | 51 + .../agent/api/ListTungstenFirewallRuleCommand.java | 51 + .../agent/api/ListTungstenNetworkCommand.java | 51 + .../tungsten/agent/api/ListTungstenNicCommand.java | 51 + .../agent/api/ListTungstenPolicyCommand.java | 64 + .../agent/api/ListTungstenPolicyRuleCommand.java | 45 + .../ListTungstenRoutingLogicalRouterCommand.java | 51 + .../agent/api/ListTungstenServiceGroupCommand.java | 45 + .../tungsten/agent/api/ListTungstenTagCommand.java | 76 + .../agent/api/ListTungstenTagTypeCommand.java | 45 + .../tungsten/agent/api/ListTungstenVmCommand.java | 51 + .../api/ReleaseTungstenFloatingIpCommand.java | 57 + ...stenNetworkGatewayFromLogicalRouterCommand.java | 51 + .../api/RemoveTungstenNetworkSubnetCommand.java | 51 + .../agent/api/RemoveTungstenPolicyCommand.java | 51 + .../agent/api/RemoveTungstenPolicyRuleCommand.java | 51 + .../RemoveTungstenSecondaryIpAddressCommand.java | 45 + .../RemoveTungstenSecurityGroupRuleCommand.java | 51 + .../agent/api/RemoveTungstenTagCommand.java | 77 + .../RemoveTungstenVmFromSecurityGroupCommand.java | 52 + .../api/SetTungstenNetworkGatewayCommand.java | 70 + .../tungsten/agent/api/SetupTfRouteCommand.java | 64 + .../agent/api/SetupTungstenVRouterCommand.java | 77 + .../tungsten/agent/api/StartupTungstenCommand.java | 26 + .../network/tungsten/agent/api/TungstenAnswer.java | 112 + .../tungsten/agent/api/TungstenCommand.java | 26 + .../UpdateLoadBalancerServiceInstanceCommand.java | 70 + .../UpdateTungstenDefaultSecurityGroupCommand.java | 45 + ...teTungstenLoadBalancerHealthMonitorCommand.java | 95 + .../UpdateTungstenLoadBalancerListenerCommand.java | 70 + .../UpdateTungstenLoadBalancerMemberCommand.java | 67 + .../api/UpdateTungstenLoadBalancerPoolCommand.java | 102 + .../api/UpdateTungstenLoadbalancerSslCommand.java | 83 + .../UpdateTungstenLoadbalancerStatsCommand.java | 71 + .../api/UpdateTungstenVrouterConfigCommand.java | 45 + ...stenFabricNetworkGatewayToLogicalRouterCmd.java | 97 + .../command/AddTungstenFabricPolicyRuleCmd.java | 131 + .../api/command/ApplyTungstenFabricPolicyCmd.java | 97 + .../api/command/ApplyTungstenFabricTagCmd.java | 109 + .../command/ConfigTungstenFabricServiceCmd.java | 203 ++ .../CreateTungstenFabricAddressGroupCmd.java | 95 + ...reateTungstenFabricApplicationPolicySetCmd.java | 89 + .../CreateTungstenFabricFirewallPolicyCmd.java | 96 + .../CreateTungstenFabricFirewallRuleCmd.java | 129 + .../CreateTungstenFabricLogicalRouterCmd.java | 87 + .../CreateTungstenFabricManagementNetworkCmd.java | 94 + .../api/command/CreateTungstenFabricPolicyCmd.java | 87 + .../command/CreateTungstenFabricProviderCmd.java | 134 + .../CreateTungstenFabricPublicNetworkCmd.java | 105 + .../CreateTungstenFabricServiceGroupCmd.java | 98 + .../api/command/CreateTungstenFabricTagCmd.java | 89 + .../command/CreateTungstenFabricTagTypeCmd.java | 87 + .../DeleteTungstenFabricAddressGroupCmd.java | 86 + ...eleteTungstenFabricApplicationPolicySetCmd.java | 86 + .../DeleteTungstenFabricFirewallPolicyCmd.java | 87 + .../DeleteTungstenFabricFirewallRuleCmd.java | 86 + .../DeleteTungstenFabricLogicalRouterCmd.java | 93 + .../api/command/DeleteTungstenFabricPolicyCmd.java | 86 + .../DeleteTungstenFabricServiceGroupCmd.java | 86 + .../api/command/DeleteTungstenFabricTagCmd.java | 86 + .../command/DeleteTungstenFabricTagTypeCmd.java | 86 + .../command/GetLoadBalancerSslCertificateCmd.java | 85 + .../command/ListTungstenFabricAddressGroupCmd.java | 90 + .../ListTungstenFabricApplictionPolicySetCmd.java | 90 + .../ListTungstenFabricFirewallPolicyCmd.java | 93 + .../command/ListTungstenFabricFirewallRuleCmd.java | 93 + .../ListTungstenFabricLBHealthMonitorCmd.java | 75 + .../ListTungstenFabricLogicalRouterCmd.java | 93 + .../api/command/ListTungstenFabricNetworkCmd.java | 95 + .../api/command/ListTungstenFabricNicCmd.java | 89 + .../api/command/ListTungstenFabricPolicyCmd.java | 97 + .../command/ListTungstenFabricPolicyRuleCmd.java | 93 + .../command/ListTungstenFabricProvidersCmd.java | 88 + .../command/ListTungstenFabricServiceGroupCmd.java | 90 + .../api/command/ListTungstenFabricTagCmd.java | 104 + .../api/command/ListTungstenFabricTagTypeCmd.java | 90 + .../api/command/ListTungstenFabricVmCmd.java | 89 + ...enFabricNetworkGatewayFromLogicalRouterCmd.java | 97 + .../api/command/RemoveTungstenFabricPolicyCmd.java | 91 + .../command/RemoveTungstenFabricPolicyRuleCmd.java | 91 + .../api/command/RemoveTungstenFabricTagCmd.java | 104 + .../command/SynchronizeTungstenFabricDataCmd.java | 80 + .../UpdateTungstenFabricLBHealthMonitorCmd.java | 161 + .../tungsten/api/response/TlsDataResponse.java | 62 + .../TungstenFabricAddressGroupResponse.java | 116 + ...TungstenFabricApplicationPolicySetResponse.java | 136 + .../TungstenFabricFirewallPolicyResponse.java | 119 + .../TungstenFabricFirewallRuleResponse.java | 279 ++ .../TungstenFabricLBHealthMonitorResponse.java | 185 + .../TungstenFabricLogicalRouterResponse.java | 103 + .../response/TungstenFabricNetworkResponse.java | 88 + .../api/response/TungstenFabricNicResponse.java | 90 + .../api/response/TungstenFabricPolicyResponse.java | 135 + .../response/TungstenFabricProviderResponse.java | 148 + .../api/response/TungstenFabricRuleResponse.java | 278 ++ .../TungstenFabricServiceGroupResponse.java | 129 + .../api/response/TungstenFabricTagResponse.java | 222 ++ .../response/TungstenFabricTagTypeResponse.java | 82 + .../api/response/TungstenFabricVmResponse.java | 88 + .../dao/TungstenFabricLBHealthMonitorDao.java | 23 + .../dao/TungstenFabricLBHealthMonitorDaoImpl.java | 46 + .../dao/TungstenFabricLBHealthMonitorVO.java | 159 + .../tungsten/model/TungstenLoadBalancerMember.java | 47 + .../tungsten/model/TungstenLogicalRouter.java | 51 + .../network/tungsten/model/TungstenModel.java | 20 + .../tungsten/model/TungstenNetworkPolicy.java | 51 + .../network/tungsten/model/TungstenRule.java | 132 + .../network/tungsten/model/TungstenTag.java | 97 + .../tungsten/resource/TungstenResource.java | 2366 ++++++++++++ .../network/tungsten/service/TungstenApi.java | 2790 ++++++++++++++ .../network/tungsten/service/TungstenElement.java | 1185 ++++++ .../tungsten/service/TungstenFabricUtils.java | 58 + .../tungsten/service/TungstenGuestNetworkGuru.java | 524 +++ .../tungsten/service/TungstenIntrospectApi.java | 40 + .../tungsten/service/TungstenProviderService.java | 33 + .../service/TungstenProviderServiceImpl.java | 234 ++ .../network/tungsten/service/TungstenService.java | 207 ++ .../tungsten/service/TungstenServiceImpl.java | 2555 +++++++++++++ .../tungsten/service/TungstenVRouterApi.java | 48 + .../network/tungsten/vrouter/CustomHttpDelete.java | 40 + .../network/tungsten/vrouter/Gateway.java | 75 + .../tungsten/vrouter/IntrospectApiConnector.java | 23 + .../vrouter/IntrospectApiConnectorFactory.java | 32 + .../vrouter/IntrospectApiConnectorImpl.java | 72 + .../cloudstack/network/tungsten/vrouter/Port.java | 166 + .../network/tungsten/vrouter/Subnet.java | 48 + .../network/tungsten/vrouter/VRouter.java | 63 + .../tungsten/vrouter/VRouterApiConnector.java | 34 + .../vrouter/VRouterApiConnectorFactory.java | 32 + .../tungsten/vrouter/VRouterApiConnectorImpl.java | 138 + .../META-INF/cloudstack/tungsten/module.properties | 21 + .../tungsten/spring-tungsten-context.xml | 42 + ...FabricNetworkGatewayToLogicalRouterCmdTest.java | 70 + .../AddTungstenFabricPolicyRuleCmdTest.java | 85 + .../command/ApplyTungstenFabricPolicyCmdTest.java | 64 + .../api/command/ApplyTungstenFabricTagCmdTest.java | 69 + .../ConfigTungstenFabricServiceCmdTest.java | 101 + .../CreateTungstenFabricAddressGroupCmdTest.java | 66 + ...eTungstenFabricApplicationPolicySetCmdTest.java | 63 + .../CreateTungstenFabricFirewallPolicyCmdTest.java | 66 + .../CreateTungstenFabricFirewallRuleCmdTest.java | 80 + .../CreateTungstenFabricLogicalRouterCmdTest.java | 62 + ...eateTungstenFabricManagementNetworkCmdTest.java | 67 + .../command/CreateTungstenFabricPolicyCmdTest.java | 60 + .../CreateTungstenFabricProviderCmdTest.java | 69 + .../CreateTungstenFabricPublicNetworkCmdTest.java | 82 + .../CreateTungstenFabricServiceGroupCmdTest.java | 67 + .../command/CreateTungstenFabricTagCmdTest.java | 62 + .../CreateTungstenFabricTagTypeCmdTest.java | 60 + .../DeleteTungstenFabricAddressGroupCmdTest.java | 61 + ...eTungstenFabricApplicationPolicySetCmdTest.java | 61 + .../DeleteTungstenFabricFirewallPolicyCmdTest.java | 61 + .../DeleteTungstenFabricFirewallRuleCmdTest.java | 61 + .../DeleteTungstenFabricLogicalRouterCmdTest.java | 67 + .../command/DeleteTungstenFabricPolicyCmdTest.java | 61 + .../DeleteTungstenFabricServiceGroupCmdTest.java | 61 + .../command/DeleteTungstenFabricTagCmdTest.java | 61 + .../DeleteTungstenFabricTagTypeCmdTest.java | 61 + .../GetLoadBalancerSslCertificateCmdTest.java | 64 + .../ListTungstenFabricAddressGroupCmdTest.java | 92 + ...stTungstenFabricApplictionPolicySetCmdTest.java | 93 + .../ListTungstenFabricFirewallPolicyCmdTest.java | 93 + .../ListTungstenFabricFirewallRuleCmdTest.java | 93 + .../ListTungstenFabricLBHealthMonitorCmdTest.java | 74 + .../ListTungstenFabricLogicalRouterCmdTest.java | 93 + .../command/ListTungstenFabricNetworkCmdTest.java | 94 + .../api/command/ListTungstenFabricNicCmdTest.java | 92 + .../command/ListTungstenFabricPolicyCmdTest.java | 98 + .../ListTungstenFabricPolicyRuleCmdTest.java | 95 + .../ListTungstenFabricProvidersCmdTest.java | 75 + .../ListTungstenFabricServiceGroupCmdTest.java | 92 + .../api/command/ListTungstenFabricTagCmdTest.java | 107 + .../command/ListTungstenFabricTagTypeCmdTest.java | 92 + .../api/command/ListTungstenFabricVmCmdTest.java | 90 + ...bricNetworkGatewayFromLogicalRouterCmdTest.java | 70 + .../command/RemoveTungstenFabricPolicyCmdTest.java | 63 + .../RemoveTungstenFabricPolicyRuleCmdTest.java | 63 + .../command/RemoveTungstenFabricTagCmdTest.java | 73 + .../SynchronizeTungstenFabricDataCmdTest.java | 59 + ...UpdateTungstenFabricLBHealthMonitorCmdTest.java | 114 + .../tungsten/resource/TungstenResourceTest.java | 1465 ++++++++ .../network/tungsten/service/TungstenApiTest.java | 2059 +++++++++++ .../tungsten/service/TungstenElementTest.java | 1061 ++++++ .../tungsten/service/TungstenFabricUtilsTest.java | 95 + .../service/TungstenGuestNetworkGuruTest.java | 532 +++ .../service/TungstenIntrospectApiTest.java | 58 + .../service/TungstenProviderServiceTest.java | 133 + .../tungsten/service/TungstenServiceImplTest.java | 1789 +++++++++ .../tungsten/service/TungstenVRouterApiTest.java | 78 + .../vrouter/IntrospectApiConnectorImplTest.java | 127 + .../vrouter/VRouterApiConnectorImplTest.java | 222 ++ .../tungsten/src/test/resources/db.properties | 68 + .../tungsten/src/test/resources/log4j.properties | 35 + plugins/pom.xml | 15 +- .../allocator/RandomStoragePoolAllocator.java | 2 +- .../driver/DateraPrimaryDataStoreDriver.java | 4 +- .../storage/datastore/util/DateraUtil.java | 2 +- .../CloudStackPrimaryDataStoreLifeCycleImpl.java | 49 +- plugins/storage/volume/linstor/pom.xml | 5 + .../kvm/storage/LinstorStorageAdaptor.java | 584 +++ .../hypervisor/kvm/storage/LinstorStoragePool.java | 0 .../driver/LinstorPrimaryDataStoreDriverImpl.java | 118 +- .../LinstorPrimaryDataStoreLifeCycleImpl.java | 8 +- .../datastore/client/ScaleIOGatewayClientImpl.java | 2 +- .../driver/ScaleIOPrimaryDataStoreDriver.java | 5 + .../storage/datastore/util/ScaleIOUtil.java | 2 +- .../client/ScaleIOGatewayClientImplTest.java | 16 +- plugins/storage/volume/storpool/pom.xml | 10 + .../StorPoolDownloadTemplateCommandWrapper.java | 5 + .../StorPoolModifyStorageCommandWrapper.java | 4 +- .../kvm/storage/StorPoolStorageAdaptor.java | 95 +- .../driver/StorPoolPrimaryDataStoreDriver.java | 257 +- .../datastore/provider/StorPoolHostListener.java | 39 +- .../storage/datastore/util/StorPoolUtil.java | 71 +- .../storage/snapshot/StorPoolSnapshotStrategy.java | 2 +- .../snapshot/StorPoolVMSnapshotStrategy.java | 2 +- .../driver/StorPoolPrimaryDataStoreDriverTest.java | 245 ++ .../cloudstack/api/command/LDAPConfigCmd.java | 6 - .../cloudstack/api/command/LDAPRemoveCmd.java | 6 - .../api/command/LinkAccountToLdapCmd.java | 10 +- .../api/command/LinkDomainToLdapCmd.java | 6 - .../apache/cloudstack/ldap/LdapConfiguration.java | 2 +- .../cloudstack/ldap/OpenLdapUserManagerImpl.java | 6 +- .../ldap/LdapConfigurationResponseSpec.groovy | 2 +- .../cloudstack/ldap/LdapContextFactorySpec.groovy | 8 +- .../ldap/LdapCreateAccountCmdSpec.groovy | 2 +- .../api/command/LdapListUsersCmdTest.java | 2 +- .../api/command/LinkAccountToLdapCmdTest.java | 3 +- .../api/command/AuthorizeSAMLSSOCmd.java | 8 +- .../api/command/ListAndSwitchSAMLAccountCmd.java | 8 +- .../apache/cloudstack/api/command/ListIdpsCmd.java | 9 +- .../apache/cloudstack/saml/SAML2AuthManager.java | 4 +- pom.xml | 12 +- python/lib/cloud_utils.py | 1 - python/lib/cloudutils/networkConfig.py | 1 - python/lib/cloudutils/serviceConfig.py | 71 +- python/lib/cloudutils/syscfg.py | 44 +- python/lib/cloudutils/utilities.py | 4 + scripts/installer/createtmplt.sh | 2 +- scripts/installer/createvolume.sh | 2 +- scripts/network/exdhcp/dhcpd_edithosts.py | 1 - .../ping/prepare_kickstart_kernel_initrd.py | 1 - scripts/storage/secondary/cloud-install-sys-tmplt | 4 +- .../storage/secondary/cloud-install-sys-tmplt.py | 2 +- scripts/storage/secondary/createvolume.sh | 2 +- scripts/storage/secondary/swift | 6 +- scripts/util/keystore-cert-import | 6 + scripts/util/keystore-setup | 22 + scripts/vm/hypervisor/kvm/nsrkvmbackup.sh | 260 ++ scripts/vm/hypervisor/kvm/nsrkvmrestore.sh | 223 ++ scripts/vm/hypervisor/update_host_passwd.sh | 12 +- .../create_privatetemplate_from_snapshot.sh | 4 +- scripts/vm/hypervisor/xenserver/perfmon.py | 39 +- scripts/vm/hypervisor/xenserver/s3xenserver | 6 +- scripts/vm/hypervisor/xenserver/storagePlugin | 2 +- scripts/vm/hypervisor/xenserver/swift | 6 +- .../vm/hypervisor/xenserver/upgrade_snapshot.sh | 4 +- scripts/vm/hypervisor/xenserver/vmops | 2 +- scripts/vm/network/ovs-pvlan-kvm-vm.sh | 4 +- scripts/vm/network/security_group.py | 4 +- scripts/vm/network/tungsten/create_tap_device.sh | 20 + scripts/vm/network/tungsten/delete_tap_device.sh | 19 + .../vm/network/tungsten/setup_tungsten_vrouter.sh | 24 + .../tungsten/update_tungsten_loadbalancer_ssl.sh | 36 + .../tungsten/update_tungsten_loadbalancer_stats.sh | 41 + scripts/vm/network/vnet/ovstunnel.py | 1 - server/conf/migration-components.xml | 4 +- server/pom.xml | 12 + .../src/main/java/com/cloud/acl/DomainChecker.java | 2 +- server/src/main/java/com/cloud/api/ApiDBUtils.java | 13 +- .../main/java/com/cloud/api/ApiResponseHelper.java | 128 +- server/src/main/java/com/cloud/api/ApiServer.java | 2 +- server/src/main/java/com/cloud/api/ApiServlet.java | 3 +- .../api/auth/DefaultLoginAPIAuthenticatorCmd.java | 8 +- .../api/auth/DefaultLogoutAPIAuthenticatorCmd.java | 9 +- .../com/cloud/api/dispatch/ParamProcessWorker.java | 61 +- .../java/com/cloud/api/query/QueryManagerImpl.java | 75 +- .../cloud/api/query/dao/DataCenterJoinDaoImpl.java | 17 +- .../cloud/api/query/dao/DomainRouterJoinDao.java | 3 + .../api/query/dao/DomainRouterJoinDaoImpl.java | 26 +- .../com/cloud/api/query/dao/UserVmJoinDaoImpl.java | 19 +- .../com/cloud/api/query/dao/VolumeJoinDaoImpl.java | 4 + .../com/cloud/api/query/vo/DataCenterJoinVO.java | 9 + .../com/cloud/api/query/vo/DomainRouterJoinVO.java | 23 + .../cloud/api/query/vo/NetworkOfferingJoinVO.java | 16 + .../java/com/cloud/api/query/vo/UserVmJoinVO.java | 46 +- .../cloud/api/response/ApiResponseSerializer.java | 2 +- .../main/java/com/cloud/configuration/Config.java | 92 +- .../configuration/ConfigurationManagerImpl.java | 631 +++- .../java/com/cloud/consoleproxy/AgentHookBase.java | 5 +- .../consoleproxy/ConsoleProxyManagerImpl.java | 22 +- .../deploy/DeploymentPlanningManagerImpl.java | 34 +- .../com/cloud/hypervisor/HypervisorGuruBase.java | 1 + .../main/java/com/cloud/hypervisor/KVMGuru.java | 131 +- .../kvm/discoverer/LibvirtServerDiscoverer.java | 3 +- .../network/ExternalFirewallDeviceManager.java | 2 +- .../ExternalLoadBalancerDeviceManagerImpl.java | 7 +- .../com/cloud/network/IpAddressManagerImpl.java | 23 +- .../cloud/network/NetworkMigrationManagerImpl.java | 3 +- .../java/com/cloud/network/NetworkModelImpl.java | 126 +- .../java/com/cloud/network/NetworkServiceImpl.java | 383 +- .../com/cloud/network/as/AutoScaleManager.java | 32 + .../com/cloud/network/as/AutoScaleManagerImpl.java | 2098 +++++++++-- .../network/element/VirtualRouterElement.java | 22 +- .../com/cloud/network/guru/DirectNetworkGuru.java | 8 + .../network/guru/ExternalGuestNetworkGuru.java | 2 +- .../com/cloud/network/guru/GuestNetworkGuru.java | 2 + .../network/lb/LoadBalancingRulesManagerImpl.java | 195 +- .../cloud/network/router/CommandSetupHelper.java | 44 +- .../router/VirtualNetworkApplianceManager.java | 24 +- .../router/VirtualNetworkApplianceManagerImpl.java | 65 +- .../VpcVirtualNetworkApplianceManagerImpl.java | 7 +- .../network/security/SecurityGroupManagerImpl.java | 23 +- .../security/SecurityGroupManagerImpl2.java | 3 +- .../java/com/cloud/network/vpc/VpcManagerImpl.java | 278 +- .../java/com/cloud/projects/ProjectManager.java | 5 +- .../com/cloud/projects/ProjectManagerImpl.java | 12 +- .../java/com/cloud/resource/DiscovererBase.java | 2 +- .../com/cloud/resource/ResourceManagerImpl.java | 2 +- .../com/cloud/server/ConfigurationServerImpl.java | 54 +- .../com/cloud/server/ManagementServerImpl.java | 210 +- .../main/java/com/cloud/server/StatsCollector.java | 593 +-- .../com/cloud/servlet/ConsoleProxyClientParam.java | 5 + .../com/cloud/servlet/ConsoleProxyServlet.java | 2 +- .../java/com/cloud/storage/StorageManagerImpl.java | 13 + .../com/cloud/storage/VolumeApiServiceImpl.java | 349 +- .../cloud/storage/snapshot/SnapshotManager.java | 3 - .../storage/snapshot/SnapshotManagerImpl.java | 27 +- .../com/cloud/storage/upload/UploadListener.java | 7 +- .../com/cloud/tags/ResourceManagerUtilImpl.java | 10 +- .../com/cloud/tags/TaggedResourceManagerImpl.java | 11 +- .../com/cloud/template/TemplateManagerImpl.java | 4 +- .../main/java/com/cloud/test/DatabaseConfig.java | 2 +- .../main/java/com/cloud/test/PodZoneConfig.java | 2 +- .../java/com/cloud/user/AccountManagerImpl.java | 20 +- .../main/java/com/cloud/user/DomainManager.java | 2 + .../java/com/cloud/user/DomainManagerImpl.java | 1 + .../src/main/java/com/cloud/vm/UserVmManager.java | 34 +- .../main/java/com/cloud/vm/UserVmManagerImpl.java | 352 +- .../affinity/AffinityGroupServiceImpl.java | 5 +- .../agent/lb/IndirectAgentLBServiceImpl.java | 6 +- .../annotation/AnnotationManagerImpl.java | 6 + .../cloudstack/backup/BackupManagerImpl.java | 23 +- .../org/apache/cloudstack/ca/CAManagerImpl.java | 2 +- .../consoleproxy/ConsoleAccessManagerImpl.java | 193 +- .../diagnostics/DiagnosticsServiceImpl.java | 4 +- .../fileprocessor/DiagnosticsFilesList.java | 12 +- .../network/topology/BasicNetworkVisitor.java | 2 +- .../apache/cloudstack/region/RegionManager.java | 2 +- .../apache/cloudstack/snapshot/SnapshotHelper.java | 5 +- .../cloudstack/vm/UnmanagedVMsManagerImpl.java | 12 +- server/src/test/async-job-component.xml | 2 + .../java/com/cloud/api/ApiResponseHelperTest.java | 115 +- .../java/com/cloud/configuration/ConfigTest.java | 42 + .../ConfigurationManagerImplTest.java | 194 + .../configuration/ConfigurationManagerTest.java | 103 +- .../consoleproxy/ConsoleProxyManagerTest.java | 23 + .../deploy/DeploymentPlanningManagerImplTest.java | 46 + .../java/com/cloud/hypervisor/KVMGuruTest.java | 8 +- .../cloud/network/CreatePrivateNetworkTest.java | 3 +- .../ExternalLoadBalancerDeviceManagerImplTest.java | 3 + .../java/com/cloud/network/NetworkModelTest.java | 18 + .../com/cloud/network/NetworkServiceImplTest.java | 369 +- .../cloud/network/as/AutoScaleManagerImplTest.java | 2454 +++++++++++++ .../com/cloud/network/as/AutoScaleManagerTest.java | 61 + .../network/element/VirtualRouterElementTest.java | 21 +- .../cloud/network/lb/AssignLoadBalancerTest.java | 24 +- .../lb/LoadBalancingRulesManagerImplTest.java | 55 +- .../VirtualNetworkApplianceManagerImplTest.java | 23 +- .../SecurityGroupManagerTestConfiguration.java | 6 +- .../com/cloud/network/vpc/VpcManagerImplTest.java | 214 +- .../com/cloud/server/ManagementServerImplTest.java | 135 +- .../java/com/cloud/server/StatsCollectorTest.java | 74 +- .../cloud/storage/VolumeApiServiceImplTest.java | 330 +- .../storage/snapshot/SnapshotManagerTest.java | 62 +- .../cloud/tags/TaggedResourceManagerImplTest.java | 7 + .../com/cloud/user/AccountManagerImplTest.java | 3 +- .../AccountManagerImplVolumeDeleteEventTest.java | 7 +- .../com/cloud/user/AccountManagetImplTestBase.java | 4 +- .../java/com/cloud/user/DomainManagerImplTest.java | 6 +- .../java/com/cloud/user/MockUsageEventDao.java | 5 + .../java/com/cloud/vm/FirstFitPlannerTest.java | 16 + .../java/com/cloud/vm/UserVmManagerImplTest.java | 60 + .../cloud/vpc/MockConfigurationManagerImpl.java | 30 +- .../java/com/cloud/vpc/MockNetworkManagerImpl.java | 6 +- .../java/com/cloud/vpc/VpcTestConfiguration.java | 8 +- .../cloud/vpc/dao/MockConfigurationDaoImpl.java | 1 - .../apache/cloudstack/ca/CABackgroundTaskTest.java | 12 +- .../download/DirectDownloadManagerImplTest.java | 4 +- .../network/lb/ApplicationLoadBalancerTest.java | 17 +- .../networkoffering/CreateNetworkOfferingTest.java | 20 +- .../src/test/resources/createNetworkOffering.xml | 2 + services/console-proxy/rdpconsole/README.txt | 2 +- .../rdpconsole/src/main/java/common/Client.java | 2 +- .../src/main/java/rdpclient/ntlmssp/NegoFlags.java | 4 +- ...nnelJoinRequestServerMCSChannelConfirmPDUs.java | 2 +- .../java/rdpclient/rdp/ServerIOChannelRouter.java | 2 +- .../src/main/java/streamer/ByteBuffer.java | 2 +- .../src/main/java/streamer/debug/MockSink.java | 2 +- .../java/com/cloud/consoleproxy/ConsoleProxy.java | 5 +- .../consoleproxy/ConsoleProxyAjaxHandler.java | 12 +- .../consoleproxy/ConsoleProxyAjaxImageHandler.java | 10 +- .../consoleproxy/ConsoleProxyClientParam.java | 5 + .../ConsoleProxyClientStatsCollector.java | 16 +- .../cloud/consoleproxy/ConsoleProxyCmdHandler.java | 2 +- .../cloud/consoleproxy/ConsoleProxyGCThread.java | 35 +- .../ConsoleProxyHttpHandlerHelper.java | 8 + .../consoleproxy/ConsoleProxyNoVNCHandler.java | 8 + .../consoleproxy/ConsoleProxyNoVncClient.java | 152 +- .../consoleproxy/ConsoleProxyResourceHandler.java | 6 +- .../consoleproxy/ConsoleProxyThumbnailHandler.java | 18 +- .../com/cloud/consoleproxy/vnc/NoVncClient.java | 363 +- .../com/cloud/consoleproxy/vnc/RfbConstants.java | 5 +- .../cloud/consoleproxy/vnc/network/NioSocket.java | 123 + .../consoleproxy/vnc/network/NioSocketHandler.java | 45 + .../vnc/network/NioSocketHandlerImpl.java | 116 + .../vnc/network/NioSocketInputStream.java | 202 ++ .../vnc/network/NioSocketOutputStream.java | 114 + .../vnc/network/NioSocketSSLEngineManager.java | 191 + .../consoleproxy/vnc/network/NioSocketStream.java | 89 + .../vnc/network/NioSocketTLSInputStream.java | 73 + .../vnc/network/NioSocketTLSOutputStream.java | 65 + .../consoleproxy/vnc/security/NoneVncSecurity.java | 27 + .../consoleproxy/vnc/security/VncAuthSecurity.java | 59 + .../consoleproxy/vnc/security/VncSecurity.java | 45 + .../consoleproxy/vnc/security/VncTLSSecurity.java | 103 + .../consoleproxy/ConsoleProxyNoVncClientTest.java | 32 + .../SecondaryStorageManagerImpl.java | 48 +- .../SecondaryStorageManagerTest.java | 42 +- .../storage/resource/HttpUploadServerHandler.java | 12 +- .../resource/NfsSecondaryStorageResource.java | 49 +- setup/bindir/cloud-migrate-databases.in | 299 +- ...t-guest-sshkey-password-userdata-configdrive.in | 6 +- setup/bindir/cloud-setup-databases.in | 38 +- setup/bindir/cloud-setup-encryption.in | 6 +- setup/bindir/cloud-sysvmadm.in | 75 +- setup/dev/advancedsgtf.cfg | 131 + setup/dev/advancedtf.cfg | 134 + systemvm/agent/js/ajaxviewer.js | 2 +- systemvm/agent/js/cloud.logger.js | 2 +- systemvm/agent/noVNC/app/styles/base.css | 10 +- systemvm/agent/noVNC/app/ui.js | 24 +- systemvm/agent/noVNC/core/rfb.js | 9 +- systemvm/agent/scripts/ssvm-check.sh | 37 +- systemvm/debian/etc/haproxy/haproxy.cfg | 2 +- systemvm/debian/etc/vpcdnsmasq.conf | 2 +- systemvm/debian/opt/cloud/bin/configure.py | 2 +- systemvm/debian/opt/cloud/bin/cs/CsAddress.py | 47 +- systemvm/debian/opt/cloud/bin/cs/CsDhcp.py | 9 +- systemvm/debian/opt/cloud/bin/cs/CsHelper.py | 10 +- systemvm/debian/opt/cloud/bin/cs_ip.py | 2 + systemvm/debian/opt/cloud/bin/dnsmasq.sh | 4 +- systemvm/debian/opt/cloud/bin/get_haproxy_stats.sh | 45 + systemvm/debian/opt/cloud/bin/loadbalancer.sh | 4 +- systemvm/debian/opt/cloud/bin/merge.py | 1 + systemvm/debian/opt/cloud/bin/netusage.sh | 26 +- systemvm/debian/opt/cloud/bin/passwd_server_ip.py | 4 +- systemvm/debian/opt/cloud/bin/setup/bootstrap.sh | 17 +- systemvm/debian/opt/cloud/bin/setup/common.sh | 36 + systemvm/debian/opt/cloud/bin/setup/init.sh | 2 + systemvm/debian/opt/cloud/bin/setup/router.sh | 7 +- systemvm/debian/opt/cloud/bin/setup/secstorage.sh | 4 +- systemvm/debian/opt/cloud/bin/setup/vpcrouter.sh | 22 +- systemvm/debian/opt/cloud/bin/setup_tf_route.py | 45 + systemvm/debian/opt/cloud/bin/update_config.py | 2 - .../opt/cloud/bin/update_interface_config.sh | 63 + systemvm/debian/opt/cloud/bin/vpc_netusage.sh | 2 - systemvm/debian/opt/cloud/bin/vr_cfg.sh | 2 +- systemvm/debian/root/func.sh | 2 +- .../maint/test_zone_level_local_storage_setting.py | 6 +- .../broken/test_ps_resource_limits_volume.py | 1 - test/integration/broken/test_vr_metadata.py | 1 - .../component/maint/test_hypervisor_limit.py | 2 +- .../maint/test_ip_resource_count_for_vpc.py | 6 +- .../component/maint/test_redundant_router.py | 8 +- .../test_redundant_router_deployment_planning.py | 10 +- .../maint/testpath_disable_enable_zone.py | 10 +- .../component/maint/testpath_disablestoragepool.py | 2 +- .../component/maint/testpath_vMotion_vmware.py | 2 +- .../component/test_acl_isolatednetwork_delete.py | 3 +- .../integration/component/test_acl_listsnapshot.py | 2 +- test/integration/component/test_acl_listvm.py | 2 +- test/integration/component/test_acl_listvolume.py | 2 +- .../component/test_acl_sharednetwork.py | 2 - .../component/test_advancedsg_networks.py | 12 +- .../component/test_affinity_groups_projects.py | 3 - test/integration/component/test_baremetal.py | 1 - test/integration/component/test_brocade_vcs.py | 1 - .../integration/component/test_browse_templates.py | 80 +- test/integration/component/test_browse_volumes.py | 222 +- .../test_concurrent_create_volume_from_snapshot.py | 1 - test/integration/component/test_cpu_limits.py | 2 +- test/integration/component/test_deploy_vgpu_vm.py | 2 +- .../component/test_deploy_vm_userdata_reg.py | 2 +- .../integration/component/test_dhcp_dns_offload.py | 1 - .../component/test_dynamic_compute_offering.py | 20 +- .../component/test_edgezone_supportedoperations.py | 133 + test/integration/component/test_egress_rules.py | 3 - .../component/test_escalations_instances.py | 5 +- .../component/test_escalations_ipaddresses.py | 26 +- .../component/test_escalations_templates.py | 3 - .../component/test_escalations_vmware.py | 3 - test/integration/component/test_haproxy.py | 6 +- test/integration/component/test_host.py | 400 +-- .../component/test_hypervisor_capabilities.py | 1 - .../component/test_interpod_migration.py | 2 +- test/integration/component/test_invalid_gw_nm.py | 1 - test/integration/component/test_ldap.py | 1 - .../integration/component/test_ldap_auto_import.py | 2 - .../component/test_multi_tag_support.py | 434 +-- .../component/test_multiple_ips_per_nic.py | 4 +- .../component/test_multiple_nic_support.py | 1 - .../test_multiple_physical_network_creation.py | 405 +++ .../component/test_ncc_integration_dedicated.py | 538 +-- .../component/test_ncc_integration_shared.py | 646 ++-- test/integration/component/test_network_ipv6.py | 2 +- test/integration/component/test_network_mtu.py | 395 ++ .../component/test_network_vpc_custom_dns.py | 1 - .../component/test_organization_states.py | 8 +- test/integration/component/test_project_configs.py | 158 +- test/integration/component/test_project_limits.py | 16 +- .../component/test_project_resources.py | 8 +- .../component/test_redundant_router_services.py | 1 - .../component/test_snapshots_improvement.py | 4 +- test/integration/component/test_stopped_vm.py | 2 +- test/integration/component/test_tags.py | 70 +- ...template_from_snapshot_with_template_details.py | 2 +- test/integration/component/test_vpc_ipv6.py | 2 +- test/integration/component/test_vpc_offerings.py | 8 +- .../component/test_vpc_vms_deployment.py | 6 +- test/integration/plugins/ldap/test_ldap.py | 2 +- .../plugins/solidfire/TestAddRemoveHosts.py | 1 - .../plugins/solidfire/TestManagedSystemVMs.py | 1 - .../integration/plugins/solidfire/TestSnapshots.py | 1 - test/integration/plugins/solidfire/TestVolumes.py | 1 - .../plugins/storpool/MigrateVolumeToStorPool.py | 7 + .../plugins/storpool/TestStorPoolVolumes.py | 2 - test/integration/plugins/storpool/sp_util.py | 30 + test/integration/plugins/tf/common.py | 94 + test/integration/plugins/tf/test_isolated_zone.py | 1410 ++++++++ test/integration/plugins/tf/test_shared_zone.py | 972 +++++ test/integration/smoke/test_accounts.py | 14 +- test/integration/smoke/test_create_network.py | 1 - .../smoke/test_deploy_vm_root_resize.py | 5 +- .../smoke/test_deploy_vm_with_userdata.py | 2 +- .../test_enable_role_based_users_in_projects.py | 1 - test/integration/smoke/test_global_settings.py | 106 + test/integration/smoke/test_host_control_state.py | 252 ++ test/integration/smoke/test_metrics_api.py | 222 +- test/integration/smoke/test_network.py | 99 +- test/integration/smoke/test_network_ipv6.py | 2 +- test/integration/smoke/test_network_permissions.py | 2 +- test/integration/smoke/test_non_contigiousvlan.py | 1 - .../smoke/test_nonstrict_affinity_group.py | 448 +++ .../smoke/test_outofbandmanagement_nestedplugin.py | 2 +- test/integration/smoke/test_primary_storage.py | 14 +- test/integration/smoke/test_projects.py | 172 +- test/integration/smoke/test_pvlan.py | 4 +- test/integration/smoke/test_register_userdata.py | 2 - test/integration/smoke/test_scale_vm.py | 519 ++- test/integration/smoke/test_templates.py | 6 +- test/integration/smoke/test_vm_autoscaling.py | 1112 ++++++ test/integration/smoke/test_vm_life_cycle.py | 93 +- .../smoke/test_vm_lifecycle_unmanage_import.py | 92 +- test/integration/smoke/test_vm_snapshots.py | 2 +- test/integration/smoke/test_vpc_ipv6.py | 2 +- .../testpaths/testpath_delta_snapshots.py | 1 - .../integration/testpaths/testpath_same_vm_name.py | 2 +- .../testpaths/testpath_snapshot_hadrning.py | 10 +- test/integration/testpaths/testpath_stopped_vm.py | 4 +- .../testpaths/testpath_storage_migration.py | 2 +- test/integration/testpaths/testpath_usage.py | 12 +- test/integration/testpaths/testpath_vmlc.py | 10 +- .../testpath_volume_cuncurrent_snapshots.py | 4 +- test/metadata/func/regression.xml | 2 +- test/metadata/func/regression_new.xml | 2 +- test/metadata/func/regression_test.xml | 2 +- test/metadata/func/regression_user.xml | 2 +- test/metadata/func/regression_works.xml | 2 +- test/metadata/func/srxstresswithportfwd.xml | 595 --- test/metadata/func/vmapi.xml | 4 +- test/selenium/browser/firefox.py | 1 - test/selenium/common/__init__.py | 2 - test/selenium/common/shared.py | 1 - test/selenium/cspages/__init__.py | 2 - test/selenium/cspages/cspage.py | 1 - test/selenium/cspages/dashboard/__init__.py | 2 - test/selenium/cspages/dashboard/dashboardpage.py | 1 - test/selenium/cspages/login/__init__.py | 2 - test/selenium/cstests/__init__.py | 1 - test/selenium/cstests/regressiontests/__init__.py | 1 - test/selenium/cstests/smoketests/__init__.py | 1 - test/selenium/cstests/smoketests/smokecfg.py | 1 - test/selenium/lib/Global_Locators.py | 2 - test/selenium/smoke/main.py | 5 +- .../main/java/com/cloud/test/utils/TestClient.java | 2 +- tools/apidoc/build-apidoc.sh | 4 +- tools/apidoc/gen_toc.py | 74 + tools/apidoc/generatecommand.xsl | 2 +- tools/apidoc/generatecommands.xsl | 2 +- tools/apidoc/generatetoc_header.xsl | 2 +- tools/appliance/README.md | 2 +- .../scripts/configure_systemvm_services.sh | 6 +- tools/appliance/systemvmtemplate/template.json | 6 +- tools/cli/README | 1 - .../files/default/cloud-install-sys-tmplt | 5 +- tools/docker/Dockerfile | 6 +- tools/docker/README.md | 2 +- tools/git/git-fwd-merge | 7 +- tools/git/git-pr | 48 +- tools/marvin/marvin/cloudstackException.py | 1 - tools/marvin/marvin/config/test_data.py | 2 +- tools/marvin/marvin/configGenerator.py | 33 +- tools/marvin/marvin/deployDataCenter.py | 56 + tools/marvin/marvin/lib/base.py | 687 +++- tools/marvin/marvin/lib/common.py | 2 +- tools/marvin/marvin/lib/ncc.py | 4 +- tools/marvin/marvin/lib/utils.py | 3 +- tools/marvin/marvin/misc/build/CI.md | 4 +- tools/marvin/marvin/misc/build/bashUtils.py | 1 - tools/marvin/marvin/misc/build/restartMgmt.py | 1 - tools/marvin/marvin/sandbox/__init__.py | 2 - tools/marvin/marvin/sandbox/advanced/__init__.py | 2 - tools/marvin/marvin/sandbox/advancedsg/__init__.py | 2 - tools/marvin/marvin/sandbox/basic/__init__.py | 2 - tools/marvin/marvin/sandbox/demo/__init__.py | 1 - tools/marvin/marvin/sandbox/demo/live/__init__.py | 1 - .../marvin/sandbox/demo/simulator/__init__.py | 2 - .../sandbox/demo/simulator/testcase/__init__.py | 2 - .../demo/simulator/testcase/libs/__init__.py | 2 - .../sandbox/demo/simulator/testcase/libs/common.py | 4 +- .../demo/simulator/testcase/test_vm_life_cycle.py | 6 +- tools/marvin/mvn-setup.py | 4 +- tools/marvin/pom.xml | 6 +- tools/marvin/setup.py | 2 +- tools/{travis => marvin}/xunit-reader.py | 0 tools/ngui/precache.py | 2 +- tools/ngui/static/js/lib/angular.js | 4 +- tools/ngui/static/js/lib/jquery-1.7.2.js | 2 +- tools/transifex/README-transifex.txt | 2 +- tools/travis/after_failure.sh | 24 - tools/travis/after_script.sh | 22 - tools/travis/after_success.sh | 20 - tools/travis/before_install.sh | 139 - tools/travis/before_script.sh | 27 - tools/travis/install.sh | 76 - tools/travis/script.sh | 36 - .../database_comparision_during_upgrade/README | 4 +- tools/whisker/LICENSE | 2 +- tools/whisker/descriptor-for-packaging.xml | 2 +- tools/whisker/descriptor.xml | 2 +- ui/README.md | 19 +- ui/docs/development.md | 6 +- ui/index.html | 2 +- ui/package-lock.json | 157 - ui/package.json | 3 +- ui/public/config.json | 2 +- ui/public/error.html | 2 +- ui/public/locales/ar.json | 4 +- ui/public/locales/ca.json | 4 +- ui/public/locales/de_DE.json | 16 +- ui/public/locales/el_GR.json | 1568 +++++--- ui/public/locales/en.json | 205 +- ui/public/locales/es.json | 4 +- ui/public/locales/fr_FR.json | 4 +- ui/public/locales/hu.json | 4 +- ui/public/locales/it_IT.json | 4 +- ui/public/locales/ja_JP.json | 22 +- ui/public/locales/ko_KR.json | 16 +- ui/public/locales/nb_NO.json | 4 +- ui/public/locales/nl_NL.json | 4 +- ui/public/locales/pl.json | 4 +- ui/public/locales/pt_BR.json | 30 +- ui/public/locales/ru_RU.json | 4 +- ui/public/locales/zh_CN.json | 22 +- ui/src/api/index.js | 2 +- ui/src/components/header/ExternalLink.vue | 54 + ui/src/components/header/UserMenu.vue | 4 +- ui/src/components/view/AnnotationsTab.vue | 1 + ui/src/components/view/BulkActionProgress.vue | 3 + ui/src/components/view/BulkActionView.vue | 13 +- ui/src/components/view/DetailsTab.vue | 16 +- ui/src/components/view/InfoCard.vue | 36 +- ui/src/components/view/ListView.vue | 17 +- ui/src/components/view/SettingsTab.vue | 24 +- ui/src/components/view/StatsTab.vue | 577 ++- ui/src/components/view/VolumesTab.vue | 125 + ui/src/components/view/chart/LineChart.vue | 55 - ui/src/components/view/stats/ResourceStatsInfo.vue | 19 +- .../view/stats/ResourceStatsLineChart.vue | 239 ++ ui/src/components/widgets/Console.vue | 17 +- ui/src/components/widgets/TooltipLabel.vue | 10 +- ui/src/config/router.js | 14 +- ui/src/config/section/compute.js | 131 +- ui/src/config/section/config.js | 4 +- ui/src/config/section/image.js | 6 +- ui/src/config/section/infra/ilbvms.js | 4 +- ui/src/config/section/infra/routers.js | 12 +- ui/src/config/section/infra/systemVms.js | 14 +- ui/src/config/section/infra/zones.js | 22 +- ui/src/config/section/network.js | 17 +- ui/src/config/section/plugin/quota.js | 10 +- ui/src/config/section/storage.js | 13 + ui/src/core/lazy_lib/components_use.js | 4 +- ui/src/core/lazy_lib/icons_use.js | 2 + ui/src/style/README.md | 2 +- ui/src/style/components/view/StatsTab.scss | 5 +- ui/src/style/vars.less | 4 + ui/src/utils/plugins.js | 18 + ui/src/views/AutogenView.vue | 35 +- ui/src/views/compute/AutoScaleDownPolicyTab.vue | 952 +++++ ui/src/views/compute/AutoScaleLoadBalancing.vue | 1221 +++++++ ui/src/views/compute/AutoScaleUpPolicyTab.vue | 952 +++++ ui/src/views/compute/AutoScaleVmProfile.vue | 667 ++++ ui/src/views/compute/CreateAutoScaleVmGroup.vue | 3029 ++++++++++++++++ ui/src/views/compute/CreateKubernetesCluster.vue | 3 +- ui/src/views/compute/CreateSnapshotWizard.vue | 2 +- ui/src/views/compute/DeployVM.vue | 67 +- ui/src/views/compute/InstanceTab.vue | 67 +- ui/src/views/compute/KubernetesServiceTab.vue | 4 +- ui/src/views/compute/StartVirtualMachine.vue | 11 +- .../compute/wizard/AffinityGroupSelection.vue | 9 +- .../compute/wizard/ComputeOfferingSelection.vue | 13 +- .../views/compute/wizard/LoadBalancerSelection.vue | 208 ++ .../views/compute/wizard/MultiNetworkSelection.vue | 2 +- .../views/compute/wizard/NetworkConfiguration.vue | 22 +- ui/src/views/compute/wizard/NetworkSelection.vue | 47 +- ui/src/views/iam/AddLdapAccount.vue | 2 +- .../views/image/AddKubernetesSupportedVersion.vue | 1 + ui/src/views/image/RegisterOrUploadIso.vue | 9 +- ui/src/views/image/RegisterOrUploadTemplate.vue | 28 +- ui/src/views/infra/AddPrimaryStorage.vue | 14 +- ui/src/views/infra/network/IpRangesTabGuest.vue | 1 - .../views/infra/network/IpRangesTabManagement.vue | 1 - ui/src/views/infra/network/IpRangesTabPublic.vue | 1 - ui/src/views/infra/network/IpRangesTabStorage.vue | 1 - ui/src/views/infra/network/ServiceProvidersTab.vue | 59 - .../infra/network/providers/AddSrxFirewall.vue | 381 -- .../infra/network/providers/ProviderListView.vue | 9 - .../views/infra/zone/AdvancedGuestTrafficForm.vue | 7 +- ui/src/views/infra/zone/ZoneWizard.vue | 41 +- ui/src/views/infra/zone/ZoneWizardAddResources.vue | 51 +- .../infra/zone/ZoneWizardCoreZoneTypeStep.vue | 194 + ui/src/views/infra/zone/ZoneWizardLaunchZone.vue | 21 +- .../infra/zone/ZoneWizardNetworkSetupStep.vue | 19 +- .../zone/ZoneWizardPhysicalNetworkSetupStep.vue | 13 +- .../views/infra/zone/ZoneWizardZoneDetailsStep.vue | 294 +- ui/src/views/infra/zone/ZoneWizardZoneTypeStep.vue | 63 +- ui/src/views/network/CreateIsolatedNetworkForm.vue | 77 +- ui/src/views/network/CreateL2NetworkForm.vue | 2 +- ui/src/views/network/CreateNetwork.vue | 49 +- ui/src/views/network/CreateSharedNetworkForm.vue | 81 +- ui/src/views/network/CreateVlanIpRange.vue | 1 + ui/src/views/network/CreateVpc.vue | 52 +- ui/src/views/network/LoadBalancing.vue | 126 +- ui/src/views/network/UpdateNetwork.vue | 82 +- ui/src/views/network/VpcTiersTab.vue | 42 +- ui/src/views/offering/AddComputeOffering.vue | 26 +- ui/src/views/offering/AddDiskOffering.vue | 23 +- ui/src/views/offering/AddNetworkOffering.vue | 24 +- ui/src/views/offering/AddVpcOffering.vue | 52 + ui/src/views/plugins/quota/QuotaSummary.vue | 4 +- ui/src/views/setting/ConfigurationHierarchy.vue | 90 + ui/src/views/setting/ConfigurationTab.vue | 365 ++ ui/src/views/setting/ConfigurationTable.vue | 191 + ui/src/views/setting/ConfigurationValue.vue | 363 ++ ui/src/views/storage/FormSchedule.vue | 6 +- ui/src/views/storage/UploadLocalVolume.vue | 9 +- ui/src/views/storage/UploadVolume.vue | 5 +- ui/tests/mockData/AutogenView.mock.json | 6 +- ui/tests/unit/components/view/ActionButton.spec.js | 3 + ui/tests/unit/views/AutogenView.spec.js | 14 +- .../java/com/cloud/usage/UsageManagerImpl.java | 15 +- .../java/com/cloud/usage/UsageSanityChecker.java | 146 +- .../src/main/resources/usageApplicationContext.xml | 6 + .../cloud/usage/UsageManagerTestConfiguration.java | 4 +- utils/pom.xml | 43 + utils/src/main/java/com/cloud/utils/DateUtil.java | 2 + .../main/java/com/cloud/utils/EncryptionUtil.java | 10 +- .../java/com/cloud/utils/HumanReadableJson.java | 26 +- utils/src/main/java/com/cloud/utils/LogUtils.java | 24 + .../java/com/cloud/utils/SerialVersionUID.java | 1 + .../src/main/java/com/cloud/utils/StringUtils.java | 24 +- .../main/java/com/cloud/utils/TungstenUtils.java | 290 ++ utils/src/main/java/com/cloud/utils/UriUtils.java | 86 +- utils/src/main/java/com/cloud/utils/UuidUtils.java | 10 +- .../cloud/utils/cisco/n1kv/vsm/VsmResponse.java | 2 +- .../com/cloud/utils/crypt/AeadBase64Encryptor.java | 63 + .../com/cloud/utils/crypt/Base64Encryptor.java | 27 + .../com/cloud/utils/crypt/CloudStackEncryptor.java | 147 + .../com/cloud/utils/crypt/DBEncryptionUtil.java | 34 +- .../java/com/cloud/utils/crypt/EncryptionCLI.java | 80 + .../com/cloud/utils/crypt/EncryptionException.java | 34 + .../utils/crypt/EncryptionSecretKeyChecker.java | 54 +- .../cloud/utils/crypt/LegacyBase64Encryptor.java | 58 + .../main/java/com/cloud/utils/db/DbProperties.java | 18 +- .../main/java/com/cloud/utils/net/NetUtils.java | 67 +- .../nicira/nvp/plugin/NiciraNvpApiVersion.java | 6 +- .../java/com/cloud/utils/rest/HttpConstants.java | 2 +- .../cloud/utils/rest/HttpUriRequestBuilder.java | 2 +- .../com/cloud/utils/server/ServerProperties.java | 7 +- .../cloudstack/utils/bytescale/ByteScaleUtils.java | 37 +- .../utils/jsinterpreter/JsInterpreter.java | 146 + .../ReflectionToStringBuilderUtils.java | 14 + .../com/cloud/utils/HumanReadableJsonTest.java | 12 +- .../test/java/com/cloud/utils/LogUtilsTest.java | 39 + .../src/test/java/com/cloud/utils/ScriptTest.java | 2 +- .../test/java/com/cloud/utils/UriUtilsTest.java | 154 +- .../test/java/com/cloud/utils/UuidUtilsTest.java | 22 +- .../crypt/EncryptionSecretKeyCheckerTest.java | 58 + .../java/com/cloud/utils/net/NetUtilsTest.java | 114 +- .../utils/bytescale/ByteScaleUtilsTest.java | 44 +- .../utils/jsinterpreter/JsInterpreterTest.java | 188 + .../utils/mailing/SMTPMailSenderTest.java | 3 +- .../ReflectionToStringBuilderUtilsTest.java | 24 + .../com/cloud/hypervisor/vmware/mo/HostMO.java | 2 + .../hypervisor/vmware/mo/HypervisorHostHelper.java | 4 +- .../hypervisor/vmware/mo/VirtualMachineMO.java | 9 +- .../vmware/mo/VirtualStorageObjectManagerMO.java | 2 +- .../hypervisor/vmware/util/VmwareContext.java | 60 +- .../cloud/hypervisor/vmware/util/VmwareHelper.java | 21 +- .../hypervisor/vmware/util/VmwareHelperTest.java | 56 + 2080 files changed, 105645 insertions(+), 28990 deletions(-) diff --cc ui/public/locales/en.json index f6d48177d2,9177bdde00..4969f28390 --- a/ui/public/locales/en.json +++ b/ui/public/locales/en.json @@@ -226,9 -218,10 +229,11 @@@ "label.add.note": "Add comment", "label.add.opendaylight.device": "Add OpenDaylight controller", "label.add.pa.device": "Add Palo Alto device", + "label.add.param": "Add param", "label.add.physical.network": "Add physical network", "label.add.pod": "Add pod", +"label.add.prefix": "Add prefix", + "label.add.policy": "Add policy", "label.add.primary.storage": "Add primary storage", "label.add.private.gateway": "Add private gateway", "label.add.resources": "Add resources", @@@ -337,7 -312,8 +345,9 @@@ "label.auto.assign": "Automatically assign", "label.auto.assign.diskoffering.disk.size": "Automatically assign offering matching the disk size", "label.auto.assign.random.ip": "Automatically assign a random IP address", +"label.automigrate.volume": "Auto migrate volume to another storage pool if required", + "label.autoscale.vm.groups": "AutoScale VM Groups", + "label.autoscale.vm.profile": "AutoScale VM Profile", "label.autoscalingenabled": "Auto scaling", "label.availability": "Availability", "label.available": "Available", @@@ -398,10 -375,10 +409,10 @@@ "label.certificateid": "Certificate ID", "label.change": "Change", "label.change.affinity": "Change affinity", - "label.change.ip.addess": "Change IP address", + "label.change.ip.address": "Change IP address", "label.change.ipaddress": "Change IP address for NIC", -"label.change.service.offering": "Change service offering", "label.change.offering.for.volume": "Change disk offering for the volume", +"label.change.service.offering": "Change service offering", "label.character": "Character", "label.checksum": "Checksum", "label.choose.resource.icon": "Choose icon", @@@ -440,12 -416,12 +451,13 @@@ "label.community": "Community", "label.complete": "Complete", "label.compute": "Compute", +"label.compute.offerings": "Compute offerings", "label.computeonly.offering": "Compute only disk offering", "label.computeonly.offering.tooltip": "Option to specify root disk related information in the compute offering or to directly link a disk offering to the compute offering", -"label.compute.offerings": "Compute offerings", + "label.conditions": "Conditions", "label.configuration": "Configuration", "label.configure": "Configure", +"label.configure.health.monitor": "Configure Health Monitor", "label.configure.ldap": "Configure LDAP", "label.configure.ovs": "Configure Ovs", "label.configure.sticky.policy": "Configure sticky policy", @@@ -638,7 -590,7 +657,8 @@@ "label.direct.attached.public.ip": "Direct attached public IP", "label.direct.ips": "Shared network IPs", "label.directdownload": "Direct download", +"label.direction": "Direction", + "label.disable.autoscale.vmgroup": "Disable AutoScale VM Group", "label.disable.host": "Disable host", "label.disable.network.offering": "Disable network offering", "label.disable.provider": "Disable provider", @@@ -705,10 -659,17 +725,19 @@@ "label.download.state": "Download state", "label.dpd": "Dead peer detection", "label.driver": "Driver", + "label.duration": "Duration (in sec)", + "label.duration.custom": "Custom", + "label.duration.1hour": "1 hour", + "label.duration.6hours": "6 hours", + "label.duration.12hours": "12 hours", + "label.duration.24hours": "24 hours", + "label.duration.7days": "7 days", "label.dynamicscalingenabled": "Dynamic scaling enabled", "label.dynamicscalingenabled.tooltip": "VM can dynamically scale only when dynamic scaling is enabled on template, service offering and global setting.", +"label.diskofferingstrictness": "Disk offering strictness", +"label.disksizestrictness": "Disk size strictness", + "label.edge": "Edge", + "label.edge.zone": "Edge Zone", "label.edit": "Edit", "label.edit.acl.list": "Edit ACL list", "label.edit.acl.rule": "Edit ACL rule", @@@ -1186,8 -1148,8 +1229,9 @@@ "label.minimum": "Minimum", "label.miniops": "Min IOPS", "label.minmaxiops": "Min IOPS / Max IOPS", + "label.minmembers": "Min members", "label.minmemory": "Min memory (in MB)", +"label.minorsequence": "Minor Sequence", "label.minsize": "Minimum size", "label.minute.past.hour": "minute(s) past the hour", "label.monday": "Monday", @@@ -1495,14 -1461,11 +1556,15 @@@ "label.remove": "Remove", "label.remove.annotation": "Remove comment", "label.remove.egress.rule": "Remove egress rule", +"label.remove.interface.route.table": "Remove Tungsten interface route table", "label.remove.ip.range": "Remove IP range", "label.remove.ldap": "Remove LDAP", +"label.remove.logical.network": "Remove Network from logical router", +"label.remove.logical.router": "Remove logical router", "label.remove.network.offering": "Remove network offering", +"label.remove.network.route.table": "Remove Tungsten Fabric network routing table", "label.remove.pf": "Remove port forwarding rule", + "label.remove.policy": "Remove policy", "label.remove.project.account": "Remove account from project", "label.remove.project.role": "Remove project role", "label.remove.project.user": "Remove user from project", @@@ -1559,20 -1520,16 +1621,22 @@@ "label.root.disk.size": "Root disk size (GB)", "label.rootdisk": "ROOT disk", "label.rootdiskcontrollertype": "Root disk controller", + "label.rootdiskcontrollertypekvm": "Root disk controller", + "label.rootdisksize": "Root disk size (GB)", +"label.routenexthop": "Route next hop", +"label.routenexthoptype": "Route next hop type", +"label.routeprefix": "Route prefix", "label.router.health.check.last.updated": "Last updated", "label.router.health.check.name": "Check name", "label.router.health.check.success": "Success", "label.router.health.checks": "Health checks", "label.routercount": "Total of virtual routers", - "label.routerip": "IPv4 address for router in shared network.", - "label.routeripv6": "IPv6 address for router in shared network.", + "label.routerip": "IPv4 address for the VR in this shared network.", + "label.routeripv6": "IPv6 address for the VR in this shared network.", "label.resourcegroup": "Resource group", +"label.routing.policy": "Routing policy", +"label.routing.policy.terms": "Routing policy terms", +"label.routing.policy.terms.then": "Routing policy terms then", "label.rule": "Rule", "label.rule.number": "Rule number", "label.rules": "Rules", @@@ -2293,10 -2202,8 +2374,9 @@@ "message.confirm.start.lb.vm": "Please confirm you want to start LB VM.", "message.confirm.sync.storage": "Please confirm you want to sync the storage pool", "message.confirm.upgrade.router.newer.template": "Please confirm that you want to upgrade router to use newer template.", - "message.cpu.usage.info.multi.cpu": "The CPU usage percentage can exceed 100% if the VM has more than 1 vCPU or when CPU Cap is not enabled. This behavior happens according to how the hypervisor being used accounts the stats.", - "message.cpu.usage.info.cpu.cap": "If a VM has only 1 vCPU and the CPU Cap on its compute offering is disabled, then the percentage of CPU usage can also go over 100%. This happens because the VM can use more CPUs than it has been allocated.", + "message.cpu.usage.info": "The CPU usage percentage can exceed 100% if the VM has more than 1 vCPU or when CPU Cap is not enabled. This behavior happens according to the hypervisor being used (e.g: in KVM), due to how they account the stats", "message.create.compute.offering": "Compute offering created", +"message.create.tungsten.public.network": "Create Tungsten-Fabric public network", "message.create.internallb": "Creating internal LB", "message.create.internallb.failed": "Failed to create internal LB.", "message.create.internallb.processing": "Creation of internal LB is in progress", @@@ -2427,7 -2328,9 +2517,8 @@@ "message.error.description": "Please enter description.", "message.error.discovering.feature": "Exception caught while discovering features.", "message.error.display.text": "Please enter display text.", + "message.error.duration.less.than.interval": "The duration in Autoscale policy cannot be less than interval", "message.error.enable.saml": "Unable to find users IDs to enable SAML single sign on, kindly enable it manually.", -"message.error.end.date.and.time": "Please select the end date and time!", "message.error.endip": "Please enter end IP.", "message.error.gateway": "Please enter gateway.", "message.error.host.name": "Please enter host name.", @@@ -2440,9 -2343,10 +2531,10 @@@ "message.error.internallb.instance.port": "Please specify a instance port.", "message.error.internallb.name": "Please specify a name for the internal LB.", "message.error.internallb.source.port": "Please specify a source port.", + "message.error.invalid.autoscale.vmgroup.name": "Invalid AutoScale VM group name. It can contain the ASCII letters 'a' through 'z', 'A' through 'Z', the digits '0' through '9' and the hyphen ('-'), must be between 1 and 255 characters long.", "message.error.ip.range": "Please enter valid range.", "message.error.ipv4.address": "Please enter a valid IPv4 address.", -"message.error.ipv4.dns1": "Please enter IpV4 DNS 1.", +"message.error.ipv4.dns2": "Please enter IpV4 DNS 2", "message.error.ipv6.address": "Please enter a valid IP v6 address.", "message.error.ipv6.gateway": "Please enter IpV6 Gateway", "message.error.ipv6.gateway.format": "Please enter a valid IPv6 Gateway.", @@@ -2467,17 -2375,17 +2563,21 @@@ "message.error.rados.pool": "Please enter RADOS pool", "message.error.rados.secret": "Please enter RADOS secret", "message.error.rados.user": "Please enter RADOS user", +"message.error.remove.logical.router": "Removing Logical Router failed", +"message.error.remove.network.policy": "Removing Network Policy failed", "message.error.remove.nic": "There was an error", "message.error.remove.secondary.ipaddress": "There was an error removing the secondary IP Address", -"message.error.reset.config": "Unable to reset config to default value", +"message.error.remove.tungsten.routing.policy": "Removing Tungsten-Fabric Routing Policy from network failed", "message.error.required.input": "Please enter input", +"message.error.reset.config": "Unable to reset config to default value", "message.error.retrieve.kubeconfig": "Unable to retrieve Kubernetes cluster config", +"message.error.routing.policy.term": "Community need to have the following format number:number", "message.error.s3nfs.path": "Please enter S3 NFS Path", "message.error.s3nfs.server": "Please enter S3 NFS Server", + "message.error.select.load.balancer": "Please select a load balancer", + "message.error.select.network": "Please select a network", + "message.error.select.network.supports.vm.autoscaling": "The default network you selected does not support VM AutoScaling, please select a default network which supports VM AutoScaling.", + "message.error.select.user": "Please select a user", "message.error.swift.account": "Please enter account", "message.error.swift.key": "Please enter key", "message.error.swift.username": "Please enter username", @@@ -2737,9 -2634,7 +2852,10 @@@ "message.success.add.vpc.network": "Successfully added VPC network", "message.success.add.vpn.customer.gateway": "Successfully added VPN customer gateway", "message.success.add.vpn.gateway": "Successfully added VPN gateway", + "message.success.assign.vm": "Successfully assigned VM", +"message.success.apply.network.policy": "Successfully applied Network Policy", +"message.success.apply.tungsten.tag": "Successfully applied Tag", +"message.success.asign.vm": "Successfully assigned VM", "message.success.assigned.vms": "Successfully assigned VMs", "message.success.certificate.upload": "Certificate successfully uploaded", "message.success.change.affinity.group": "Successfully changed affinity groups", diff --cc ui/src/components/view/ListView.vue index eb2b6b9ec4,c1508e8211..fcd94008d8 --- a/ui/src/components/view/ListView.vue +++ b/ui/src/components/view/ListView.vue @@@ -519,12 -516,9 +525,13 @@@ export default } }, methods: { + isTungstenPath () { + return ['/tungstennetworkroutertable', '/tungstenpolicy', '/tungsteninterfaceroutertable', + '/tungstenpolicyset', '/tungstenroutingpolicy', '/firewallrule', '/tungstenfirewallpolicy'].includes(this.$route.path) + }, + createPathBasedOnVmType: createPathBasedOnVmType, quickViewEnabled () { - return new RegExp(['/vm', '/kubernetes', '/ssh', '/userdata', '/vmgroup', '/affinitygroup', + return new RegExp(['/vm', '/kubernetes', '/ssh', '/userdata', '/vmgroup', '/affinitygroup', '/autoscalevmgroup', '/volume', '/snapshot', '/vmsnapshot', '/backup', '/guestnetwork', '/vpc', '/vpncustomergateway', '/template', '/iso', diff --cc ui/src/views/infra/zone/ZoneWizard.vue index d8aa4ac6e0,710a1d1883..0b33c7488d --- a/ui/src/views/infra/zone/ZoneWizard.vue +++ b/ui/src/views/infra/zone/ZoneWizard.vue @@@ -118,8 -137,9 +137,9 @@@ export default hint: this.$t('message.zone.detail.hint') }, { + name: 'network', title: 'label.network', - step: ['physicalNetwork', 'netscaler', 'pod', 'guestTraffic', 'storageTraffic', 'publicTraffic'], + step: ['physicalNetwork', 'tungsten', 'netscaler', 'pod', 'guestTraffic', 'storageTraffic', 'publicTraffic'], description: this.$t('message.network.description'), hint: this.$t('message.network.hint') }, diff --cc ui/src/views/network/LoadBalancing.vue index 1afada30ad,cc6899bb5b..5b64d5b857 --- a/ui/src/views/network/LoadBalancing.vue +++ b/ui/src/views/network/LoadBalancing.vue @@@ -104,17 -132,20 +132,27 @@@ {{ returnStickinessLabel(record.id) }} </a-button> </template> + <template #autoscale="{record}"> + <div> + <router-link :to="{ path: '/autoscalevmgroup/' + record.autoscalevmgroup.id }" v-if='record.autoscalevmgroup'> - <a-button>{{ $t('label.view') }}</a-button> ++ <a-button>{{ $t('label.view') }}</a-button> + </router-link> + <router-link :to="{ path: '/action/createAutoScaleVmGroup', query: { networkid: record.networkid, lbruleid : record.id } }" v-else-if='!record.ruleInstances'> - <a-button>{{ $t('label.new') }}</a-button> ++ <a-button>{{ $t('label.new') }}</a-button> + </router-link> + </div> + </template> + <template #healthmonitor="{ record }"> + <a-button @click="() => openHealthMonitorModal(record.id)"> + {{ returnHealthMonitorLabel(record.id) }} + </a-button> + </template> <template #add="{record}"> - <a-button type="primary" @click="() => { selectedRule = record; handleOpenAddVMModal() }"> + <a-button type="primary" @click="() => { selectedRule = record; handleOpenAddVMModal() }" v-if='!record.autoscalevmgroup'> - <template #icon><plus-outlined /></template> - {{ $t('label.add') }} + <template #icon> + <plus-outlined /> + </template> + {{ $t('label.add') }} </a-button> </template> <template #expandedRowRender="{ record }"> @@@ -678,10 -639,10 +724,14 @@@ export default title: this.$t('label.action.configure.stickiness'), slots: { customRender: 'stickiness' } }, + { + title: this.$t('label.action.health.monitor'), + slots: { customRender: 'healthmonitor' } + }, + { + title: this.$t('label.autoscale'), + slots: { customRender: 'autoscale' } + }, { title: this.$t('label.add.vms'), slots: { customRender: 'add' } @@@ -749,9 -698,11 +799,12 @@@ return this.selectedRowKeys.length > 0 } }, + beforeCreate () { + this.createLoadBalancerRuleParams = this.$getApiParams('createLoadBalancerRule') + }, created () { this.initForm() + this.initMonitorForm() this.fetchData() }, watch: { @@@ -828,7 -760,7 +881,8 @@@ this.fetchLBRuleInstances() }, 100) this.fetchLBStickinessPolicies() + this.fetchLBTungstenFabricHealthMonitor() + this.fetchAutoScaleVMgroups() return } this.loading = false diff --cc ui/src/views/network/UpdateNetwork.vue index 3ed2f91a8a,1b8780d174..02b826c1d7 --- a/ui/src/views/network/UpdateNetwork.vue +++ b/ui/src/views/network/UpdateNetwork.vue @@@ -41,8 -41,45 +41,45 @@@ <a-input v-model:value="form.displaytext" :placeholder="apiParams.displaytext.description" - autoFocus /> + v-focus="true" /> </a-form-item> + <div v-if="setMTU"> + <a-row :gutter="12" v-if="resource.type !== 'L2'"> + <a-col :md="12" :lg="12"> + <a-form-item + v-if="!resource.vpcid" + ref="publicmtu" + name="publicmtu"> + <template #label> + <tooltip-label :title="$t('label.publicmtu')" :tooltip="apiParams.publicmtu.description"/> + </template> + <a-input-number + style="width: 100%;" + v-model:value="form.publicmtu" + :defaultValue="resource.publicmtu" + :placeholder="apiParams.publicmtu.description" + @change="updateMtu(true)"/> + <div style="color: red" v-if="errorPublicMtu" v-html="errorPublicMtu"></div> + </a-form-item> + </a-col> + <a-col :md="12" :lg="12"> + <a-form-item + ref="privatemtu" + name="privatemtu"> + <template #label> + <tooltip-label :title="$t('label.privatemtu')" :tooltip="apiParams.privatemtu.description"/> + </template> + <a-input-number + v-model:value="form.privatemtu" + style="width: 100%;" + :defaultValue="resource.privatemtu" + :placeholder="apiParams.privatemtu.description" + @change="updateMtu(false)"/> + <div style="color: red" v-if="errorPrivateMtu" v-html="errorPrivateMtu"></div> + </a-form-item> + </a-col> + </a-row> + </div> <a-form-item name="networkofferingid" ref="networkofferingid" v-if="isUpdatingIsolatedNetwork"> <template #label> <tooltip-label :title="$t('label.networkofferingid')" :tooltip="apiParams.networkofferingid.description"/>