From 186bb2dff0236af26427fb155bd9a4148601126e Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Wed, 26 Apr 2017 23:37:31 +0300 Subject: [PATCH] Add flag to disable/enable support for legacy pool paths Legacy pool paths are enabled by default, but for new aptly installations (when aptly config is first generated), it would be disabled explicitly. --- context/context.go | 5 ++++- deb/package_files_test.go | 2 +- deb/package_test.go | 8 ++++---- deb/publish_test.go | 2 +- deb/remote_test.go | 2 +- files/package_pool.go | 4 ++-- files/package_pool_test.go | 2 +- files/public_test.go | 2 +- s3/public_test.go | 2 +- swift/public_test.go | 2 +- system/t02_config/ConfigShowTest_gold | 3 ++- system/t02_config/CreateConfigTest_gold | 3 ++- utils/config.go | 2 ++ utils/config_test.go | 1 + 14 files changed, 24 insertions(+), 16 deletions(-) diff --git a/context/context.go b/context/context.go index 2a95fcb8..7938ffc3 100644 --- a/context/context.go +++ b/context/context.go @@ -101,6 +101,9 @@ func (context *AptlyContext) config() *utils.ConfigStructure { if err != nil { fmt.Fprintf(os.Stderr, "Config file not found, creating default config at %s\n\n", configLocations[0]) + + // as this is fresh aptly installation, we don't need to support legacy pool locations + utils.Config.SkipLegacyPool = true utils.SaveConfig(configLocations[0], &utils.Config) } } @@ -302,7 +305,7 @@ func (context *AptlyContext) PackagePool() aptly.PackagePool { defer context.Unlock() if context.packagePool == nil { - context.packagePool = files.NewPackagePool(context.config().RootDir) + context.packagePool = files.NewPackagePool(context.config().RootDir, !context.config().SkipLegacyPool) } return context.packagePool diff --git a/deb/package_files_test.go b/deb/package_files_test.go index 1dd29edd..4a9fc924 100644 --- a/deb/package_files_test.go +++ b/deb/package_files_test.go @@ -32,7 +32,7 @@ func (s *PackageFilesSuite) SetUpTest(c *C) { } func (s *PackageFilesSuite) TestVerify(c *C) { - packagePool := files.NewPackagePool(c.MkDir()) + packagePool := files.NewPackagePool(c.MkDir(), false) result, err := s.files[0].Verify(packagePool, s.cs) c.Check(err, IsNil) diff --git a/deb/package_test.go b/deb/package_test.go index 635368ee..75e2b840 100644 --- a/deb/package_test.go +++ b/deb/package_test.go @@ -362,7 +362,7 @@ func (s *PackageSuite) TestPoolDirectory(c *C) { } func (s *PackageSuite) TestLinkFromPool(c *C) { - packagePool := files.NewPackagePool(c.MkDir()) + packagePool := files.NewPackagePool(c.MkDir(), false) cs := files.NewMockChecksumStorage() publishedStorage := files.NewPublishedStorage(c.MkDir(), "", "") p := NewPackageFromControlFile(s.stanza) @@ -384,7 +384,7 @@ func (s *PackageSuite) TestLinkFromPool(c *C) { } func (s *PackageSuite) TestFilepathList(c *C) { - packagePool := files.NewPackagePool(c.MkDir()) + packagePool := files.NewPackagePool(c.MkDir(), true) p := NewPackageFromControlFile(s.stanza) list, err := p.FilepathList(packagePool) @@ -393,7 +393,7 @@ func (s *PackageSuite) TestFilepathList(c *C) { } func (s *PackageSuite) TestDownloadList(c *C) { - packagePool := files.NewPackagePool(c.MkDir()) + packagePool := files.NewPackagePool(c.MkDir(), false) cs := files.NewMockChecksumStorage() p := NewPackageFromControlFile(s.stanza) p.Files()[0].Checksums.Size = 5 @@ -418,7 +418,7 @@ func (s *PackageSuite) TestDownloadList(c *C) { func (s *PackageSuite) TestVerifyFiles(c *C) { p := NewPackageFromControlFile(s.stanza) - packagePool := files.NewPackagePool(c.MkDir()) + packagePool := files.NewPackagePool(c.MkDir(), false) cs := files.NewMockChecksumStorage() tmpFilepath := filepath.Join(c.MkDir(), "file") diff --git a/deb/publish_test.go b/deb/publish_test.go index a8d4d476..e96509e8 100644 --- a/deb/publish_test.go +++ b/deb/publish_test.go @@ -97,7 +97,7 @@ func (s *PublishedRepoSuite) SetUpTest(c *C) { s.provider = &FakeStorageProvider{map[string]aptly.PublishedStorage{ "": s.publishedStorage, "files:other": s.publishedStorage2}} - s.packagePool = files.NewPackagePool(s.root) + s.packagePool = files.NewPackagePool(s.root, false) s.cs = files.NewMockChecksumStorage() tmpFilepath := filepath.Join(c.MkDir(), "file") diff --git a/deb/remote_test.go b/deb/remote_test.go index 083367e3..c5ea86e7 100644 --- a/deb/remote_test.go +++ b/deb/remote_test.go @@ -93,7 +93,7 @@ func (s *RemoteRepoSuite) SetUpTest(c *C) { s.progress = console.NewProgress() s.db, _ = database.OpenDB(c.MkDir()) s.collectionFactory = NewCollectionFactory(s.db) - s.packagePool = files.NewPackagePool(c.MkDir()) + s.packagePool = files.NewPackagePool(c.MkDir(), false) s.cs = files.NewMockChecksumStorage() s.SetUpPackages() s.progress.Start() diff --git a/files/package_pool.go b/files/package_pool.go index 9484e7c0..24ae9fb4 100644 --- a/files/package_pool.go +++ b/files/package_pool.go @@ -30,7 +30,7 @@ var ( ) // NewPackagePool creates new instance of PackagePool which specified root -func NewPackagePool(root string) *PackagePool { +func NewPackagePool(root string, supportLegacyPaths bool) *PackagePool { rootPath := filepath.Join(root, "pool") rootPath, err := filepath.Abs(rootPath) if err != nil { @@ -39,7 +39,7 @@ func NewPackagePool(root string) *PackagePool { return &PackagePool{ rootPath: rootPath, - supportLegacyPaths: true, + supportLegacyPaths: supportLegacyPaths, } } diff --git a/files/package_pool_test.go b/files/package_pool_test.go index b237e6ea..cc824aa7 100644 --- a/files/package_pool_test.go +++ b/files/package_pool_test.go @@ -24,7 +24,7 @@ type PackagePoolSuite struct { var _ = Suite(&PackagePoolSuite{}) func (s *PackagePoolSuite) SetUpTest(c *C) { - s.pool = NewPackagePool(c.MkDir()) + s.pool = NewPackagePool(c.MkDir(), true) s.checksum = utils.ChecksumInfo{ MD5: "0035d7822b2f8f0ec4013f270fd650c2", } diff --git a/files/public_test.go b/files/public_test.go index 3eb0d401..5b2731af 100644 --- a/files/public_test.go +++ b/files/public_test.go @@ -171,7 +171,7 @@ func (s *PublishedStorageSuite) TestLinkFromPool(c *C) { }, } - pool := NewPackagePool(s.root) + pool := NewPackagePool(s.root, false) for _, t := range tests { tmpPath := filepath.Join(c.MkDir(), t.sourcePath) diff --git a/s3/public_test.go b/s3/public_test.go index 822ee4c9..5990145a 100644 --- a/s3/public_test.go +++ b/s3/public_test.go @@ -216,7 +216,7 @@ func (s *PublishedStorageSuite) TestRenameFile(c *C) { func (s *PublishedStorageSuite) TestLinkFromPool(c *C) { root := c.MkDir() - pool := files.NewPackagePool(root) + pool := files.NewPackagePool(root, false) cs := files.NewMockChecksumStorage() tmpFile1 := filepath.Join(c.MkDir(), "mars-invaders_1.03.deb") diff --git a/swift/public_test.go b/swift/public_test.go index 7ae12107..1a33ec2b 100644 --- a/swift/public_test.go +++ b/swift/public_test.go @@ -144,7 +144,7 @@ func (s *PublishedStorageSuite) TestRenameFile(c *C) { func (s *PublishedStorageSuite) TestLinkFromPool(c *C) { root := c.MkDir() - pool := files.NewPackagePool(root) + pool := files.NewPackagePool(root, false) cs := files.NewMockChecksumStorage() tmpFile1 := filepath.Join(c.MkDir(), "mars-invaders_1.03.deb") diff --git a/system/t02_config/ConfigShowTest_gold b/system/t02_config/ConfigShowTest_gold index 92558d20..d0f85237 100644 --- a/system/t02_config/ConfigShowTest_gold +++ b/system/t02_config/ConfigShowTest_gold @@ -1,5 +1,5 @@ { - "rootDir": "${HOME}/.aptly", + "rootDir": "/Users/smira/.aptly", "downloadConcurrency": 4, "downloadSpeedLimit": 0, "architectures": [], @@ -11,6 +11,7 @@ "gpgDisableSign": false, "gpgDisableVerify": false, "downloadSourcePackages": false, + "skipLegacyPool": false, "ppaDistributorID": "ubuntu", "ppaCodename": "", "skipContentsPublishing": false, diff --git a/system/t02_config/CreateConfigTest_gold b/system/t02_config/CreateConfigTest_gold index eac6ea97..c146fdb8 100644 --- a/system/t02_config/CreateConfigTest_gold +++ b/system/t02_config/CreateConfigTest_gold @@ -1,5 +1,5 @@ { - "rootDir": "${HOME}/.aptly", + "rootDir": "/Users/smira/.aptly", "downloadConcurrency": 4, "downloadSpeedLimit": 0, "architectures": [], @@ -11,6 +11,7 @@ "gpgDisableSign": false, "gpgDisableVerify": false, "downloadSourcePackages": false, + "skipLegacyPool": true, "ppaDistributorID": "ubuntu", "ppaCodename": "", "skipContentsPublishing": false, diff --git a/utils/config.go b/utils/config.go index 6a50ecd6..9c722b7b 100644 --- a/utils/config.go +++ b/utils/config.go @@ -20,6 +20,7 @@ type ConfigStructure struct { GpgDisableSign bool `json:"gpgDisableSign"` GpgDisableVerify bool `json:"gpgDisableVerify"` DownloadSourcePackages bool `json:"downloadSourcePackages"` + SkipLegacyPool bool `json:"skipLegacyPool"` PpaDistributorID string `json:"ppaDistributorID"` PpaCodename string `json:"ppaCodename"` SkipContentsPublishing bool `json:"skipContentsPublishing"` @@ -81,6 +82,7 @@ var Config = ConfigStructure{ GpgDisableSign: false, GpgDisableVerify: false, DownloadSourcePackages: false, + SkipLegacyPool: false, PpaDistributorID: "ubuntu", PpaCodename: "", FileSystemPublishRoots: map[string]FileSystemPublishRoot{}, diff --git a/utils/config_test.go b/utils/config_test.go index 24eeff12..585b1236 100644 --- a/utils/config_test.go +++ b/utils/config_test.go @@ -65,6 +65,7 @@ func (s *ConfigSuite) TestSaveConfig(c *C) { " \"gpgDisableSign\": false,\n"+ " \"gpgDisableVerify\": false,\n"+ " \"downloadSourcePackages\": false,\n"+ + " \"skipLegacyPool\": false,\n"+ " \"ppaDistributorID\": \"\",\n"+ " \"ppaCodename\": \"\",\n"+ " \"skipContentsPublishing\": false,\n"+