apache / apache/cloudstack

Resource fetching missing projectid: "-1" parameter

Aberta Para iniciantes
#14,070 4 comentários 0 reações 0 responsáveis Ver no GitHub
bug component:projects component:UI
Linguagem predominante
Java
Estrelas
3.1k
Forks
1.4k
Merge médio
6d 19h
PRs com merge (30d)
32

Descrição

### 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
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 })
```

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Comece em ui/src/components/view/VolumesTab.vue, no método getVolumes e em sua chamada de API listVolumes. Verifique se a requisição inclui projectid: "-1", depois reproduza o cenário de project-scope listado e confirme que a aba Volumes da instância exibe seus volumes na visualização padrão.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
javascript
Domínio
frontend
Tipo de issue
Bug
Dificuldade
1/5
Tempo estimado
Menos de uma hora
Status de atividade
Ativa
Clareza
Claramente especificada
Facilidade para iniciantes
88/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.