Resource fetching missing projectid: "-1" parameter

オープン 初心者向け
#14,070 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
1/5
見積もり時間
1時間未満
初心者へのやさしさ
88/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
javascript
領域
frontend

調査の方向性

ui/src/components/view/VolumesTab.vue の getVolumes メソッドと、その listVolumes API 呼び出しから開始します。リクエストに projectid: "-1" が含まれていることを確認し、続いて記載されている project-scope シナリオを再現して、インスタンスの Volumes タブにそのボリュームがデフォルトビューで表示されることを確認します。

索引モデルが issue の本文から書いたものです。

説明

bug component:projects component:UI
problem

When viewing a resource, for example an instance, that is currently in a project that differs from the currently selected or global project scope, it will attempt to fetch volumes yet none will return as it is only filtering on the ones that are owned by this user (not the project user).

Image
versions

The only relevant version is the UI and management server; replicated on 4.23.0.0. Also replicated this issue to the current HEAD of main.

The steps to reproduce the bug
  1. Create a project "test".
  2. Create (for example) and instance under that project "instance-01".
  3. (Optionally) add another volume to this instance.
  4. Make sure you have no project enabled at the top of the page ("Default view").
  5. Go to instances, turn on the project slider and select "instance-01" in the list.
  6. Browse to the Volumes tab and notice that this list is empty.
What to do about it?

Add the {projectid: "-1"} parameter to this API call. Unsure whether this happens to other resources (like NICs), I have not tested this.

diff --git a/ui/src/components/view/VolumesTab.vue b/ui/src/components/view/VolumesTab.vue
index b65933a643..e4679c02dc 100644
--- a/ui/src/components/view/VolumesTab.vue
+++ b/ui/src/components/view/VolumesTab.vue
@@ -141,7 +141,7 @@ export default {
       }
     },
     getVolumes () {
-      getAPI('listVolumes', { listall: true, listsystemvms: true, virtualmachineid: this.vm.id }).then(json => {
+      getAPI('listVolumes', { listall: true, listsystemvms: true, projectid: "-1", virtualmachineid: this.vm.id }).then(json => {
         this.volumes = json.listvolumesresponse.volume
         if (this.volumes) {
           this.volumes.sort((a, b) => { return a.deviceid - b.deviceid })
主要言語
Java
スター
3.1k
フォーク
1.4k
平均マージ
7日 5時間
マージ済み PR(30日)
28

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

apache/cloudstack のほかの issue

apache/cloudstack の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。