dashboard-shell-shell 1.0.122 → 1.0.1000000081
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.DS_Store +0 -0
- package/assets/brand/harvester/favicon.png +0 -0
- package/assets/brand/suse/favicon.png +0 -0
- package/assets/icons/iconfont.css +19 -3
- package/assets/icons/iconfont.js +1 -1
- package/assets/icons/iconfont.json +28 -0
- package/assets/icons/iconfont.ttf +0 -0
- package/assets/icons/iconfont.woff +0 -0
- package/assets/icons/iconfont.woff2 +0 -0
- package/assets/images/pl/half-logo.svg +2 -23
- package/assets/styles/base/_functions.scss +0 -0
- package/assets/styles/base/_mixins.scss +0 -0
- package/assets/styles/base/_variables.scss +1 -1
- package/assets/styles/global/_labeled-input.scss +0 -1
- package/assets/styles/global/_layout.scss +1 -1
- package/assets/styles/global/_select.scss +4 -2
- package/assets/styles/global/_table.scss +5 -0
- package/assets/styles/vendor/vue-select.scss +2 -1
- package/assets/translations/en-us.yaml +1 -1
- package/assets/translations/zh-hans.yaml +25 -15
- package/chart/monitoring/index.vue +3 -1
- package/chart/monitoring/prometheus/index.vue +13 -10
- package/cloud-credential/aws.vue +2 -0
- package/components/ActionDropdown.vue +1 -1
- package/components/ActionDropdownShell.vue +71 -0
- package/components/ActionMenu.vue +2 -2
- package/components/ActionMenuShell.vue +3 -0
- package/components/AppModal.vue +84 -8
- package/components/AssignTo.vue +25 -11
- package/components/AsyncButton.vue +24 -7
- package/components/BannerGraphic.vue +1 -0
- package/components/ButtonDropdown.vue +26 -4
- package/components/ButtonGroup.vue +4 -0
- package/components/ButtonMultiAction.vue +1 -0
- package/components/CodeMirror.vue +19 -6
- package/components/CommunityLinks.vue +3 -3
- package/components/ConsumptionGauge.vue +24 -5
- package/components/CopyToClipboardText.vue +2 -1
- package/components/CruResource.vue +13 -7
- package/components/CruResourceFooter.vue +2 -2
- package/components/DashboardOptions.vue +29 -17
- package/components/DetailText.vue +5 -0
- package/components/DisableAuthProviderModal.vue +1 -0
- package/components/DotState.vue +84 -0
- package/components/ExplorerMembers.vue +1 -1
- package/components/ExplorerProjectsNamespaces.vue +89 -16
- package/components/FixedBanner.vue +19 -12
- package/components/GlobalRoleBindings.vue +5 -1
- package/components/GrafanaDashboard.vue +4 -4
- package/components/GrowlManager.vue +4 -1
- package/components/HardwareResourceGauge.vue +39 -3
- package/components/InfoBox.vue +3 -3
- package/components/InputOrDisplay.vue +28 -2
- package/components/LabelValue.vue +20 -1
- package/components/LandingPagePreference.vue +5 -3
- package/components/LocaleSelector.vue +39 -93
- package/components/ModalManager.vue +55 -0
- package/components/ModalWithCard.vue +13 -3
- package/components/MoveModal.vue +1 -0
- package/components/PodSecurityAdmission.vue +1 -1
- package/components/PromptChangePassword.vue +1 -1
- package/components/PromptModal.vue +16 -3
- package/components/PromptRemove.vue +29 -9
- package/components/PromptRestore.vue +1 -0
- package/components/ResourceCancelModal.vue +1 -0
- package/components/ResourceDetail/Masthead.vue +52 -17
- package/components/ResourceDetail/__tests__/Masthead.test.ts +5 -1
- package/components/ResourceDetail/index.vue +54 -16
- package/components/ResourceList/Masthead.vue +9 -4
- package/components/ResourceList/index.vue +4 -3
- package/components/ResourceTable.vue +1 -0
- package/components/SideNav.vue +20 -15
- package/components/SlideInPanelManager.vue +126 -0
- package/components/SortableTable/THead.vue +10 -4
- package/components/SortableTable/actions.js +1 -1
- package/components/SortableTable/index.vue +540 -553
- package/components/SortableTable/selection.js +2 -13
- package/components/StatusBadge.vue +77 -0
- package/components/Tabbed/Tab.vue +3 -3
- package/components/Tabbed/index.vue +47 -29
- package/components/Wizard.vue +2 -2
- package/components/YamlEditor.vue +1 -1
- package/components/__tests__/AsyncButton.test.ts +2 -2
- package/components/__tests__/FixedBanner.test.ts +3 -3
- package/components/__tests__/ModalManager.spec.ts +176 -0
- package/components/__tests__/SlideInPanelManager.spec.ts +166 -0
- package/components/auth/Principal.vue +10 -3
- package/components/auth/RoleDetailEdit.vue +1 -1
- package/components/auth/__tests__/RoleDetailEdit.test.ts +3 -2
- package/components/form/ArrayList.vue +123 -85
- package/components/form/ArrayListGrouped.vue +10 -2
- package/components/form/ArrayListSelect.vue +1 -1
- package/components/form/Command.vue +6 -15
- package/components/form/EnvVars.vue +16 -8
- package/components/form/Footer.vue +10 -7
- package/components/form/HealthCheck.vue +3 -3
- package/components/form/HookOption.vue +11 -16
- package/components/form/InputWithSelect.vue +6 -5
- package/components/form/KeyValue.vue +39 -10
- package/components/form/LabeledSelect.vue +73 -77
- package/components/form/Labels.vue +6 -3
- package/components/form/LifecycleHooks.vue +3 -3
- package/components/form/MatchExpressions.vue +42 -17
- package/components/form/NameNsDescription.vue +163 -116
- package/components/form/Networking.vue +20 -12
- package/components/form/NodeAffinity.vue +31 -23
- package/components/form/NodeScheduling.vue +13 -3
- package/components/form/Password.vue +11 -5
- package/components/form/PodAffinity.vue +47 -48
- package/components/form/Probe.vue +68 -66
- package/components/form/ResourceQuota/Namespace.vue +4 -4
- package/components/form/ResourceQuota/NamespaceRow.vue +5 -7
- package/components/form/ResourceQuota/Project.vue +9 -5
- package/components/form/ResourceQuota/ProjectRow.vue +4 -6
- package/components/form/ResourceSelector.vue +7 -9
- package/components/form/SSHKnownHosts/KnownHostsEditDialog.vue +6 -3
- package/components/form/SSHKnownHosts/__tests__/KnownHostsEditDialog.test.ts +12 -1
- package/components/form/SSHKnownHosts/index.vue +16 -2
- package/components/form/Security.vue +54 -56
- package/components/form/Select.vue +44 -7
- package/components/form/ShellInput.vue +5 -1
- package/components/form/SimpleSecretSelector.vue +29 -9
- package/components/form/Tolerations.vue +5 -1
- package/components/form/UnitInput.vue +10 -5
- package/components/form/ValueFromResource.vue +134 -121
- package/components/form/WorkloadPorts.vue +18 -18
- package/components/form/__tests__/ArrayList.test.ts +5 -2
- package/components/form/__tests__/MatchExpressions.test.ts +12 -12
- package/components/form/__tests__/NameNsDescription.test.ts +115 -14
- package/components/form/__tests__/Probe.test.ts +12 -8
- package/components/form/__tests__/SSHKnownHosts.test.ts +11 -0
- package/components/form/__tests__/Select.test.ts +37 -0
- package/components/form/__tests__/UnitInput.test.ts +4 -5
- package/components/formatter/BadgeStateFormatter.vue +8 -5
- package/components/formatter/InternalExternalIP.vue +2 -0
- package/components/formatter/LiveDate.vue +3 -3
- package/components/formatter/SecretData.vue +20 -7
- package/components/nav/Favorite.vue +5 -1
- package/components/nav/Group.vue +18 -4
- package/components/nav/Header.vue +39 -13
- package/components/nav/Jump.vue +7 -0
- package/components/nav/NamespaceFilter.vue +21 -11
- package/components/nav/Pinned.vue +1 -1
- package/components/nav/TopLevelMenu.vue +5 -17
- package/components/nav/Type.vue +30 -33
- package/components/nav/__tests__/TopLevelMenu.test.ts +0 -40
- package/components/rancherResourceDetail/Masthead.vue +769 -0
- package/components/rancherResourceDetail/__tests__/Masthead.test.ts +65 -0
- package/components/rancherResourceDetail/index.vue +591 -0
- package/components/rancherResourceList/Masthead-btn.vue +225 -0
- package/components/rancherResourceList/Masthead.vue +375 -0
- package/components/rancherResourceList/ResourceLoadingIndicator.vue +140 -0
- package/components/rancherResourceList/index.vue +307 -0
- package/components/rancherResourceList/resource-list.config.js +7 -0
- package/components/rancherResourceTable.vue +783 -0
- package/components/rancherSortableTable/THead.vue +561 -0
- package/components/rancherSortableTable/actions.js +153 -0
- package/components/rancherSortableTable/advanced-filtering.js +272 -0
- package/components/rancherSortableTable/debug.js +117 -0
- package/components/rancherSortableTable/filtering.js +290 -0
- package/components/rancherSortableTable/grouping.js +48 -0
- package/components/rancherSortableTable/index.vue +2712 -0
- package/components/rancherSortableTable/paging.js +155 -0
- package/components/rancherSortableTable/selection.js +629 -0
- package/components/rancherSortableTable/sortable-config.ts +4 -0
- package/components/rancherSortableTable/sorting.js +129 -0
- package/components/templates/blank.vue +4 -1
- package/components/templates/default.vue +8 -0
- package/components/templates/home.vue +10 -1
- package/components/templates/plain.vue +10 -1
- package/composables/focusTrap.ts +11 -3
- package/composables/useRuntimeFlag.ts +29 -0
- package/config/private-label.js +15 -10
- package/config/router/routes.js +21 -13
- package/config/store.js +4 -0
- package/config/table-headers.js +3 -2
- package/config/uiplugins.js +5 -1
- package/core/plugin-routes.ts +5 -115
- package/core/plugins.js +1 -1
- package/core/types.ts +23 -2
- package/detail/__tests__/autoscaling.horizontalpodautoscaler.test.ts +84 -23
- package/detail/autoscaling.horizontalpodautoscaler/index.vue +13 -3
- package/detail/provisioning.cattle.io.cluster.vue +72 -6
- package/dialog/AddCustomBadgeDialog.vue +1 -0
- package/dialog/DeactivateDriverDialog.vue +5 -4
- package/dialog/ForceMachineRemoveDialog.vue +6 -3
- package/dialog/GitRepoForceUpdateDialog.vue +1 -1
- package/dialog/ScalePoolDownDialog.vue +2 -2
- package/edit/__tests__/monitoring.coreos.com.prometheusrule.test.ts +16 -3
- package/edit/auth/__tests__/oidc.test.ts +162 -88
- package/edit/auth/azuread.vue +2 -1
- package/edit/auth/github.vue +1 -1
- package/edit/auth/googleoauth.vue +5 -1
- package/edit/auth/ldap/__tests__/config.test.ts +0 -14
- package/edit/auth/ldap/config.vue +0 -24
- package/edit/auth/ldap/index.vue +1 -1
- package/edit/auth/oidc.vue +39 -6
- package/edit/auth/saml.vue +1 -1
- package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +5 -2
- package/edit/cloudcredential.vue +24 -9
- package/edit/fleet.cattle.io.clustergroup.vue +5 -3
- package/edit/fleet.cattle.io.gitrepo.vue +2 -0
- package/edit/logging-flow/Match.vue +1 -1
- package/edit/logging.banzaicloud.io.output/__tests__/logging.banzaicloud.io.output.test.ts +40 -9
- package/edit/management.cattle.io.user.vue +28 -3
- package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +19 -19
- package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +31 -31
- package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +36 -12
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +6 -6
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +4 -4
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +4 -4
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +1 -1
- package/edit/monitoring.coreos.com.receiver/auth.vue +29 -29
- package/edit/monitoring.coreos.com.receiver/types/email.vue +6 -6
- package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +10 -10
- package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +5 -5
- package/edit/monitoring.coreos.com.receiver/types/slack.vue +4 -4
- package/edit/namespace.vue +1 -2
- package/edit/networking.k8s.io.ingress/IngressClass.vue +7 -3
- package/edit/networking.k8s.io.ingress/RulePath.vue +1 -1
- package/edit/networking.k8s.io.ingress/__tests__/IngressClass.test.ts +58 -0
- package/edit/persistentvolume/__tests__/persistentvolume.test.ts +14 -2
- package/edit/provisioning.cattle.io.cluster/CustomCommand.vue +4 -1
- package/edit/provisioning.cattle.io.cluster/SelectCredential.vue +26 -9
- package/edit/provisioning.cattle.io.cluster/__tests__/Advanced.test.ts +8 -10
- package/edit/provisioning.cattle.io.cluster/rke2.vue +31 -40
- package/edit/provisioning.cattle.io.cluster/tabs/Advanced.vue +5 -2
- package/edit/provisioning.cattle.io.cluster/tabs/AgentConfiguration.vue +6 -1
- package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +33 -2
- package/edit/provisioning.cattle.io.cluster/tabs/etcd/index.vue +3 -3
- package/edit/service.vue +0 -3
- package/edit/token.vue +32 -11
- package/edit/workload/Job.vue +6 -6
- package/edit/workload/__tests__/Job.test.ts +0 -1
- package/edit/workload/index.vue +1 -0
- package/edit/workload/mixins/workload.js +3 -3
- package/initialize/install-plugins.js +2 -1
- package/list/harvesterhci.io.management.cluster.vue +4 -1
- package/list/management.cattle.io.feature.vue +1 -0
- package/list/namespace.vue +3 -1
- package/list/provisioning.cattle.io.cluster.vue +20 -12
- package/list/workload.vue +7 -6
- package/machine-config/__tests__/vmwarevsphere.test.ts +48 -3
- package/machine-config/azure.vue +16 -4
- package/machine-config/vmwarevsphere.vue +16 -0
- package/mixins/resource-fetch.js +2 -1
- package/models/__tests__/logging.banzaicloud.io.flow.test.ts +88 -0
- package/models/__tests__/namespace.test.ts +25 -1
- package/models/cloudcredential.js +5 -0
- package/models/kontainerdriver.js +6 -3
- package/models/logging.banzaicloud.io.flow.js +2 -1
- package/models/management.cattle.io.node.js +3 -3
- package/models/management.cattle.io.setting.js +2 -1
- package/models/namespace.js +4 -5
- package/models/nodedriver.js +6 -3
- package/models/storage.k8s.io.storageclass.js +2 -2
- package/models/workload.js +4 -1
- package/package.json +1 -1
- package/pages/about.vue +16 -8
- package/pages/account/index.vue +80 -24
- package/pages/account/pri.vue +229 -0
- package/pages/auth/login.vue +195 -44
- package/pages/auth/logout.vue +4 -1
- package/pages/auth/setup.vue +144 -19
- package/pages/auth/verify.vue +13 -8
- package/pages/auth copy/login.vue +595 -0
- package/pages/auth copy/logout.vue +47 -0
- package/pages/auth copy/setup.vue +523 -0
- package/pages/auth copy/verify.vue +203 -0
- package/pages/c/_cluster/_product/namespaces.vue +5 -5
- package/pages/c/_cluster/apps/charts/chart.vue +1 -1
- package/pages/c/_cluster/apps/charts/install.vue +26 -26
- package/pages/c/_cluster/auth/config/index.vue +10 -12
- package/pages/c/_cluster/explorer/EventsTable.vue +38 -33
- package/pages/c/_cluster/explorer/index.vue +17 -15
- package/pages/c/_cluster/istio/index.vue +2 -2
- package/pages/c/_cluster/longhorn/index.vue +1 -1
- package/pages/c/_cluster/monitoring/index.vue +1 -1
- package/pages/c/_cluster/monitoring/monitor/_namespace/_id.vue +4 -2
- package/pages/c/_cluster/monitoring/monitor/create.vue +4 -2
- package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
- package/pages/c/_cluster/monitoring/route-receiver/_id.vue +4 -2
- package/pages/c/_cluster/monitoring/route-receiver/create.vue +5 -2
- package/pages/c/_cluster/neuvector/index.vue +1 -1
- package/pages/c/_cluster/settings/brand.vue +3 -3
- package/pages/c/_cluster/uiplugins/CatalogList/index.vue +8 -10
- package/pages/diagnostic.vue +59 -11
- package/pages/fail-whale.vue +14 -8
- package/pages/home.vue +24 -18
- package/pages/prefs.vue +9 -7
- package/pages/support/index.vue +4 -1
- package/pkg/tsconfig.json +9 -9
- package/pkg/vue.config.js +1 -1
- package/plugins/dashboard-store/normalize.js +3 -1
- package/plugins/dashboard-store/resource-class.js +31 -29
- package/plugins/internal-api/index.ts +37 -0
- package/plugins/internal-api/shared/base-api.ts +13 -0
- package/plugins/internal-api/shell/shell.api.ts +108 -0
- package/promptRemove/management.cattle.io.fleetworkspace.vue +1 -1
- package/promptRemove/management.cattle.io.globalrole.vue +1 -1
- package/promptRemove/management.cattle.io.project.vue +2 -2
- package/promptRemove/management.cattle.io.roletemplate.vue +1 -1
- package/promptRemove/pod.vue +1 -1
- package/public/index.html +2 -1
- package/rancher-components/BadgeState/BadgeState.vue +5 -1
- package/rancher-components/Banner/Banner.vue +8 -2
- package/rancher-components/Card/Card.vue +3 -6
- package/rancher-components/Form/Checkbox/Checkbox.vue +4 -0
- package/rancher-components/Form/LabeledInput/LabeledInput.vue +5 -2
- package/rancher-components/Form/Radio/RadioButton.vue +3 -3
- package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +1 -5
- package/rancher-components/LabeledTooltip/LabeledTooltip.vue +9 -4
- package/rancher-components/RcDropdown/RcDropdownItem.vue +1 -2
- package/rancher-components/RcDropdown/RcDropdownMenu.vue +7 -3
- package/rancher-components/RcDropdown/types.ts +1 -0
- package/scripts/clean +0 -0
- package/scripts/extension/bundle +20 -0
- package/scripts/extension/helm/charts/ui-plugin-server/templates/_helpers.tpl +2 -2
- package/scripts/extension/helm/charts/ui-plugin-server/templates/cr.yaml +2 -1
- package/scripts/extension/helm/charts/ui-plugin-server/values.yaml +2 -0
- package/scripts/extension/helm/scripts/package +0 -0
- package/scripts/extension/helm/scripts/patch +0 -0
- package/scripts/extension/helm/scripts/version +0 -0
- package/scripts/extension/helmpatch +44 -31
- package/scripts/extension/parse-tag-name +0 -0
- package/scripts/extension/publish +12 -12
- package/scripts/publish-shell.sh +18 -23
- package/scripts/serve-pkgs +0 -0
- package/scripts/sync-shell-deps +0 -0
- package/scripts/test-plugins-build.sh +4 -6
- package/scripts/typegen.sh +28 -46
- package/server/har-file.js +25 -3
- package/static/favicon.ico +0 -0
- package/static/favicon.png +0 -0
- package/static/loading-indicator.html +2 -2
- package/store/aws.js +9 -2
- package/store/features.js +2 -1
- package/store/i18n.js +3 -3
- package/store/modal.ts +71 -0
- package/store/slideInPanel.ts +47 -0
- package/store/type-map.js +2 -1
- package/types/cloud-shell/index.d.ts +11014 -0
- package/types/global-vue.d.ts +5 -0
- package/types/internal-api/shell/growl.d.ts +25 -0
- package/types/internal-api/shell/modal.d.ts +77 -0
- package/types/internal-api/shell/slideIn.d.ts +15 -0
- package/types/shell/index.d.ts +118 -128
- package/types/vue-shim.d.ts +4 -1
- package/utils/__tests__/object.test.ts +38 -4
- package/utils/__tests__/string.test.ts +2 -2
- package/utils/auth.js +1 -0
- package/utils/banners.js +0 -45
- package/utils/cluster.js +35 -0
- package/utils/color.js +9 -8
- package/utils/error.js +61 -3
- package/utils/errorTranslate.json +450 -30
- package/utils/object.js +46 -6
- package/utils/router.js +22 -1
- package/utils/select.js +26 -3
- package/utils/string.js +9 -8
- package/utils/title.ts +1 -1
- package/utils/validators/machine-pool.ts +20 -0
- package/vue.config.js +7 -2
- package/components/formatter/ExtensionCache.vue +0 -74
- package/components/formatter/Port.vue +0 -24
- package/components/formatter/SecretType.vue +0 -41
- package/types/resources/fleet.d.ts +0 -57
- package/types/resources/pod-security-admission.ts +0 -36
- package/types/resources/settings.d.ts +0 -93
- package/types/resources/userPreferences.d.ts +0 -13
- package/types/vue-shim.d +0 -20
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { mount } from '@vue/test-utils';
|
|
1
|
+
import { mount, shallowMount } from '@vue/test-utils';
|
|
2
2
|
import vmwarevsphere from '@shell/machine-config/vmwarevsphere.vue';
|
|
3
3
|
import { DEFAULT_VALUES, SENTINEL } from '@shell/machine-config/vmwarevsphere-config';
|
|
4
4
|
|
|
@@ -172,12 +172,12 @@ describe('component: vmwarevsphere', () => {
|
|
|
172
172
|
name: 'tag_name',
|
|
173
173
|
category: 'tag_category',
|
|
174
174
|
};
|
|
175
|
-
const
|
|
175
|
+
const expectedResult = [{
|
|
176
176
|
...tag, label: `${ tag.category } / ${ tag.name }`, value: tag.id
|
|
177
177
|
}];
|
|
178
178
|
const wrapper = mount(vmwarevsphere, defaultCreateSetup);
|
|
179
179
|
|
|
180
|
-
expect(wrapper.vm.mapTagsToContent([tag])).toStrictEqual(
|
|
180
|
+
expect(wrapper.vm.mapTagsToContent([tag])).toStrictEqual(expectedResult);
|
|
181
181
|
});
|
|
182
182
|
});
|
|
183
183
|
|
|
@@ -254,4 +254,49 @@ describe('component: vmwarevsphere', () => {
|
|
|
254
254
|
});
|
|
255
255
|
});
|
|
256
256
|
});
|
|
257
|
+
|
|
258
|
+
describe('syncNetworkValueForLegacyLabels', () => {
|
|
259
|
+
it('should update the current network value properly', () => {
|
|
260
|
+
const legacyName = 'legacy_name';
|
|
261
|
+
const legacyValue = 'legacy_value';
|
|
262
|
+
const networkLabel = 'network_label';
|
|
263
|
+
|
|
264
|
+
const wrapper = shallowMount(vmwarevsphere, {
|
|
265
|
+
...defaultEditSetup,
|
|
266
|
+
propsData: {
|
|
267
|
+
...defaultEditSetup.propsData,
|
|
268
|
+
value: {
|
|
269
|
+
...defaultEditSetup.propsData.value,
|
|
270
|
+
network: [legacyName]
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
computed: {
|
|
274
|
+
networks: () => [
|
|
275
|
+
{
|
|
276
|
+
name: legacyName, label: networkLabel, value: legacyValue
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
name: 'name1', label: 'label1', value: 'value1'
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
name: 'name2', label: 'label2', value: 'value2'
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
name: 'name3', label: 'label3', value: 'value3'
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
name: 'name4', label: 'label4', value: 'value4'
|
|
289
|
+
},
|
|
290
|
+
]
|
|
291
|
+
}
|
|
292
|
+
});
|
|
293
|
+
|
|
294
|
+
// check the current network before updating
|
|
295
|
+
expect(wrapper.vm.value.network).toStrictEqual([legacyName]);
|
|
296
|
+
|
|
297
|
+
wrapper.vm.syncNetworkValueForLegacyLabels();
|
|
298
|
+
|
|
299
|
+
expect(wrapper.vm.value.network).toStrictEqual([legacyValue]);
|
|
300
|
+
});
|
|
301
|
+
});
|
|
257
302
|
});
|
package/machine-config/azure.vue
CHANGED
|
@@ -602,7 +602,10 @@ export default {
|
|
|
602
602
|
/>
|
|
603
603
|
</div>
|
|
604
604
|
</div>
|
|
605
|
-
<hr
|
|
605
|
+
<hr
|
|
606
|
+
class="mt-20"
|
|
607
|
+
role="none"
|
|
608
|
+
>
|
|
606
609
|
<div class="row mt-20">
|
|
607
610
|
<div class="col span-6">
|
|
608
611
|
<LabeledInput
|
|
@@ -668,7 +671,10 @@ export default {
|
|
|
668
671
|
</div>
|
|
669
672
|
</div>
|
|
670
673
|
</div>
|
|
671
|
-
<hr
|
|
674
|
+
<hr
|
|
675
|
+
class="mt-20 mb-20"
|
|
676
|
+
role="none"
|
|
677
|
+
>
|
|
672
678
|
<h2>{{ t('cluster.machineConfig.azure.sections.purchasePlan') }}</h2>
|
|
673
679
|
<div class="row mt-20">
|
|
674
680
|
<div class="col span-6">
|
|
@@ -681,7 +687,10 @@ export default {
|
|
|
681
687
|
/>
|
|
682
688
|
</div>
|
|
683
689
|
</div>
|
|
684
|
-
<hr
|
|
690
|
+
<hr
|
|
691
|
+
class="mt-20"
|
|
692
|
+
role="none"
|
|
693
|
+
>
|
|
685
694
|
<h2>{{ t('cluster.machineConfig.azure.sections.network') }}</h2>
|
|
686
695
|
<div class="row mt-20 mb-20">
|
|
687
696
|
<div class="col span-6">
|
|
@@ -803,7 +812,10 @@ export default {
|
|
|
803
812
|
/>
|
|
804
813
|
</div>
|
|
805
814
|
</div>
|
|
806
|
-
<hr
|
|
815
|
+
<hr
|
|
816
|
+
class="mt-20 mb-20"
|
|
817
|
+
role="none"
|
|
818
|
+
>
|
|
807
819
|
<h2>{{ t('cluster.machineConfig.azure.sections.disks') }}</h2>
|
|
808
820
|
<div class="row mt-20 mb-20">
|
|
809
821
|
<div class="col span-6">
|
|
@@ -558,6 +558,7 @@ export default {
|
|
|
558
558
|
this.resetValueIfNecessary('network', content, options, true);
|
|
559
559
|
|
|
560
560
|
set(this, 'networksResults', content);
|
|
561
|
+
this.syncNetworkValueForLegacyLabels();
|
|
561
562
|
this.vappMode = this.getInitialVappMode(this.value);
|
|
562
563
|
},
|
|
563
564
|
|
|
@@ -669,6 +670,21 @@ export default {
|
|
|
669
670
|
}
|
|
670
671
|
},
|
|
671
672
|
|
|
673
|
+
// Network labels have been updated to include the MOID.
|
|
674
|
+
// To ensure previously selected networks remain consistent with this change,
|
|
675
|
+
// we update the current network value to allow correct selection from the network list.
|
|
676
|
+
syncNetworkValueForLegacyLabels() {
|
|
677
|
+
const currentNetwork = this.value.network[0];
|
|
678
|
+
|
|
679
|
+
if (this.mode !== _CREATE && currentNetwork) {
|
|
680
|
+
const networkMatch = this.networks.find((network) => currentNetwork === network.name && currentNetwork !== network.label);
|
|
681
|
+
|
|
682
|
+
if (networkMatch) {
|
|
683
|
+
this.value.network = [networkMatch.value];
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
},
|
|
687
|
+
|
|
672
688
|
mapPathOptionsToContent(pathOptions) {
|
|
673
689
|
return (pathOptions || []).map((pathOption) => {
|
|
674
690
|
return {
|
package/mixins/resource-fetch.js
CHANGED
|
@@ -3,6 +3,7 @@ import { COUNT, MANAGEMENT } from '@shell/config/types';
|
|
|
3
3
|
import { SETTING, DEFAULT_PERF_SETTING } from '@shell/config/settings';
|
|
4
4
|
import ResourceFetchNamespaced from '@shell/mixins/resource-fetch-namespaced';
|
|
5
5
|
import ResourceFetchApiPagination from '@shell/mixins/resource-fetch-api-pagination';
|
|
6
|
+
import { cloud2harvesterhci } from '@shell/utils/router'
|
|
6
7
|
|
|
7
8
|
// Number of pages to fetch when loading incrementally
|
|
8
9
|
const PAGES = 4;
|
|
@@ -34,7 +35,7 @@ export default {
|
|
|
34
35
|
// Normally owner components supply `resource` and `inStore` as part of their data, however these are needed here before parent data runs
|
|
35
36
|
// So set up both here
|
|
36
37
|
const params = { ...this.$route.params };
|
|
37
|
-
const resource = params.resource || this.schema?.id; // Resource can either be on a page showing single list, or a page of a resource showing a list of another resource
|
|
38
|
+
const resource = cloud2harvesterhci(params.resource) || this.schema?.id; // Resource can either be on a page showing single list, or a page of a resource showing a list of another resource
|
|
38
39
|
const inStore = this.$store.getters['currentStore'](resource);
|
|
39
40
|
|
|
40
41
|
return {
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import LogFlow from '@shell/models/logging.banzaicloud.io.flow';
|
|
2
|
+
|
|
3
|
+
describe('class LogFlow', () => {
|
|
4
|
+
it('prop "outputs" should take namespace in consideration when filtering logging v2 "outputs"', () => {
|
|
5
|
+
const logOutputs = [
|
|
6
|
+
{
|
|
7
|
+
apiVersion: 'logging.banzaicloud.io/v1beta1',
|
|
8
|
+
kind: 'Output',
|
|
9
|
+
metadata: {
|
|
10
|
+
creationTimestamp: '2025-03-17T10:51:55Z',
|
|
11
|
+
namespace: 'default',
|
|
12
|
+
name: 'output1',
|
|
13
|
+
uid: '927b4a2e-6be0-476f-9bdd-cf30c4a27d8b'
|
|
14
|
+
},
|
|
15
|
+
name: 'output1',
|
|
16
|
+
spec: { awsElasticsearch: { endpoint: {} } },
|
|
17
|
+
status: { active: false }
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
apiVersion: 'logging.banzaicloud.io/v1beta1',
|
|
21
|
+
kind: 'Output',
|
|
22
|
+
metadata: {
|
|
23
|
+
creationTimestamp: '2025-03-17T10:51:55Z',
|
|
24
|
+
namespace: 'cattle-fleet-system',
|
|
25
|
+
name: 'output2',
|
|
26
|
+
uid: '927b4a2e-6be0-476f-9bdd-cf30c4a27d8c'
|
|
27
|
+
},
|
|
28
|
+
name: 'output2',
|
|
29
|
+
spec: { awsElasticsearch: { endpoint: {} } },
|
|
30
|
+
status: { active: false }
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
apiVersion: 'logging.banzaicloud.io/v1beta1',
|
|
34
|
+
kind: 'Output',
|
|
35
|
+
metadata: {
|
|
36
|
+
creationTimestamp: '2025-03-17T10:51:55Z',
|
|
37
|
+
namespace: 'cattle-fleet-system',
|
|
38
|
+
name: 'output3',
|
|
39
|
+
uid: '927b4a2e-6be0-476f-9bdd-cf30c4a27d8d'
|
|
40
|
+
},
|
|
41
|
+
name: 'output3',
|
|
42
|
+
spec: { awsElasticsearch: { endpoint: {} } },
|
|
43
|
+
status: { active: false }
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
apiVersion: 'logging.banzaicloud.io/v1beta1',
|
|
47
|
+
kind: 'Output',
|
|
48
|
+
metadata: {
|
|
49
|
+
creationTimestamp: '2025-03-17T10:51:55Z',
|
|
50
|
+
namespace: 'kube-system',
|
|
51
|
+
name: 'output4',
|
|
52
|
+
uid: '927b4a2e-6be0-476f-9bdd-cf30c4a27d8e'
|
|
53
|
+
},
|
|
54
|
+
name: 'output4',
|
|
55
|
+
spec: { awsElasticsearch: { endpoint: {} } },
|
|
56
|
+
status: { active: false }
|
|
57
|
+
},
|
|
58
|
+
];
|
|
59
|
+
|
|
60
|
+
const logFlowData = {
|
|
61
|
+
apiVersion: 'logging.banzaicloud.io/v1beta1',
|
|
62
|
+
kind: 'Flow',
|
|
63
|
+
metadata: {
|
|
64
|
+
name: 'flow2',
|
|
65
|
+
creationTimestamp: '2025-03-17T10:53:02Z',
|
|
66
|
+
generation: 1,
|
|
67
|
+
namespace: 'cattle-fleet-system',
|
|
68
|
+
resourceVersion: '4070',
|
|
69
|
+
uid: 'fdf7d553-d101-4c37-91b0-784f95dc950a',
|
|
70
|
+
fields: [
|
|
71
|
+
'flow2', true, null
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
spec: {
|
|
75
|
+
localOutputRefs: [
|
|
76
|
+
'output2',
|
|
77
|
+
'output3'
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const logFlow = new LogFlow(logFlowData);
|
|
83
|
+
|
|
84
|
+
jest.spyOn(logFlow, 'allOutputs', 'get').mockReturnValue(logOutputs);
|
|
85
|
+
|
|
86
|
+
expect(logFlow.outputs).toStrictEqual([logOutputs[1], logOutputs[2]]);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
@@ -84,7 +84,31 @@ describe('class Namespace', () => {
|
|
|
84
84
|
});
|
|
85
85
|
|
|
86
86
|
it.todo('should return the project');
|
|
87
|
-
|
|
87
|
+
|
|
88
|
+
describe('handling groupById', () => {
|
|
89
|
+
it('should return the groupById if have project id', () => {
|
|
90
|
+
const namespace = new Namespace({});
|
|
91
|
+
|
|
92
|
+
jest.spyOn(namespace, 'project', 'get').mockReturnValue({
|
|
93
|
+
id: 'mock-project-id',
|
|
94
|
+
type: 'project',
|
|
95
|
+
name: 'mock-project',
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
expect(namespace.groupById).toStrictEqual('mock-project-id');
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
it('should return the groupById if project id undefined', () => {
|
|
102
|
+
const t = jest.fn(() => 'Not in a Project');
|
|
103
|
+
const ctx = { rootGetters: { 'i18n/t': t } };
|
|
104
|
+
const namespace = new Namespace({}, ctx);
|
|
105
|
+
|
|
106
|
+
jest.spyOn(namespace, 'project', 'get').mockReturnValue({});
|
|
107
|
+
|
|
108
|
+
expect(namespace.groupById).toStrictEqual('Not in a Project');
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
|
|
88
112
|
it.todo('should return the project name with i18n');
|
|
89
113
|
it.todo('should return the projectNameSort');
|
|
90
114
|
it.todo('should check if istioInstalled');
|
|
@@ -72,14 +72,17 @@ export default class KontainerDriver extends Driver {
|
|
|
72
72
|
return this.$dispatch('rancher/request', {
|
|
73
73
|
url: `v3/kontainerDrivers/${ escape(this.id) }?action=activate`,
|
|
74
74
|
method: 'post',
|
|
75
|
-
}, { root: true })
|
|
75
|
+
}, { root: true }).catch((err) => {
|
|
76
|
+
this.$dispatch('growl/fromError', { title: this.t('drivers.error.activate', { name: this.nameDisplay }), err }, { root: true });
|
|
77
|
+
});
|
|
76
78
|
}
|
|
77
79
|
|
|
78
80
|
async activateBulk(resources) {
|
|
79
81
|
await Promise.all(resources.map((resource) => this.$dispatch('rancher/request', {
|
|
80
82
|
url: `v3/kontainerDrivers/${ escape(resource.id) }?action=activate`,
|
|
81
83
|
method: 'post',
|
|
82
|
-
}, { root: true }
|
|
83
|
-
|
|
84
|
+
}, { root: true }).catch((err) => {
|
|
85
|
+
this.$dispatch('growl/fromError', { title: this.t('drivers.error.activate', { name: resource.nameDisplay }), err }, { root: true });
|
|
86
|
+
})));
|
|
84
87
|
}
|
|
85
88
|
}
|
|
@@ -64,7 +64,8 @@ export default class LogFlow extends SteveModel {
|
|
|
64
64
|
get outputs() {
|
|
65
65
|
const localOutputRefs = this.spec?.localOutputRefs || [];
|
|
66
66
|
|
|
67
|
-
return this.allOutputs.filter((output) => localOutputRefs.includes(output.name)
|
|
67
|
+
return this.allOutputs.filter((output) => localOutputRefs.includes(output.name) &&
|
|
68
|
+
output.metadata?.namespace === this.metadata?.namespace);
|
|
68
69
|
}
|
|
69
70
|
|
|
70
71
|
get outputsSortable() {
|
|
@@ -168,12 +168,12 @@ export default class MgmtNode extends HybridModel {
|
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
get canScaleDown() {
|
|
171
|
-
|
|
171
|
+
const hasAction = this.norman?.actions?.scaledown;
|
|
172
|
+
|
|
173
|
+
if (!this.isEtcd && !this.isControlPlane && hasAction) {
|
|
172
174
|
return true;
|
|
173
175
|
}
|
|
174
176
|
|
|
175
|
-
const hasAction = this.norman?.actions?.scaledown;
|
|
176
|
-
|
|
177
177
|
return hasAction && notOnlyOfRole(this, this.provisioningCluster?.nodes);
|
|
178
178
|
}
|
|
179
179
|
}
|
|
@@ -2,6 +2,7 @@ import { ALLOWED_SETTINGS } from '@shell/config/settings';
|
|
|
2
2
|
import HybridModel from '@shell/plugins/steve/hybrid-class';
|
|
3
3
|
import { isServerUrl } from '@shell/utils/validators/setting';
|
|
4
4
|
import { HARVESTER_NAME as HARVESTER } from '@shell/config/features';
|
|
5
|
+
import { harvester2cloud } from '@shell/utils/router'
|
|
5
6
|
import {
|
|
6
7
|
_EDIT,
|
|
7
8
|
_UNFLAG,
|
|
@@ -54,7 +55,7 @@ export default class Setting extends HybridModel {
|
|
|
54
55
|
goToEdit(moreQuery = {}) {
|
|
55
56
|
if (this.$rootGetters['currentProduct'].inStore === HARVESTER) {
|
|
56
57
|
location.name = `${ HARVESTER }-c-cluster-brand`;
|
|
57
|
-
location.params = { cluster: this.$rootGetters['currentCluster'].id, product: HARVESTER };
|
|
58
|
+
location.params = { cluster: this.$rootGetters['currentCluster'].id, product: harvester2cloud(HARVESTER) };
|
|
58
59
|
|
|
59
60
|
location.query = {
|
|
60
61
|
...location.query,
|
package/models/namespace.js
CHANGED
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
import { ISTIO, MANAGEMENT } from '@shell/config/types';
|
|
6
6
|
|
|
7
7
|
import { get, set } from '@shell/utils/object';
|
|
8
|
-
import { escapeHtml } from '@shell/utils/string';
|
|
9
8
|
import { insertAt, isArray } from '@shell/utils/array';
|
|
10
9
|
import SteveModel from '@shell/plugins/steve/steve-class';
|
|
11
10
|
import { HARVESTER_NAME as HARVESTER } from '@shell/config/features';
|
|
@@ -124,11 +123,11 @@ export default class Namespace extends SteveModel {
|
|
|
124
123
|
return project;
|
|
125
124
|
}
|
|
126
125
|
|
|
127
|
-
get
|
|
128
|
-
const
|
|
126
|
+
get groupById() {
|
|
127
|
+
const projectId = this.project?.id;
|
|
129
128
|
|
|
130
|
-
if (
|
|
131
|
-
return
|
|
129
|
+
if ( projectId ) {
|
|
130
|
+
return projectId;
|
|
132
131
|
} else {
|
|
133
132
|
return this.$rootGetters['i18n/t']('resourceTable.groupLabel.notInAProject');
|
|
134
133
|
}
|
package/models/nodedriver.js
CHANGED
|
@@ -80,14 +80,17 @@ export default class NodeDriver extends Driver {
|
|
|
80
80
|
return this.$dispatch('rancher/request', {
|
|
81
81
|
url: `v3/nodeDrivers/${ escape(this.id) }?action=activate`,
|
|
82
82
|
method: 'post',
|
|
83
|
-
}, { root: true })
|
|
83
|
+
}, { root: true }).catch((err) => {
|
|
84
|
+
this.$dispatch('growl/fromError', { title: this.t('drivers.error.activate', { name: this.nameDisplay }), err }, { root: true });
|
|
85
|
+
});
|
|
84
86
|
}
|
|
85
87
|
|
|
86
88
|
async activateBulk(resources) {
|
|
87
89
|
await Promise.all(resources.map((resource) => this.$dispatch('rancher/request', {
|
|
88
90
|
url: `v3/nodeDrivers/${ escape(resource.id) }?action=activate`,
|
|
89
91
|
method: 'post',
|
|
90
|
-
}, { root: true }
|
|
91
|
-
|
|
92
|
+
}, { root: true }).catch((err) => {
|
|
93
|
+
this.$dispatch('growl/fromError', { title: this.t('drivers.error.activate', { name: resource.nameDisplay }), err }, { root: true });
|
|
94
|
+
})));
|
|
92
95
|
}
|
|
93
96
|
}
|
|
@@ -141,14 +141,14 @@ export default class extends SteveModel {
|
|
|
141
141
|
out.unshift({
|
|
142
142
|
action: 'resetDefault',
|
|
143
143
|
enabled: true,
|
|
144
|
-
icon: 'icon icon-fw icon-checkmark',
|
|
144
|
+
// icon: 'icon icon-fw icon-checkmark',
|
|
145
145
|
label: this.t('storageClass.actions.resetDefault'),
|
|
146
146
|
});
|
|
147
147
|
} else {
|
|
148
148
|
out.unshift({
|
|
149
149
|
action: 'setDefault',
|
|
150
150
|
enabled: true,
|
|
151
|
-
icon: 'icon icon-fw icon-checkmark',
|
|
151
|
+
// icon: 'icon icon-fw icon-checkmark',
|
|
152
152
|
label: this.t('storageClass.actions.setAsDefault'),
|
|
153
153
|
});
|
|
154
154
|
}
|
package/models/workload.js
CHANGED
|
@@ -34,7 +34,10 @@ export default class Workload extends WorkloadService {
|
|
|
34
34
|
enabled: !!this.links.update,
|
|
35
35
|
});
|
|
36
36
|
|
|
37
|
-
if (type !== WORKLOAD_TYPES.JOB &&
|
|
37
|
+
if (type !== WORKLOAD_TYPES.JOB &&
|
|
38
|
+
type !== WORKLOAD_TYPES.CRON_JOB &&
|
|
39
|
+
type !== WORKLOAD_TYPES.REPLICA_SET
|
|
40
|
+
) {
|
|
38
41
|
insertAt(out, 0, {
|
|
39
42
|
action: 'toggleRollbackModal',
|
|
40
43
|
label: this.t('action.rollback'),
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dashboard-shell-shell",
|
|
3
|
+
"version": "1.0.1000000081",
|
|
3
4
|
"description": "Rancher Dashboard Shell",
|
|
4
5
|
"repository": "https://github.com/rancherlabs/dashboard",
|
|
5
6
|
"license": "Apache-2.0",
|
|
6
7
|
"author": "SUSE",
|
|
7
8
|
"private": false,
|
|
8
|
-
"version": "1.0.00000000122",
|
|
9
9
|
"engines": {
|
|
10
10
|
"node": ">=20.0.0"
|
|
11
11
|
},
|
package/pages/about.vue
CHANGED
|
@@ -119,8 +119,12 @@ export default {
|
|
|
119
119
|
<table>
|
|
120
120
|
<thead>
|
|
121
121
|
<tr>
|
|
122
|
-
<th
|
|
123
|
-
|
|
122
|
+
<th class="custom-th">
|
|
123
|
+
{{ t('about.versions.component') }}
|
|
124
|
+
</th>
|
|
125
|
+
<th class="custom-th">
|
|
126
|
+
{{ t('about.versions.version') }}
|
|
127
|
+
</th>
|
|
124
128
|
</tr>
|
|
125
129
|
</thead>
|
|
126
130
|
<tr v-if="rancherVersion">
|
|
@@ -210,11 +214,11 @@ export default {
|
|
|
210
214
|
v-for="(d, i) in downloadImageList"
|
|
211
215
|
:key="i"
|
|
212
216
|
>
|
|
213
|
-
<
|
|
217
|
+
<th>
|
|
214
218
|
<div class="os">
|
|
215
219
|
<i :class="`icon ${d.icon} mr-5`" /> {{ t(d.label) }}
|
|
216
220
|
</div>
|
|
217
|
-
</
|
|
221
|
+
</th>
|
|
218
222
|
<td>
|
|
219
223
|
<a
|
|
220
224
|
v-if="d.imageList"
|
|
@@ -241,11 +245,11 @@ export default {
|
|
|
241
245
|
:key="i"
|
|
242
246
|
class="link"
|
|
243
247
|
>
|
|
244
|
-
<
|
|
248
|
+
<th>
|
|
245
249
|
<div class="os">
|
|
246
250
|
<i :class="`icon ${d.icon} mr-5`" /> {{ t(d.label) }}
|
|
247
251
|
</div>
|
|
248
|
-
</
|
|
252
|
+
</th>
|
|
249
253
|
<td>
|
|
250
254
|
<a
|
|
251
255
|
v-if="d.cliLink"
|
|
@@ -273,7 +277,7 @@ export default {
|
|
|
273
277
|
overflow: hidden;
|
|
274
278
|
border-radius: var(--border-radius);
|
|
275
279
|
|
|
276
|
-
tr >
|
|
280
|
+
tr > th:first-of-type {
|
|
277
281
|
width: 20%;
|
|
278
282
|
}
|
|
279
283
|
|
|
@@ -284,11 +288,15 @@ export default {
|
|
|
284
288
|
text-align: left;
|
|
285
289
|
}
|
|
286
290
|
|
|
287
|
-
th {
|
|
291
|
+
th.custom-th {
|
|
288
292
|
background-color: var(--sortable-table-top-divider);
|
|
289
293
|
border-bottom: 1px solid var(--sortable-table-top-divider);
|
|
290
294
|
}
|
|
291
295
|
|
|
296
|
+
th:not(.custom-th) {
|
|
297
|
+
font-weight: normal;
|
|
298
|
+
}
|
|
299
|
+
|
|
292
300
|
a {
|
|
293
301
|
cursor: pointer;
|
|
294
302
|
}
|