The Red Hat Satellite XMLRPC Series: reproducing a channel

In this post I’ll describe what I did to reproduce content in another Satellite, much alike satellite-sync. The most important lesson is the method you use to recreate the channel. When you’re recreating a Red Hat channel, like the Red Hat Enterprise Linux base channel and Red Hat Network Tools,  you’ll have to use channel.software.clone(). It is not possible to clone errata to the newly created channel when you use channel.software.create() to create the channel.

So, here it is: a recipe for channel reproduction:

  • Read the channel details from the originating Satellite: errata, packages, channel details, etc.
  • Clone the channel into the target Satellite. Make sure to clone the original state.
  • Sort errata by date and clone them to the newly created channel.
  • Get the list of packages from the newly created channel. Use this list to see which packages are not in your target Satellite, but were in your source channel.
  • Link missing packages through channel.software.addPackages() to the newly created channel. addPackages needs a package-id, which is unique for the Satellite installation you’re reproducing the channel in.

Consider an implementation of the command pattern for creation and rollback.

Suggestions or additions? Drop me a line.

One thought on “The Red Hat Satellite XMLRPC Series: reproducing a channel”

Leave a Reply

Your email address will not be published. Required fields are marked *