Uploaded image for project: 'Satellite'
  1. Satellite
  2. SAT-17692

Can't query plugin CRs via GraphQL

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Normal Normal
    • None
    • 6.13.0
    • Compute Resources
    • 0
    • False
    • Hide

      None

      Show
      None
    • False
    • CLOSED
    • 400
    • Rocket
    • Moderate
    • None

      Description of problem:
      When trying to query a CR that was created from a plugin (like Azure or Google) via GraphQL, an error occurs.

      Version-Release number of selected component (if applicable):
      6.13.0, but should happen on any other too

      How reproducible:
      100%

      Steps to Reproduce:
      1. create an Azure (or in 6.13 Google) CR
      2. curl -X POST -H "Content-Type: application/json" -d '{"query": "

      { computeResource(id: \"MDE6Rm9yZW1hbkF6dXJlUm06OkF6dXJlUm0tMTI=\") \{id, provider\} }

      "}' -u admin:changeme https://$(hostname -f)/api/graphql (replace the ID with the right for your install

      Actual results:

      {"error":"An error occurred."}

      Expected results:

      {"data":"computeResource":"id":"MDE6Rm9yZW1hbkF6dXJlUm06OkF6dXJlUm0tMTI=","provider":"AzureRm"}

      }}

      Additional info:
      In production log, we see the following error:
      2023-05-09T06:43:41 [W|app|02510a9d] Action failed
      2023-05-09T06:43:41 [I|app|02510a9d] Backtrace for 'Action failed' error (Types::ProviderEnum::UnresolvedValueError): `ComputeResource.provider` returned `"AzureRm"` at `computeResource.provider`, but this isn't a valid value for `
      ProviderEnum`. Update the field or resolver to return one of `ProviderEnum`'s values instead.
      02510a9d | /usr/share/gems/gems/graphql-1.13.16/lib/graphql/schema/enum.rb:161:in `coerce_result'

      This is because app/graphql/types/provider_enum.rb uses `supported_providers` and not `all_providers` to obtain the list of providers.

      irb(main):001:0> ::ComputeResource.supported_providers.keys
      => ["Libvirt", "Ovirt", "EC2", "Vmware", "Openstack"]
      irb(main):002:0> ::ComputeResource.all_providers.keys
      => ["Libvirt", "Ovirt", "EC2", "Vmware", "Openstack", "AzureRm", "GCE"]

              egolov@redhat.com Evgeni Golov
              jira-bugzilla-migration RH Bugzilla Integration
              Shubham Ganar Shubham Ganar (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: