PortAllocator: Persist reservations
Speed up improve random port generation.
Update unit tests and add them to CI/CD.
Change-Id: Ia77f0b4cbccfdce86e6c3cedc68afe6796ca8bf4
diff --git a/core/installer/soft/repoio_mem.go b/core/installer/soft/repoio_mem.go
new file mode 100644
index 0000000..f0ac1b6
--- /dev/null
+++ b/core/installer/soft/repoio_mem.go
@@ -0,0 +1,46 @@
+package soft
+
+import (
+ "sync"
+ "testing"
+)
+
+type mockRepoIO struct {
+ RepoFS
+ addr string
+ t *testing.T
+ l sync.Locker
+}
+
+func NewMockRepoIO(fs RepoFS, addr string, t *testing.T) RepoIO {
+ return &mockRepoIO{
+ RepoFS: fs,
+ addr: addr,
+ t: t,
+ l: &sync.Mutex{},
+ }
+}
+
+func (r mockRepoIO) FullAddress() string {
+ return r.addr
+}
+
+func (r mockRepoIO) Pull() error {
+ r.t.Logf("Pull: %s", r.addr)
+ return nil
+}
+
+func (r mockRepoIO) CommitAndPush(message string, opts ...PushOption) (string, error) {
+ r.t.Logf("Commit and push: %s", message)
+ return "", nil
+}
+
+func (r mockRepoIO) Do(op DoFn, _ ...DoOption) (string, error) {
+ r.l.Lock()
+ defer r.l.Unlock()
+ msg, err := op(r)
+ if err != nil {
+ return "", err
+ }
+ return r.CommitAndPush(msg)
+}
diff --git a/core/installer/welcome/env_test.go b/core/installer/welcome/env_test.go
index e7e75a8..f41110d 100644
--- a/core/installer/welcome/env_test.go
+++ b/core/installer/welcome/env_test.go
@@ -260,7 +260,7 @@
jc := fakeJobCreator{t}
hf := fakeHelmFetcher{t}
lg := installer.GitRepositoryLocalChartGenerator{"foo", "bar"}
- infraRepo := mockRepoIO{soft.NewBillyRepoFS(infraFS), "foo.bar", t, &sync.Mutex{}}
+ infraRepo := soft.NewMockRepoIO(soft.NewBillyRepoFS(infraFS), "foo.bar", t)
infraMgr, err := installer.NewInfraAppManager(infraRepo, nsCreator, hf, lg)
if err != nil {
t.Fatal(err)