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.
All of my questions settled-thnaks!