apache / apache/cloudstack

Resource fetching missing projectid: "-1" parameter

Abierto Apto para principiantes
#14,070 4 comentarios 0 reacciones 0 asignados Ver en GitHub
bug component:projects component:UI
Lenguaje dominante
Java
Estrellas
3.1k
Forks
1.4k
Merge medio
6 d 19 h
PR fusionados (30 d)
32

Descripción

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

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza en ui/src/components/view/VolumesTab.vue, en el método getVolumes y su llamada a la API listVolumes. Verifica que la solicitud incluya projectid: "-1"; después, reproduce el escenario de project-scope indicado y confirma que la pestaña Volumes de la instancia muestre sus volúmenes en la vista predeterminada.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
javascript
Área
frontend
Tipo de issue
Error
Dificultad
1/5
Tiempo estimado
Menos de una hora
Estado de actividad
Activo
Claridad
Bien especificado
Aptitud para principiantes
88/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.