diff --git a/Makefile b/Makefile index 1365b612c..f0d099378 100644 --- a/Makefile +++ b/Makefile @@ -15,6 +15,8 @@ install: cp osbuild-composer /usr/libexec/osbuild-composer/ cp osbuild-worker /usr/libexec/osbuild-composer/ cp dnf-json /usr/libexec/osbuild-composer/ + - mkdir -p /usr/share/osbuild-composer/repositories + cp repositories/* /usr/share/osbuild-composer/repositories - mkdir -p /etc/sysusers.d/ cp distribution/osbuild-composer.conf /etc/sysusers.d/ systemd-sysusers osbuild-composer.conf diff --git a/cmd/osbuild-composer/main.go b/cmd/osbuild-composer/main.go index 60ed967ec..cbeda673b 100644 --- a/cmd/osbuild-composer/main.go +++ b/cmd/osbuild-composer/main.go @@ -49,7 +49,7 @@ func main() { jobListener := listeners[1] rpm := rpmmd.NewRPMMD() - distros := distro.NewRegistry() + distros := distro.NewRegistry([]string{"/etc/osbuild-composer", "/usr/share/osbuild-composer"}) distribution, err := distros.FromHost() if err != nil { diff --git a/cmd/osbuild-pipeline/main.go b/cmd/osbuild-pipeline/main.go index f978dd124..a5d0191da 100644 --- a/cmd/osbuild-pipeline/main.go +++ b/cmd/osbuild-pipeline/main.go @@ -34,7 +34,7 @@ func main() { } } - distros := distro.NewRegistry() + distros := distro.NewRegistry([]string{"/etc/osbuild-composer", "/usr/share/osbuild-composer"}) d := distros.GetDistro(distroArg) if d == nil { panic("unknown distro: " + distroArg) diff --git a/golang-github-osbuild-composer.spec b/golang-github-osbuild-composer.spec index 27cc43217..b6a59270b 100644 --- a/golang-github-osbuild-composer.spec +++ b/golang-github-osbuild-composer.spec @@ -70,6 +70,9 @@ install -m 0755 -vd %{buildroot}%{_libex install -m 0755 -vp _bin/* %{buildroot}%{_libexecdir}/osbuild-composer/ install -m 0755 -vp dnf-json %{buildroot}%{_libexecdir}/osbuild-composer/ +install -m 0755 -vd %{buildroot}%{_datadir}/osbuild-composer/repositories +install -m 0644 -vp repositories/* %{buildroot}%{_datadir}/osbuild-composer/repositories/ + install -m 0755 -vd %{buildroot}%{_unitdir} install -m 0644 -vp distribution/*.{service,socket} %{buildroot}%{_unitdir}/ @@ -100,6 +103,7 @@ export GOPATH=$PWD/_build:%{gopath} %license LICENSE %doc README.md %{_libexecdir}/osbuild-composer/ +%{_datadir}/osbuild-composer/ %{_unitdir}/*.{service,socket} %{_sysusersdir}/osbuild-composer.conf diff --git a/internal/distro/distro.go b/internal/distro/distro.go index d1c1c88bc..d68541cdd 100644 --- a/internal/distro/distro.go +++ b/internal/distro/distro.go @@ -44,12 +44,12 @@ type Registry struct { distros map[string]Distro } -func NewRegistry() *Registry { +func NewRegistry(confPaths []string) *Registry { distros := &Registry{ distros: make(map[string]Distro), } - distros.register(fedora30.New()) - distros.register(rhel82.New()) + distros.register(fedora30.New(confPaths)) + distros.register(rhel82.New(confPaths)) return distros } diff --git a/internal/distro/distro_test.go b/internal/distro/distro_test.go index 28aeaafa9..57deef2b6 100644 --- a/internal/distro/distro_test.go +++ b/internal/distro/distro_test.go @@ -42,7 +42,7 @@ func TestDistro_Pipeline(t *testing.T) { continue } t.Run(tt.Compose.OutputFormat, func(t *testing.T) { - distros := distro.NewRegistry() + distros := distro.NewRegistry([]string{"../.."}) d := distros.GetDistro(tt.Compose.Distro) if d == nil { t.Errorf("unknown distro: %v", tt.Compose.Distro) diff --git a/internal/distro/fedora30/distro.go b/internal/distro/fedora30/distro.go index 822c02fac..99c990795 100644 --- a/internal/distro/fedora30/distro.go +++ b/internal/distro/fedora30/distro.go @@ -2,6 +2,7 @@ package fedora30 import ( "errors" + "log" "sort" "strconv" @@ -23,6 +24,7 @@ type arch struct { BootloaderPackages []string BuildPackages []string UEFI bool + Repositories []rpmmd.RepoConfig } type output struct { @@ -39,32 +41,50 @@ type output struct { const Name = "fedora-30" -func New() *Fedora30 { +func New(confPaths []string) *Fedora30 { r := Fedora30{ arches: map[string]arch{}, outputs: map[string]output{}, } - r.arches["x86_64"] = arch{ - Name: "x86_64", - BootloaderPackages: []string{ - "grub2-pc", - }, - BuildPackages: []string{ - "grub2-pc", - }, + repoMap, err := rpmmd.LoadRepositories(confPaths, Name) + if err != nil { + log.Printf("Could not load repository data for %s: %s", Name, err.Error()) + return nil } - r.arches["aarch64"] = arch{ - Name: "aarch64", - BootloaderPackages: []string{ - "dracut-config-generic", - "efibootmgr", - "grub2-efi-aa64", - "grub2-tools", - "shim-aa64", - }, - UEFI: true, + repos, exists := repoMap["x86_64"] + if !exists { + log.Printf("Could not load architecture-specific repository data for x86_64 (%s): %s", Name, err.Error()) + } else { + r.arches["x86_64"] = arch{ + Name: "x86_64", + BootloaderPackages: []string{ + "grub2-pc", + }, + BuildPackages: []string{ + "grub2-pc", + }, + Repositories: repos, + } + } + + repos, exists = repoMap["aarch64"] + if !exists { + log.Printf("Could not load architecture-specific repository data for x86_64 (%s): %s", Name, err.Error()) + } else { + r.arches["aarch64"] = arch{ + Name: "aarch64", + BootloaderPackages: []string{ + "dracut-config-generic", + "efibootmgr", + "grub2-efi-aa64", + "grub2-tools", + "shim-aa64", + }, + UEFI: true, + Repositories: repos, + } } r.outputs["ami"] = output{ @@ -259,42 +279,7 @@ func (r *Fedora30) Name() string { } func (r *Fedora30) Repositories(arch string) []rpmmd.RepoConfig { - return []rpmmd.RepoConfig{ - { - Id: "fedora", - Name: "Fedora 30", - Metalink: "https://mirrors.fedoraproject.org/metalink?repo=fedora-30&arch=" + arch, - GPGKey: `-----BEGIN PGP PUBLIC KEY BLOCK----- - -mQINBFturGcBEACv0xBo91V2n0uEC2vh69ywCiSyvUgN/AQH8EZpCVtM7NyjKgKm -bbY4G3R0M3ir1xXmvUDvK0493/qOiFrjkplvzXFTGpPTi0ypqGgxc5d0ohRA1M75 -L+0AIlXoOgHQ358/c4uO8X0JAA1NYxCkAW1KSJgFJ3RjukrfqSHWthS1d4o8fhHy -KJKEnirE5hHqB50dafXrBfgZdaOs3C6ppRIePFe2o4vUEapMTCHFw0woQR8Ah4/R -n7Z9G9Ln+0Cinmy0nbIDiZJ+pgLAXCOWBfDUzcOjDGKvcpoZharA07c0q1/5ojzO -4F0Fh4g/BUmtrASwHfcIbjHyCSr1j/3Iz883iy07gJY5Yhiuaqmp0o0f9fgHkG53 -2xCU1owmACqaIBNQMukvXRDtB2GJMuKa/asTZDP6R5re+iXs7+s9ohcRRAKGyAyc -YKIQKcaA+6M8T7/G+TPHZX6HJWqJJiYB+EC2ERblpvq9TPlLguEWcmvjbVc31nyq -SDoO3ncFWKFmVsbQPTbP+pKUmlLfJwtb5XqxNR5GEXSwVv4I7IqBmJz1MmRafnBZ -g0FJUtH668GnldO20XbnSVBr820F5SISMXVwCXDXEvGwwiB8Lt8PvqzXnGIFDAu3 -DlQI5sxSqpPVWSyw08ppKT2Tpmy8adiBotLfaCFl2VTHwOae48X2dMPBvQARAQAB -tDFGZWRvcmEgKDMwKSA8ZmVkb3JhLTMwLXByaW1hcnlAZmVkb3JhcHJvamVjdC5v -cmc+iQI4BBMBAgAiBQJbbqxnAhsPBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAK -CRDvPBEfz8ZZudTnD/9170LL3nyTVUCFmBjT9wZ4gYnpwtKVPa/pKnxbbS+Bmmac -g9TrT9pZbqOHrNJLiZ3Zx1Hp+8uxr3Lo6kbYwImLhkOEDrf4aP17HfQ6VYFbQZI8 -f79OFxWJ7si9+3gfzeh9UYFEqOQfzIjLWFyfnas0OnV/P+RMQ1Zr+vPRqO7AR2va -N9wg+Xl7157dhXPCGYnGMNSoxCbpRs0JNlzvJMuAea5nTTznRaJZtK/xKsqLn51D -K07k9MHVFXakOH8QtMCUglbwfTfIpO5YRq5imxlWbqsYWVQy1WGJFyW6hWC0+RcJ -Ox5zGtOfi4/dN+xJ+ibnbyvy/il7Qm+vyFhCYqIPyS5m2UVJUuao3eApE38k78/o -8aQOTnFQZ+U1Sw+6woFTxjqRQBXlQm2+7Bt3bqGATg4sXXWPbmwdL87Ic+mxn/ml -SMfQux/5k6iAu1kQhwkO2YJn9eII6HIPkW+2m5N1JsUyJQe4cbtZE5Yh3TRA0dm7 -+zoBRfCXkOW4krchbgww/ptVmzMMP7GINJdROrJnsGl5FVeid9qHzV7aZycWSma7 -CxBYB1J8HCbty5NjtD6XMYRrMLxXugvX6Q4NPPH+2NKjzX4SIDejS6JjgrP3KA3O -pMuo7ZHMfveBngv8yP+ZD/1sS6l+dfExvdaJdOdgFCnp4p3gPbw5+Lv70HrMjA== -=BfZ/ ------END PGP PUBLIC KEY BLOCK----- -`, - }, - } + return r.arches[arch].Repositories } func (r *Fedora30) ListOutputFormats() []string { @@ -420,7 +405,7 @@ func (r *Fedora30) dnfStageOptions(arch arch, additionalRepos []rpmmd.RepoConfig ModulePlatformId: "platform:f30", } - for _, repo := range append(r.Repositories(arch.Name), additionalRepos...) { + for _, repo := range append(arch.Repositories, additionalRepos...) { options.AddRepository(&pipeline.DNFRepository{ BaseURL: repo.BaseURL, MetaLink: repo.Metalink, diff --git a/internal/distro/fedora30/distro_test.go b/internal/distro/fedora30/distro_test.go index ed3e861e3..1e6e69975 100644 --- a/internal/distro/fedora30/distro_test.go +++ b/internal/distro/fedora30/distro_test.go @@ -19,7 +19,7 @@ func TestListOutputFormats(t *testing.T) { "vmdk", } - distros := distro.NewRegistry() + distros := distro.NewRegistry([]string{"../../../"}) f30 := distros.GetDistro("fedora-30") if got := f30.ListOutputFormats(); !reflect.DeepEqual(got, want) { t.Errorf("ListOutputFormats() = %v, want %v", got, want) @@ -93,7 +93,7 @@ func TestFilenameFromType(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - distros := distro.NewRegistry() + distros := distro.NewRegistry([]string{"../../../"}) f30 := distros.GetDistro("fedora-30") got, got1, err := f30.FilenameFromType(tt.args.outputFormat) if (err != nil) != tt.wantErr { diff --git a/internal/distro/rhel82/distro.go b/internal/distro/rhel82/distro.go index 80b3c3795..8845b3722 100644 --- a/internal/distro/rhel82/distro.go +++ b/internal/distro/rhel82/distro.go @@ -2,6 +2,7 @@ package rhel82 import ( "errors" + "log" "sort" "strconv" @@ -23,6 +24,7 @@ type arch struct { BootloaderPackages []string BuildPackages []string UEFI bool + Repositories []rpmmd.RepoConfig } type output struct { @@ -40,7 +42,7 @@ type output struct { const Name = "rhel-8.2" -func New() *RHEL82 { +func New(confPaths []string) *RHEL82 { const GigaByte = 1024 * 1024 * 1024 r := RHEL82{ @@ -48,26 +50,44 @@ func New() *RHEL82 { outputs: map[string]output{}, } - r.arches["x86_64"] = arch{ - Name: "x86_64", - BootloaderPackages: []string{ - "grub2-pc", - }, - BuildPackages: []string{ - "grub2-pc", - }, + repoMap, err := rpmmd.LoadRepositories(confPaths, Name) + if err != nil { + log.Printf("Could not load repository data for %s: %s", Name, err.Error()) + return nil } - r.arches["aarch64"] = arch{ - Name: "aarch64", - BootloaderPackages: []string{ - "dracut-config-generic", - "efibootmgr", - "grub2-efi-aa64", - "grub2-tools", - "shim-aa64", - }, - UEFI: true, + repos, exists := repoMap["x86_64"] + if !exists { + log.Printf("Could not load architecture-specific repository data for x86_64 (%s): %s", Name, err.Error()) + } else { + r.arches["x86_64"] = arch{ + Name: "x86_64", + BootloaderPackages: []string{ + "grub2-pc", + }, + BuildPackages: []string{ + "grub2-pc", + }, + Repositories: repos, + } + } + + repos, exists = repoMap["aarch64"] + if !exists { + log.Printf("Could not load architecture-specific repository data for aarch64 (%s): %s", Name, err.Error()) + } else { + r.arches["aarch64"] = arch{ + Name: "aarch64", + BootloaderPackages: []string{ + "dracut-config-generic", + "efibootmgr", + "grub2-efi-aa64", + "grub2-tools", + "shim-aa64", + }, + UEFI: true, + Repositories: repos, + } } r.outputs["ami"] = output{ @@ -399,18 +419,7 @@ func (r *RHEL82) Name() string { } func (r *RHEL82) Repositories(arch string) []rpmmd.RepoConfig { - return []rpmmd.RepoConfig{ - { - Id: "baseos", - Name: "BaseOS", - BaseURL: "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/" + arch + "/os", - }, - { - Id: "appstream", - Name: "AppStream", - BaseURL: "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/" + arch + "/os", - }, - } + return r.arches[arch].Repositories } func (r *RHEL82) ListOutputFormats() []string { @@ -544,7 +553,7 @@ func (r *RHEL82) dnfStageOptions(arch arch, additionalRepos []rpmmd.RepoConfig, BaseArchitecture: arch.Name, ModulePlatformId: "platform:el8", } - for _, repo := range append(r.Repositories(arch.Name), additionalRepos...) { + for _, repo := range append(arch.Repositories, additionalRepos...) { options.AddRepository(&pipeline.DNFRepository{ BaseURL: repo.BaseURL, MetaLink: repo.Metalink, diff --git a/internal/distro/rhel82/distro_test.go b/internal/distro/rhel82/distro_test.go index f9f171e63..3dea1259c 100644 --- a/internal/distro/rhel82/distro_test.go +++ b/internal/distro/rhel82/distro_test.go @@ -19,7 +19,7 @@ func TestListOutputFormats(t *testing.T) { "vmdk", } - distros := distro.NewRegistry() + distros := distro.NewRegistry([]string{"../../../"}) rhel82 := distros.GetDistro("rhel-8.2") if got := rhel82.ListOutputFormats(); !reflect.DeepEqual(got, want) { t.Errorf("ListOutputFormats() = %v, want %v", got, want) @@ -93,7 +93,7 @@ func TestFilenameFromType(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - distros := distro.NewRegistry() + distros := distro.NewRegistry([]string{"../../../"}) rhel82 := distros.GetDistro("rhel-8.2") got, got1, err := rhel82.FilenameFromType(tt.args.outputFormat) if (err != nil) != tt.wantErr { diff --git a/internal/jobqueue/job.go b/internal/jobqueue/job.go index e33ab88a7..598b85e2a 100644 --- a/internal/jobqueue/job.go +++ b/internal/jobqueue/job.go @@ -30,7 +30,7 @@ type JobStatus struct { } func (job *Job) Run() (*store.Image, error, []error) { - distros := distro.NewRegistry() + distros := distro.NewRegistry([]string{"/etc/osbuild-composer", "/usr/share/osbuild-composer"}) d := distros.GetDistro(job.Distro) if d == nil { return nil, fmt.Errorf("unknown distro: %s", job.Distro), nil diff --git a/internal/rpmmd/repository.go b/internal/rpmmd/repository.go index f976f238f..04f747666 100644 --- a/internal/rpmmd/repository.go +++ b/internal/rpmmd/repository.go @@ -106,6 +106,31 @@ func (err *DNFError) Error() string { return fmt.Sprintf("DNF error occured: %s: %s", err.Kind, err.Reason) } +func LoadRepositories(confPaths []string, distro string) (map[string][]RepoConfig, error) { + var f *os.File + var err error + path := "/repositories/" + distro + ".json" + + for _, confPath := range confPaths { + f, err = os.Open(confPath + path) + if err == nil { + break + } else if !os.IsNotExist(err) { + return nil, err + } + } + defer f.Close() + + var repos map[string][]RepoConfig + + err = json.NewDecoder(f).Decode(&repos) + if err != nil { + return nil, err + } + + return repos, nil +} + func runDNF(command string, arguments interface{}, result interface{}) error { var call = struct { Command string `json:"command"` diff --git a/repositories/fedora-30.json b/repositories/fedora-30.json new file mode 100644 index 000000000..69fe0c242 --- /dev/null +++ b/repositories/fedora-30.json @@ -0,0 +1,18 @@ +{ + "x86_64": [ + { + "id": "fedora", + "name": "Fedora 30", + "metalink": "https://mirrors.fedoraproject.org/metalink?repo=fedora-30&arch=x86_64", + "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBFturGcBEACv0xBo91V2n0uEC2vh69ywCiSyvUgN/AQH8EZpCVtM7NyjKgKm\nbbY4G3R0M3ir1xXmvUDvK0493/qOiFrjkplvzXFTGpPTi0ypqGgxc5d0ohRA1M75\nL+0AIlXoOgHQ358/c4uO8X0JAA1NYxCkAW1KSJgFJ3RjukrfqSHWthS1d4o8fhHy\nKJKEnirE5hHqB50dafXrBfgZdaOs3C6ppRIePFe2o4vUEapMTCHFw0woQR8Ah4/R\nn7Z9G9Ln+0Cinmy0nbIDiZJ+pgLAXCOWBfDUzcOjDGKvcpoZharA07c0q1/5ojzO\n4F0Fh4g/BUmtrASwHfcIbjHyCSr1j/3Iz883iy07gJY5Yhiuaqmp0o0f9fgHkG53\n2xCU1owmACqaIBNQMukvXRDtB2GJMuKa/asTZDP6R5re+iXs7+s9ohcRRAKGyAyc\nYKIQKcaA+6M8T7/G+TPHZX6HJWqJJiYB+EC2ERblpvq9TPlLguEWcmvjbVc31nyq\nSDoO3ncFWKFmVsbQPTbP+pKUmlLfJwtb5XqxNR5GEXSwVv4I7IqBmJz1MmRafnBZ\ng0FJUtH668GnldO20XbnSVBr820F5SISMXVwCXDXEvGwwiB8Lt8PvqzXnGIFDAu3\nDlQI5sxSqpPVWSyw08ppKT2Tpmy8adiBotLfaCFl2VTHwOae48X2dMPBvQARAQAB\ntDFGZWRvcmEgKDMwKSA8ZmVkb3JhLTMwLXByaW1hcnlAZmVkb3JhcHJvamVjdC5v\ncmc+iQI4BBMBAgAiBQJbbqxnAhsPBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAK\nCRDvPBEfz8ZZudTnD/9170LL3nyTVUCFmBjT9wZ4gYnpwtKVPa/pKnxbbS+Bmmac\ng9TrT9pZbqOHrNJLiZ3Zx1Hp+8uxr3Lo6kbYwImLhkOEDrf4aP17HfQ6VYFbQZI8\nf79OFxWJ7si9+3gfzeh9UYFEqOQfzIjLWFyfnas0OnV/P+RMQ1Zr+vPRqO7AR2va\nN9wg+Xl7157dhXPCGYnGMNSoxCbpRs0JNlzvJMuAea5nTTznRaJZtK/xKsqLn51D\nK07k9MHVFXakOH8QtMCUglbwfTfIpO5YRq5imxlWbqsYWVQy1WGJFyW6hWC0+RcJ\nOx5zGtOfi4/dN+xJ+ibnbyvy/il7Qm+vyFhCYqIPyS5m2UVJUuao3eApE38k78/o\n8aQOTnFQZ+U1Sw+6woFTxjqRQBXlQm2+7Bt3bqGATg4sXXWPbmwdL87Ic+mxn/ml\nSMfQux/5k6iAu1kQhwkO2YJn9eII6HIPkW+2m5N1JsUyJQe4cbtZE5Yh3TRA0dm7\n+zoBRfCXkOW4krchbgww/ptVmzMMP7GINJdROrJnsGl5FVeid9qHzV7aZycWSma7\nCxBYB1J8HCbty5NjtD6XMYRrMLxXugvX6Q4NPPH+2NKjzX4SIDejS6JjgrP3KA3O\npMuo7ZHMfveBngv8yP+ZD/1sS6l+dfExvdaJdOdgFCnp4p3gPbw5+Lv70HrMjA==\n=BfZ/\n-----END PGP PUBLIC KEY BLOCK-----\n" + } + ], + "aarch64": [ + { + "id": "fedora", + "name": "Fedora 30", + "metalink": "https://mirrors.fedoraproject.org/metalink?repo=fedora-30&arch=aarch64", + "gpgkey": "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBFturGcBEACv0xBo91V2n0uEC2vh69ywCiSyvUgN/AQH8EZpCVtM7NyjKgKm\nbbY4G3R0M3ir1xXmvUDvK0493/qOiFrjkplvzXFTGpPTi0ypqGgxc5d0ohRA1M75\nL+0AIlXoOgHQ358/c4uO8X0JAA1NYxCkAW1KSJgFJ3RjukrfqSHWthS1d4o8fhHy\nKJKEnirE5hHqB50dafXrBfgZdaOs3C6ppRIePFe2o4vUEapMTCHFw0woQR8Ah4/R\nn7Z9G9Ln+0Cinmy0nbIDiZJ+pgLAXCOWBfDUzcOjDGKvcpoZharA07c0q1/5ojzO\n4F0Fh4g/BUmtrASwHfcIbjHyCSr1j/3Iz883iy07gJY5Yhiuaqmp0o0f9fgHkG53\n2xCU1owmACqaIBNQMukvXRDtB2GJMuKa/asTZDP6R5re+iXs7+s9ohcRRAKGyAyc\nYKIQKcaA+6M8T7/G+TPHZX6HJWqJJiYB+EC2ERblpvq9TPlLguEWcmvjbVc31nyq\nSDoO3ncFWKFmVsbQPTbP+pKUmlLfJwtb5XqxNR5GEXSwVv4I7IqBmJz1MmRafnBZ\ng0FJUtH668GnldO20XbnSVBr820F5SISMXVwCXDXEvGwwiB8Lt8PvqzXnGIFDAu3\nDlQI5sxSqpPVWSyw08ppKT2Tpmy8adiBotLfaCFl2VTHwOae48X2dMPBvQARAQAB\ntDFGZWRvcmEgKDMwKSA8ZmVkb3JhLTMwLXByaW1hcnlAZmVkb3JhcHJvamVjdC5v\ncmc+iQI4BBMBAgAiBQJbbqxnAhsPBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAK\nCRDvPBEfz8ZZudTnD/9170LL3nyTVUCFmBjT9wZ4gYnpwtKVPa/pKnxbbS+Bmmac\ng9TrT9pZbqOHrNJLiZ3Zx1Hp+8uxr3Lo6kbYwImLhkOEDrf4aP17HfQ6VYFbQZI8\nf79OFxWJ7si9+3gfzeh9UYFEqOQfzIjLWFyfnas0OnV/P+RMQ1Zr+vPRqO7AR2va\nN9wg+Xl7157dhXPCGYnGMNSoxCbpRs0JNlzvJMuAea5nTTznRaJZtK/xKsqLn51D\nK07k9MHVFXakOH8QtMCUglbwfTfIpO5YRq5imxlWbqsYWVQy1WGJFyW6hWC0+RcJ\nOx5zGtOfi4/dN+xJ+ibnbyvy/il7Qm+vyFhCYqIPyS5m2UVJUuao3eApE38k78/o\n8aQOTnFQZ+U1Sw+6woFTxjqRQBXlQm2+7Bt3bqGATg4sXXWPbmwdL87Ic+mxn/ml\nSMfQux/5k6iAu1kQhwkO2YJn9eII6HIPkW+2m5N1JsUyJQe4cbtZE5Yh3TRA0dm7\n+zoBRfCXkOW4krchbgww/ptVmzMMP7GINJdROrJnsGl5FVeid9qHzV7aZycWSma7\nCxBYB1J8HCbty5NjtD6XMYRrMLxXugvX6Q4NPPH+2NKjzX4SIDejS6JjgrP3KA3O\npMuo7ZHMfveBngv8yP+ZD/1sS6l+dfExvdaJdOdgFCnp4p3gPbw5+Lv70HrMjA==\n=BfZ/\n-----END PGP PUBLIC KEY BLOCK-----\n" + } + ] +} diff --git a/repositories/rhel-8.2.json b/repositories/rhel-8.2.json new file mode 100644 index 000000000..5df7aa943 --- /dev/null +++ b/repositories/rhel-8.2.json @@ -0,0 +1,26 @@ +{ + "aarch64": [ + { + "id": "baseos", + "name": "BaseOS", + "BaseURL": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/aarch64/os" + }, + { + "id": "appstream", + "name": "AppStream", + "BaseURL": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/aarch64/os" + } + ], + "x86_64": [ + { + "id": "baseos", + "name": "BaseOS", + "BaseURL": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os" + }, + { + "id": "appstream", + "name": "AppStream", + "BaseURL": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os" + } + ] +} diff --git a/test/cases/rhel82_ami.json b/test/cases/rhel82_ami.json index 9cb9a8657..c37cb88fc 100644 --- a/test/cases/rhel82_ami.json +++ b/test/cases/rhel82_ami.json @@ -22,11 +22,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], @@ -59,11 +59,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], diff --git a/test/cases/rhel82_ext4_filesystem.json b/test/cases/rhel82_ext4_filesystem.json index 8f26c72da..78b0ba78a 100644 --- a/test/cases/rhel82_ext4_filesystem.json +++ b/test/cases/rhel82_ext4_filesystem.json @@ -28,11 +28,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], @@ -65,11 +65,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], diff --git a/test/cases/rhel82_groups.json b/test/cases/rhel82_groups.json index 82c51f918..7da3cfc1c 100644 --- a/test/cases/rhel82_groups.json +++ b/test/cases/rhel82_groups.json @@ -33,11 +33,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], @@ -70,11 +70,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], diff --git a/test/cases/rhel82_openstack.json b/test/cases/rhel82_openstack.json index c53ce76c4..fd98025c0 100644 --- a/test/cases/rhel82_openstack.json +++ b/test/cases/rhel82_openstack.json @@ -22,11 +22,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], @@ -59,11 +59,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], diff --git a/test/cases/rhel82_partitioned_disk.json b/test/cases/rhel82_partitioned_disk.json index 73b46d1af..15c9fe36e 100644 --- a/test/cases/rhel82_partitioned_disk.json +++ b/test/cases/rhel82_partitioned_disk.json @@ -28,11 +28,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], @@ -65,11 +65,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], diff --git a/test/cases/rhel82_qcow2.json b/test/cases/rhel82_qcow2.json index bcc0fed68..2d5ae496f 100644 --- a/test/cases/rhel82_qcow2.json +++ b/test/cases/rhel82_qcow2.json @@ -22,11 +22,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], @@ -59,11 +59,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], diff --git a/test/cases/rhel82_tar.json b/test/cases/rhel82_tar.json index ab39afe7f..e4de26071 100644 --- a/test/cases/rhel82_tar.json +++ b/test/cases/rhel82_tar.json @@ -28,11 +28,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], @@ -65,11 +65,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], diff --git a/test/cases/rhel82_vhd.json b/test/cases/rhel82_vhd.json index 10d8f1c30..79052397b 100644 --- a/test/cases/rhel82_vhd.json +++ b/test/cases/rhel82_vhd.json @@ -22,11 +22,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], @@ -59,11 +59,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], diff --git a/test/cases/rhel82_vmdk.json b/test/cases/rhel82_vmdk.json index 8b3ab5316..0427706ec 100644 --- a/test/cases/rhel82_vmdk.json +++ b/test/cases/rhel82_vmdk.json @@ -31,11 +31,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ], @@ -68,11 +68,11 @@ "options": { "repos": [ { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/BaseOS/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/BaseOS/x86_64/os", "checksum": "sha256:3ce6f4ffa7d05b81fec2ba5a1c4917b351231c3433f2f5eed86ed5f8f97168a1" }, { - "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.2.0-20191213.n.1/compose/AppStream/x86_64/os", + "baseurl": "http://download-ipv4.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/latest-RHEL-8.2.0/compose/AppStream/x86_64/os", "checksum": "sha256:662e1dc0e465dd5e8efec9f42ef24ac9fd8418294254c3c98ea0342d6e903aed" } ],