diff --git a/.github/workflows/run-lint.yaml b/.github/workflows/run-lint.yaml index 12df0252..7e8f7518 100644 --- a/.github/workflows/run-lint.yaml +++ b/.github/workflows/run-lint.yaml @@ -1,7 +1,7 @@ name: Tests on: - workflow_call: # This tells GH that the workflow is reusable + workflow_call: # This tells GH that the workflow is reusable push: branches: - main @@ -37,6 +37,12 @@ jobs: echo "GITHUB_BEFORE=$GITHUB_BEFORE" echo "GITHUB_AFTER=$GITHUB_AFTER" + # Check for new branch (all zeros SHA) + if [ "$GITHUB_BEFORE" = "0000000000000000000000000000000000000000" ]; then + echo "New branch detected, skipping commit message validation." + exit 0 + fi + if [ "$GITHUB_EVENT_NAME" = "pull_request" ] && [ -n "$GITHUB_BASE_SHA" ] && [ -n "$GITHUB_HEAD_SHA" ]; then FROM="$GITHUB_BASE_SHA" TO="$GITHUB_HEAD_SHA" diff --git a/package.json b/package.json index f04d3be0..770b6624 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,10 @@ "dependencies": { "@babel/plugin-transform-class-static-block": "7.28.3", "@rancher/shell": "3.0.5-rc.8", + "@vue-flow/background": "^1.3.0", + "@vue-flow/controls": "^1.1.1", + "@vue-flow/core": "^1.33.5", + "@vue-flow/minimap": "^1.4.0", "cache-loader": "^4.1.0", "color": "4.2.3", "ip": "2.0.1", diff --git a/pkg/harvester/detail/kubeovn.io.vpc.vue b/pkg/harvester/detail/kubeovn.io.vpc.vue new file mode 100644 index 00000000..cc3ed0f3 --- /dev/null +++ b/pkg/harvester/detail/kubeovn.io.vpc.vue @@ -0,0 +1,618 @@ + + + + + + + + {{ subnetCount }} subnet(s) + {{ vmCount }} vm(s) + + + + + + VPC + + + + Subnet + + + + VM + + + + + + + Loading topology... + + + + + No resources found in this VPC + + + + + + + + + + + diff --git a/pkg/harvester/l10n/en-us.yaml b/pkg/harvester/l10n/en-us.yaml index 4c634e36..ac95b400 100644 --- a/pkg/harvester/l10n/en-us.yaml +++ b/pkg/harvester/l10n/en-us.yaml @@ -1056,6 +1056,7 @@ harvester: tooltip: The IP address list to reserve from automatic assignment. The gateway IP address is always excluded and will be automatically added to the list. vpc: + viewTopology: Topology noAddonEnabled: prefix: The kubeovn-operator add-on is not enabled, click middle: here diff --git a/pkg/harvester/list/kubeovn.io.vpc.vue b/pkg/harvester/list/kubeovn.io.vpc.vue index c63b72bb..363f4fd0 100644 --- a/pkg/harvester/list/kubeovn.io.vpc.vue +++ b/pkg/harvester/list/kubeovn.io.vpc.vue @@ -155,6 +155,15 @@ export default { return location; }, + viewTopology(group) { + const vpc = group.key; + const resource = this.$store.getters[`harvester/byId`](HCI.VPC, vpc); + + if (resource && resource.goToDetail) { + resource.goToDetail(); + } + }, + showVpcAction(event, group) { const vpc = group.key; @@ -218,6 +227,14 @@ export default { > {{ t('harvester.vpc.createSubnet') }} + + + {{ t('harvester.vpc.viewTopology') }} + =0.14.8" + +"@vueuse/metadata@10.11.1": + version "10.11.1" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.11.1.tgz#209db7bb5915aa172a87510b6de2ca01cadbd2a7" + integrity sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw== + +"@vueuse/shared@10.11.1": + version "10.11.1" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.11.1.tgz#62b84e3118ae6e1f3ff38f4fbe71b0c5d0f10938" + integrity sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA== + dependencies: + vue-demi ">=0.14.8" + "@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": version "1.12.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" @@ -5799,7 +5855,7 @@ d3-delaunay@6: resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== -"d3-drag@2 - 3", d3-drag@3: +"d3-drag@2 - 3", d3-drag@3, d3-drag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== @@ -5854,7 +5910,7 @@ d3-hierarchy@3: resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== -"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3, d3-interpolate@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== @@ -5900,7 +5956,7 @@ d3-scale@4: d3-time "2.1.1 - 3" d3-time-format "2 - 4" -"d3-selection@2 - 3", d3-selection@3, d3-selection@3.0.0: +"d3-selection@2 - 3", d3-selection@3, d3-selection@3.0.0, d3-selection@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== @@ -5942,7 +5998,7 @@ d3-shape@3: d3-interpolate "1 - 3" d3-timer "1 - 3" -d3-zoom@3: +d3-zoom@3, d3-zoom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== @@ -12797,6 +12853,11 @@ vue-component-type-helpers@^2.0.0: resolved "https://registry.yarnpkg.com/vue-component-type-helpers/-/vue-component-type-helpers-2.2.0.tgz#de5fa802b6beae7125595ec0d3d5195a22691623" integrity sha512-cYrAnv2me7bPDcg9kIcGwjJiSB6Qyi08+jLDo9yuvoFQjzHiPTzML7RnkJB1+3P6KMsX/KbCD4QE3Tv/knEllw== +vue-demi@>=0.14.8: + version "0.14.10" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04" + integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== + vue-draggable-next@^2.2.1: version "2.3.0" resolved "https://registry.yarnpkg.com/vue-draggable-next/-/vue-draggable-next-2.3.0.tgz#ba83154f60b8a3c24059c18b8060b72200a4c673"
No resources found in this VPC