Add types and providers for Pulpcore RPM resources - #408
alexjfisher wants to merge 1 commit into
Conversation
Added types for managing RPM 'remotes', 'repositories' and 'distributions' resources using the `pulp` CLI. Providers are layered so the common logic can be shared and the CLI implementation swapped later, (with perhaps direct calls to the REST API, or the autogenerated ruby bindings??) * A grandparent provider holds the lifecycle/prefetch/flush mechanics, the property getter/setter macros, and the href->name lookup. * A per-resource parent maps the Pulp API hash to Puppet properties. * A CLI mixin shells out to `pulp` and parses its JSON responses. * A concrete `cli` provider wires them together. Coverage is intentionally partial, starting with the properties I needed today. Adding any additional properties should be fairly straightforward. Attribution: The type and provider implementation is my own work. The unit tests were largely drafted with help from ChatGPT. The code review and the resulting cleanup refactors were co-authored with Claude, (which also helped refine the tests). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
@ekohl Does this look ok to you? I purposefully made sure the type names didn't clash with the ones someone else had written here #375 (comment). Shame they didn't make theirs public, but it at least shows there might be an audience for such types and it's not just me! |
|
@ekohl Any chance of getting this in? |
|
@ehelms ? I'd love to get this into a release, (as well as some other module improvements I was working on but haven't submitted yet). |
|
As a lot of our focus is on |
The types are independent from the rest of the module, so shouldn't cause any existing users issues. I'm happy to continue to submit enhancements/fixes and review any PRs that might come in for them. Do you want me to add a section to the README? We could perhaps even mark them as 'experimental' types if you'd like. |
Yes please! |
Added types for managing RPM 'remotes', 'repositories' and 'distributions' resources using the
pulpCLI.Providers are layered so the common logic can be shared and the CLI implementation swapped later, (with perhaps direct calls to the REST API, or the autogenerated ruby bindings??)
pulpand parses its JSON responses.cliprovider wires them together.Coverage is intentionally partial, starting with the properties I needed today. Adding any additional properties should be fairly straightforward.
Attribution: The type and provider implementation is my own work. The unit tests were largely drafted with help from ChatGPT. The code review and the resulting cleanup refactors were co-authored with Claude, (which also helped refine the tests).