Skip to content

Commit

Permalink
Merge pull request #46 from ecordell/default-channel
Browse files Browse the repository at this point in the history
feat(load): validate that packages have a default channel when loading
  • Loading branch information
openshift-merge-robot committed May 16, 2019
2 parents ea142d6 + bd3fbf5 commit 44c259f
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 2 deletions.
3 changes: 3 additions & 0 deletions manifests/etcd/etcd.package.yaml
Expand Up @@ -3,3 +3,6 @@ packageName: etcd
channels:
- name: alpha
currentCSV: etcdoperator.v0.9.2
- name: beta
currentCSV: etcdoperator.v0.9.0
defaultChannel: alpha
28 changes: 28 additions & 0 deletions pkg/server/server_test.go
Expand Up @@ -106,6 +106,10 @@ func TestGetPackage(t *testing.T) {
Name: "alpha",
CsvName: "etcdoperator.v0.9.2",
},
{
Name: "beta",
CsvName: "etcdoperator.v0.9.0",
},
},
DefaultChannelName: "alpha",
}
Expand Down Expand Up @@ -188,6 +192,12 @@ func TestGetChannelEntriesThatReplace(t *testing.T) {
BundleName: "etcdoperator.v0.9.0",
Replaces: "etcdoperator.v0.6.1",
},
{
PackageName: "etcd",
ChannelName: "beta",
BundleName: "etcdoperator.v0.9.0",
Replaces: "etcdoperator.v0.6.1",
},
}

require.ElementsMatch(t, expected, channelEntries)
Expand Down Expand Up @@ -288,6 +298,18 @@ func TestGetChannelEntriesThatProvide(t *testing.T) {
BundleName: "etcdoperator.v0.9.2",
Replaces: "etcdoperator.v0.9.0",
},
{
PackageName: "etcd",
ChannelName: "beta",
BundleName: "etcdoperator.v0.6.1",
Replaces: "",
},
{
PackageName: "etcd",
ChannelName: "beta",
BundleName: "etcdoperator.v0.9.0",
Replaces: "etcdoperator.v0.6.1",
},
}

require.ElementsMatch(t, expected, channelEntries)
Expand Down Expand Up @@ -327,6 +349,12 @@ func TestGetLatestChannelEntriesThatProvide(t *testing.T) {
BundleName: "etcdoperator.v0.9.2",
Replaces: "etcdoperator.v0.9.0",
},
{
PackageName: "etcd",
ChannelName: "beta",
BundleName: "etcdoperator.v0.9.0",
Replaces: "etcdoperator.v0.6.1",
},
}

require.ElementsMatch(t, expected, channelEntries)
Expand Down
11 changes: 9 additions & 2 deletions pkg/sqlite/directory_test.go
Expand Up @@ -47,6 +47,10 @@ func TestQuerierForDirectory(t *testing.T) {
Name: "alpha",
CurrentCSVName: "etcdoperator.v0.9.2",
},
{
Name: "beta",
CurrentCSVName: "etcdoperator.v0.9.0",
},
},
}, etcdPackage)

Expand All @@ -72,11 +76,14 @@ func TestQuerierForDirectory(t *testing.T) {
{"etcd", "alpha", "etcdoperator.v0.6.1", ""},
{"etcd", "alpha", "etcdoperator.v0.9.0", "etcdoperator.v0.6.1"},
{"etcd", "alpha", "etcdoperator.v0.9.2", "etcdoperator.v0.9.1"},
{"etcd", "alpha", "etcdoperator.v0.9.2", "etcdoperator.v0.9.0"}}, etcdChannelEntriesThatProvide)
{"etcd", "alpha", "etcdoperator.v0.9.2", "etcdoperator.v0.9.0"},
{"etcd", "beta", "etcdoperator.v0.6.1", ""},
{"etcd", "beta", "etcdoperator.v0.9.0", "etcdoperator.v0.6.1"}}, etcdChannelEntriesThatProvide)

etcdLatestChannelEntriesThatProvide, err := store.GetLatestChannelEntriesThatProvide(context.TODO(), "etcd.database.coreos.com", "v1beta2", "EtcdCluster")
require.NoError(t, err)
require.ElementsMatch(t, []*registry.ChannelEntry{{"etcd", "alpha", "etcdoperator.v0.9.2", "etcdoperator.v0.9.0"}}, etcdLatestChannelEntriesThatProvide)
require.ElementsMatch(t, []*registry.ChannelEntry{{"etcd", "alpha", "etcdoperator.v0.9.2", "etcdoperator.v0.9.0"},
{"etcd", "beta", "etcdoperator.v0.9.0", "etcdoperator.v0.6.1"}}, etcdLatestChannelEntriesThatProvide)

etcdBundleByProvides, entry, err := store.GetBundleThatProvides(context.TODO(), "etcd.database.coreos.com", "v1beta2", "EtcdCluster")
require.NoError(t, err)
Expand Down
5 changes: 5 additions & 0 deletions pkg/sqlite/load.go
Expand Up @@ -130,16 +130,21 @@ func (s *SQLLoader) AddPackageChannels(manifest registry.PackageManifest) error
}
defer addChannel.Close()

hasDefault := false
for _, c := range manifest.Channels {
if _, err := addChannel.Exec(c.Name, manifest.PackageName, c.CurrentCSVName); err != nil {
return err
}
if c.IsDefaultChannel(manifest) {
hasDefault = true
if _, err := addDefaultChannel.Exec(c.Name, manifest.PackageName); err != nil {
return err
}
}
}
if !hasDefault {
return fmt.Errorf("no default channel specified for %s", manifest.PackageName)
}

addChannelEntry, err := tx.Prepare("insert into channel_entry(channel_name, package_name, operatorbundle_name, depth) values(?, ?, ?, ?)")
if err != nil {
Expand Down

0 comments on commit 44c259f

Please sign in to comment.