• Icon: Task Task
    • Resolution: Done
    • Icon: Undefined Undefined
    • 4.9.0
    • None
    • None
    • None
    • Future Sustainability
    • False
    • Hide

      None

      Show
      None
    • False
    • Rox Sprint 4.9E - Global, Rox Sprint 4.9F - Global

      Images graphQL resolver is implemented by central/graphql/resolvers/images.go. Some functions of imageResolver are also defined in central/graphql/resolvers/image_scan.go and central/graphql/resolvers/generated.go

      When flatten image data is enabled, we want the images graphQL to use the imageV2 datastore / loader to retrieve data while keeping interface the same.
      To do that, we can add an interface "ImageResolver" and have structs imageResolver and imageV2Resolver both implement that interface. 

      • Autogenerate imageV2Resolver. Update central/grapgql/resolvers/gen/main.go to add storage.ImageV2 and re-generate generated.go. Follow similar pattern as storage.Image
      • Add ImageV2 datastore to root Resolver
      • Update central/grapgql/resolvers/images.go as follows:
        • Add an ImageResolver interface similar to ImageVulnerabiityResolver in image_vulnerabilities.go
        • Add all funcs implemented by imageResolver to the interface. Some funcs will be in generated.go and image_scan.go.
        • Add ImageSHA func to the interface too. For imageResolver, ImageSHA is imageID. For imageV2Resolver, ImageSHA func should already be autogenerated
        • Image and Images functions on root resolver should return the new interface
        • Re-implement imageResolver functions in images.go and image_scan.go for imageV2Resolver

              rh-ee-aheflin AJ Heflin
              rh-ee-chsheth Charmik Sheth
              ACS Core Workflows
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: