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
- 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.
addPackagesneeds 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.