This is an automated email from the ASF dual-hosted git repository. pearl11594 pushed a change to branch netris-integration-upstream in repository https://gitbox.apache.org/repos/asf/cloudstack.git
from eef49e60717 Update ConfigurationManagerImpl.java add d5fd3ec36ea Add API command remove management server (#10325) add 749ddb975f1 Support ApiServer to enforce POST requests for state changing APIs and requests with timestamps (#10899) add 8e4fe1c370e Allow configuring Announcement banner by admin (#10951) add 755ce3d06a8 Merge branch 'main' of https://github.com/apache/cloudstack into netris-integration-upstream No new revisions were added by this update. Summary of changes: api/src/main/java/com/cloud/event/EventTypes.java | 6 + .../java/com/cloud/server/ManagementService.java | 3 + .../org/apache/cloudstack/api/ApiErrorCode.java | 1 + .../apache/cloudstack/api/ApiServerService.java | 2 + .../RemoveManagementServerCmd.java} | 53 ++-- server/src/main/java/com/cloud/api/ApiServer.java | 26 +- server/src/main/java/com/cloud/api/ApiServlet.java | 115 ++++++++- .../cloud/api/query/vo/ManagementServerJoinVO.java | 4 + .../com/cloud/server/ManagementServerImpl.java | 27 ++ ui/package-lock.json | 14 + ui/package.json | 1 + ui/public/config.json | 12 +- ui/src/api/index.js | 44 ++-- ui/src/components/header/AnnouncementBanner.vue | 145 +++++++++++ ui/src/components/header/SamlDomainSwitcher.vue | 6 +- ui/src/components/header/UserMenu.vue | 4 +- ui/src/components/page/GlobalLayout.vue | 13 +- ui/src/components/view/ActionButton.vue | 4 +- ui/src/components/view/AnnotationsTab.vue | 10 +- ui/src/components/view/DedicateData.vue | 18 +- ui/src/components/view/DedicateDomain.vue | 6 +- ui/src/components/view/DedicateModal.vue | 10 +- ui/src/components/view/DetailSettings.vue | 8 +- ui/src/components/view/EventsTab.vue | 4 +- ui/src/components/view/ImageStoreSelectView.vue | 4 +- ui/src/components/view/InfoCard.vue | 16 +- .../InstanceVolumesStoragePoolSelectListView.vue | 4 +- ui/src/components/view/ListResourceTable.vue | 4 +- ui/src/components/view/ListView.vue | 12 +- ui/src/components/view/NicNetworkSelectForm.vue | 4 +- ui/src/components/view/ResourceLimitTab.vue | 6 +- ui/src/components/view/ResourceView.vue | 4 +- ui/src/components/view/SearchView.vue | 38 +-- ui/src/components/view/SettingsTab.vue | 4 +- ui/src/components/view/StatsTab.vue | 4 +- ui/src/components/view/StoragePoolSelectView.vue | 6 +- ui/src/components/view/TestWebhookDeliveryView.vue | 4 +- ui/src/components/view/TreeView.vue | 8 +- ui/src/components/view/UploadResourceIcon.vue | 6 +- ui/src/components/view/VmwareData.vue | 4 +- ui/src/components/view/VolumesTab.vue | 4 +- ui/src/components/view/WebhookDeliveriesTab.vue | 12 +- ui/src/components/widgets/Console.vue | 4 +- ui/src/components/widgets/InfiniteScrollSelect.vue | 4 +- ui/src/components/widgets/OsLogo.vue | 4 +- ui/src/main.js | 57 +++- ui/src/store/modules/user.js | 30 +-- ui/src/utils/plugins.js | 4 +- ui/src/views/AutogenView.vue | 21 +- ui/src/views/auth/ForgotPassword.vue | 4 +- ui/src/views/auth/Login.vue | 8 +- ui/src/views/auth/ResetPassword.vue | 4 +- ui/src/views/compute/AssignInstance.vue | 6 +- ui/src/views/compute/AttachIso.vue | 6 +- ui/src/views/compute/AutoScaleDownPolicyTab.vue | 26 +- ui/src/views/compute/AutoScaleLoadBalancing.vue | 26 +- ui/src/views/compute/AutoScaleUpPolicyTab.vue | 26 +- ui/src/views/compute/AutoScaleVmProfile.vue | 14 +- ui/src/views/compute/BackupScheduleWizard.vue | 4 +- ui/src/views/compute/ChangeAffinity.vue | 6 +- ui/src/views/compute/CreateAutoScaleVmGroup.vue | 34 ++- ui/src/views/compute/CreateKubernetesCluster.vue | 28 +- ui/src/views/compute/CreateSSHKeyPair.vue | 8 +- ui/src/views/compute/CreateSnapshotWizard.vue | 6 +- ui/src/views/compute/DeployVM.vue | 24 +- ui/src/views/compute/DeployVnfAppliance.vue | 22 +- ui/src/views/compute/DestroyVM.vue | 6 +- ui/src/views/compute/EditVM.vue | 22 +- ui/src/views/compute/InstanceSchedules.vue | 8 +- ui/src/views/compute/InstanceTab.vue | 8 +- ui/src/views/compute/KubernetesServiceTab.vue | 16 +- ui/src/views/compute/MigrateVMStorage.vue | 4 +- ui/src/views/compute/MigrateWizard.vue | 8 +- ui/src/views/compute/RegisterUserData.vue | 6 +- ui/src/views/compute/ReinstallVm.vue | 10 +- ui/src/views/compute/ResetSshKeyPair.vue | 6 +- ui/src/views/compute/ResetUserData.vue | 15 +- ui/src/views/compute/ScaleKubernetesCluster.vue | 10 +- ui/src/views/compute/ScaleVM.vue | 10 +- ui/src/views/compute/StartVirtualMachine.vue | 10 +- ui/src/views/compute/UpgradeKubernetesCluster.vue | 6 +- ui/src/views/compute/backup/BackupSchedule.vue | 4 +- ui/src/views/compute/backup/FormSchedule.vue | 4 +- ui/src/views/compute/wizard/MultiDiskSelection.vue | 4 +- .../views/compute/wizard/MultiNetworkSelection.vue | 4 +- ui/src/views/compute/wizard/NetworkSelection.vue | 10 +- ui/src/views/compute/wizard/OwnershipSelection.vue | 8 +- .../compute/wizard/SecurityGroupSelection.vue | 4 +- ui/src/views/dashboard/CapacityDashboard.vue | 26 +- ui/src/views/dashboard/Dashboard.vue | 4 +- ui/src/views/dashboard/SetupTwoFaAtLogin.vue | 12 +- ui/src/views/dashboard/UsageDashboard.vue | 30 +-- ui/src/views/dashboard/VerifyOauth.vue | 4 +- ui/src/views/dashboard/VerifyTwoFa.vue | 4 +- ui/src/views/iam/AddAccount.vue | 12 +- ui/src/views/iam/AddLdapAccount.vue | 16 +- ui/src/views/iam/AddUser.vue | 12 +- ui/src/views/iam/ChangeUserPassword.vue | 4 +- ui/src/views/iam/ConfigureSamlSsoAuth.vue | 8 +- ui/src/views/iam/CreateRole.vue | 6 +- ui/src/views/iam/DeleteAccount.vue | 6 +- ui/src/views/iam/DomainActionForm.vue | 4 +- ui/src/views/iam/DomainView.vue | 31 +-- ui/src/views/iam/EditAccount.vue | 6 +- ui/src/views/iam/EditUser.vue | 4 +- ui/src/views/iam/ImportRole.vue | 4 +- ui/src/views/iam/RolePermissionTab.vue | 12 +- ui/src/views/iam/SSLCertificateTab.vue | 6 +- ui/src/views/iam/SetupTwoFaAtUserProfile.vue | 12 +- .../views/image/AddKubernetesSupportedVersion.vue | 6 +- ui/src/views/image/IsoZones.vue | 12 +- ui/src/views/image/RegisterOrUploadIso.vue | 18 +- ui/src/views/image/RegisterOrUploadTemplate.vue | 24 +- ui/src/views/image/TemplateVnfSettings.vue | 6 +- ui/src/views/image/TemplateZones.vue | 12 +- ui/src/views/image/UpdateISO.vue | 10 +- .../image/UpdateKubernetesSupportedVersion.vue | 4 +- ui/src/views/image/UpdateTemplate.vue | 10 +- .../views/image/UpdateTemplateIsoPermissions.vue | 12 +- ui/src/views/infra/AddObjectStorage.vue | 4 +- ui/src/views/infra/AddPrimaryStorage.vue | 16 +- ui/src/views/infra/AddSecondaryStorage.vue | 8 +- ui/src/views/infra/AsyncJobsTab.vue | 4 +- ui/src/views/infra/ChangeHostPassword.vue | 4 +- ui/src/views/infra/ChangeStoragePoolScope.vue | 6 +- ui/src/views/infra/ClusterAdd.vue | 14 +- ui/src/views/infra/ClusterDRSTab.vue | 12 +- ui/src/views/infra/ClusterUpdate.vue | 8 +- ui/src/views/infra/ConfigureHostOOBM.vue | 4 +- ui/src/views/infra/Confirmation.vue | 4 +- ui/src/views/infra/ConnectedAgentsTab.vue | 4 +- ui/src/views/infra/CpuSockets.vue | 4 +- ui/src/views/infra/HostAdd.vue | 14 +- ui/src/views/infra/HostEnableDisable.vue | 6 +- ui/src/views/infra/HostInfo.vue | 4 +- ui/src/views/infra/HostUpdate.vue | 10 +- ui/src/views/infra/InfraSummary.vue | 12 +- ui/src/views/infra/ManagementServerPeerTab.vue | 4 +- ui/src/views/infra/Metrics.vue | 6 +- ui/src/views/infra/MigrateData.vue | 6 +- ui/src/views/infra/PodAdd.vue | 8 +- ui/src/views/infra/PodUpdate.vue | 8 +- ui/src/views/infra/Resources.vue | 4 +- ui/src/views/infra/StorageBrowser.vue | 8 +- ui/src/views/infra/UpdatePrimaryStorage.vue | 8 +- ui/src/views/infra/UsageRecords.vue | 22 +- ui/src/views/infra/ZoneUpdate.vue | 8 +- ui/src/views/infra/network/DedicatedVLANTab.vue | 14 +- ui/src/views/infra/network/EditTrafficLabel.vue | 6 +- ui/src/views/infra/network/IpRangesTabGuest.vue | 10 +- .../views/infra/network/IpRangesTabManagement.vue | 8 +- ui/src/views/infra/network/IpRangesTabPublic.vue | 18 +- ui/src/views/infra/network/IpRangesTabStorage.vue | 10 +- ui/src/views/infra/network/ServiceProvidersTab.vue | 12 +- ui/src/views/infra/network/TrafficTypesTab.vue | 12 +- .../infra/network/providers/AddF5LoadBalancer.vue | 6 +- .../network/providers/AddNetscalerLoadBalancer.vue | 6 +- .../infra/network/providers/AddNiciraNvpDevice.vue | 6 +- .../network/providers/AddPaloAltoFirewall.vue | 6 +- .../views/infra/network/providers/ProviderItem.vue | 4 +- .../infra/network/providers/ProviderListView.vue | 6 +- ui/src/views/infra/routers/RouterHealthCheck.vue | 6 +- ui/src/views/infra/zone/AsNumbersTab.vue | 8 +- ui/src/views/infra/zone/BgpPeersTab.vue | 16 +- ui/src/views/infra/zone/Ipv4GuestSubnetsTab.vue | 16 +- ui/src/views/infra/zone/PhysicalNetworksTab.vue | 8 +- ui/src/views/infra/zone/SystemVmsTab.vue | 4 +- ui/src/views/infra/zone/ZoneWizardAddResources.vue | 10 +- ui/src/views/infra/zone/ZoneWizardLaunchZone.vue | 68 ++--- .../infra/zone/ZoneWizardNetworkSetupStep.vue | 4 +- .../views/infra/zone/ZoneWizardZoneDetailsStep.vue | 8 +- ui/src/views/network/AclListRulesTab.vue | 22 +- ui/src/views/network/ChangeBgpPeerForNetwork.vue | 6 +- ui/src/views/network/ChangeBgpPeerForVpc.vue | 6 +- .../views/network/CreateIpv4SubnetForNetwork.vue | 8 +- ui/src/views/network/CreateIsolatedNetworkForm.vue | 14 +- ui/src/views/network/CreateL2NetworkForm.vue | 10 +- ui/src/views/network/CreateNetwork.vue | 4 +- ui/src/views/network/CreateNetworkPermission.vue | 4 +- ui/src/views/network/CreateSharedNetworkForm.vue | 22 +- ui/src/views/network/CreateVlanIpRange.vue | 8 +- ui/src/views/network/CreateVpc.vue | 12 +- ui/src/views/network/CreateVpnCustomerGateway.vue | 4 +- ui/src/views/network/EgressRulesTab.vue | 12 +- ui/src/views/network/EnableStaticNat.vue | 12 +- ui/src/views/network/FirewallRules.vue | 18 +- ui/src/views/network/GuestIpRanges.vue | 8 +- ui/src/views/network/GuestVlanNetworksTab.vue | 4 +- .../views/network/IngressEgressRuleConfigure.vue | 16 +- ui/src/views/network/InternalLBAssignVmForm.vue | 10 +- ui/src/views/network/InternalLBAssignedVmTab.vue | 6 +- ui/src/views/network/IpAddressesTab.vue | 14 +- ui/src/views/network/Ipv6FirewallRulesTab.vue | 8 +- ui/src/views/network/LoadBalancing.vue | 42 +-- ui/src/views/network/NetworkPermissions.vue | 8 +- ui/src/views/network/NicsTab.vue | 22 +- ui/src/views/network/NicsTable.vue | 4 +- ui/src/views/network/PortForwarding.vue | 20 +- ui/src/views/network/PublicIpResource.vue | 8 +- ui/src/views/network/ReservePublicIP.vue | 10 +- ui/src/views/network/RoutersTab.vue | 4 +- ui/src/views/network/RoutingFirewallRulesTab.vue | 8 +- ui/src/views/network/StaticRoutesTab.vue | 14 +- ui/src/views/network/UpdateNetwork.vue | 8 +- ui/src/views/network/VnfAppliancesTab.vue | 4 +- ui/src/views/network/VpcTab.vue | 26 +- ui/src/views/network/VpcTiersTab.vue | 26 +- ui/src/views/network/VpnDetails.vue | 8 +- .../views/network/tungsten/FirewallPolicyTab.vue | 8 +- ui/src/views/network/tungsten/FirewallRuleTab.vue | 18 +- ui/src/views/network/tungsten/FirewallTagTab.vue | 10 +- ui/src/views/network/tungsten/LogicalRouterTab.vue | 8 +- ui/src/views/network/tungsten/NetworkPolicyTab.vue | 10 +- .../network/tungsten/TungstenFabricPolicyRule.vue | 8 +- .../network/tungsten/TungstenFabricPolicyTag.vue | 10 +- .../network/tungsten/TungstenFabricTableView.vue | 10 +- ui/src/views/offering/AddComputeOffering.vue | 18 +- ui/src/views/offering/AddDiskOffering.vue | 14 +- ui/src/views/offering/AddNetworkOffering.vue | 18 +- ui/src/views/offering/AddVpcOffering.vue | 14 +- ui/src/views/offering/ImportBackupOffering.vue | 8 +- ui/src/views/offering/UpdateOfferingAccess.vue | 10 +- ui/src/views/plugins/ApiDocsPlugin.vue | 4 +- ui/src/views/plugins/CloudianPlugin.vue | 4 +- ui/src/views/plugins/quota/CreateQuotaTariff.vue | 6 +- ui/src/views/plugins/quota/EditQuotaTariff.vue | 6 +- .../views/plugins/quota/EditTariffValueWizard.vue | 4 +- .../views/plugins/quota/EmailTemplateDetails.vue | 6 +- ui/src/views/plugins/quota/QuotaBalance.vue | 6 +- .../views/plugins/quota/QuotaSummaryResource.vue | 4 +- ui/src/views/plugins/quota/QuotaUsage.vue | 6 +- ui/src/views/project/AccountsTab.vue | 12 +- ui/src/views/project/AddAccountOrUserToProject.vue | 12 +- ui/src/views/project/InvitationTokenTemplate.vue | 4 +- ui/src/views/project/InvitationsTemplate.vue | 6 +- .../views/project/iam/ProjectRolePermissionTab.vue | 12 +- ui/src/views/project/iam/ProjectRoleTab.vue | 10 +- ui/src/views/setting/ConfigurationTab.vue | 6 +- ui/src/views/setting/ConfigurationValue.vue | 6 +- ui/src/views/storage/AttachVolume.vue | 6 +- ui/src/views/storage/ChangeOfferingForVolume.vue | 6 +- .../views/storage/ChangeSharedFSDiskOffering.vue | 6 +- .../storage/ChangeSharedFSServiceOffering.vue | 8 +- ui/src/views/storage/CreateBucket.vue | 6 +- ui/src/views/storage/CreateSharedFS.vue | 12 +- .../views/storage/CreateSnapshotFromVMSnapshot.vue | 6 +- ui/src/views/storage/CreateTemplate.vue | 14 +- ui/src/views/storage/CreateVolume.vue | 14 +- ui/src/views/storage/FormSchedule.vue | 6 +- ui/src/views/storage/MigrateImageStoreResource.vue | 6 +- ui/src/views/storage/MigrateVolume.vue | 10 +- ui/src/views/storage/RecurringSnapshotVolume.vue | 4 +- ui/src/views/storage/ResizeVolume.vue | 6 +- ui/src/views/storage/RestoreAttachBackupVolume.vue | 6 +- ui/src/views/storage/ScheduledSnapshots.vue | 4 +- ui/src/views/storage/SharedFSTab.vue | 6 +- ui/src/views/storage/SnapshotZones.vue | 10 +- ui/src/views/storage/TakeSnapshot.vue | 6 +- ui/src/views/storage/UpdateBucket.vue | 4 +- ui/src/views/storage/UpdateSharedFS.vue | 4 +- ui/src/views/storage/UploadLocalVolume.vue | 12 +- ui/src/views/storage/UploadVolume.vue | 12 +- ui/src/views/tools/CreateWebhook.vue | 8 +- ui/src/views/tools/ImportUnmanagedInstance.vue | 16 +- ui/src/views/tools/ManageInstances.vue | 14 +- ui/src/views/tools/ManageVolumes.vue | 20 +- ui/src/views/tools/SelectVmwareVcenter.vue | 8 +- ui/tests/common/index.js | 10 + ui/tests/unit/components/view/ActionButton.spec.js | 30 +-- ui/tests/unit/views/AutogenView.spec.js | 286 ++++++++++----------- ui/tests/unit/views/compute/MigrateWizard.spec.js | 38 ++- 271 files changed, 1865 insertions(+), 1525 deletions(-) copy api/src/main/java/org/apache/cloudstack/api/command/admin/{zone/DeleteZoneCmd.java => management/RemoveManagementServerCmd.java} (60%) create mode 100644 ui/src/components/header/AnnouncementBanner.vue