PowerStore : « Impossible d’analyser l’URL transmise » pour les demandes REST GET avec « select » où le paramètre imbriqué est spécifié

Summary: La réponse est « Impossible d’analyser l’URL transmise » pour certaines demandes REST GET avec « select » où le paramètre imbriqué est spécifié.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Certaines demandes REST GET complexes échouent avec une erreur. Une telle demande nécessite une référence en amont avec une auto-référence au sein d’une seule demande.

Exemple :
/api/rest/appliance ?select=eth_ports(partner)

Error code :
0xE04040020008 avec le message « Impossible d’analyser l’URL transmise ».

Note: Si vous recevez ce message d’erreur lors de l’exécution d’un bilan de santé préalable à la mise à niveau (PUHC), reportez-vous à PowerStore : Les bilans de santé du système détectent un manque d’espace dans /cyc_node. Il s’agit d’une autre question.

Cause

Cela est dû à un problème postgREST qui génère des requêtes non valides.

Resolution

Au lieu d’imbriquer des paramètres dans une demande, envoyez plusieurs demandes pour obtenir les informations requises.

Voici quelques-unes des demandes GET affectées avec un paramètre imbriqué qui ne fonctionnent pas dans REST. Deux demandes distinctes doivent être effectuées. 
  • GET      /api/rest/appliance?select=eth_ports(partner)
  • GET      /api/rest/appliance?select=virtual_volumes(target_virtual_volumes)
  • GET      /api/rest/appliance?select=virtual_volumes(source)
  • GET      /api/rest/appliance?select=virtual_volumes(parent)
  • GET      /api/rest/appliance?select=virtual_volumes(child_virtual_volumes)
  • GET      /api/rest/appliance?select=hardware(children)
  • GET      /api/rest/appliance?select=hardware(parent)
  • GET      /api/rest/appliance?select=fc_ports(partner)
  • GET      /api/rest/appliance?select=sas_ports(partner)
  • GET      /api/rest/appliance?select=eth_ports(partner)

Exemple:
Plutôt que :
/api/rest/appliance?select=eth_ports(partner)

Exemple d’échec lié à un paramètre imbriqué :
Linux~$ curl -i -k -s -u 'admin:' -X GET "https:///api/rest/appliance?select=eth_ports(partner)"
HTTP/1.1 400 Bad Request
DELL-EMC-TOKEN: 8t7deLGkLuG8g+Hg2uzMw6B4p2KhQ5bay3qW05tPVMs=
Content-Type: application/json
content-length: 104

{"messages":[{"code":"0xE04040020008","severity":"Error","message_l10n":"Unable to parse passed url."}]}

Envoyer :
/api/rest/appliance ?select=eth_ports
/api/rest/eth_port ?select=partner
 

Affected Products

PowerStore
Article Properties
Article Number: 000131120
Article Type: Solution
Last Modified: 07 Jun 2023
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.