diff options
author | Pawel Wieczorek <p.wieczorek2@samsung.com> | 2018-08-03 19:41:51 +0200 |
---|---|---|
committer | Pawel Wieczorek <p.wieczorek2@samsung.com> | 2018-09-14 16:15:03 +0200 |
commit | 93793c110c08aaa784de24bc5e6fd6eeb4b67db5 (patch) | |
tree | 6fadacc52b4b3c741168d97e7697ffa09114fae4 | |
parent | f2c86ce19acdfa0d147131c695a13d0c62286f50 (diff) | |
download | weles-93793c110c08aaa784de24bc5e6fd6eeb4b67db5.tar.gz weles-93793c110c08aaa784de24bc5e6fd6eeb4b67db5.tar.bz2 weles-93793c110c08aaa784de24bc5e6fd6eeb4b67db5.zip |
Pass Artifact DB path to Dryad jobs
After reverse SSHFS introduction for transferring files between Weles
and Dryad assigned for a given job, Artifact DB had to be available
under proper mountpoint on Dryad. This patch propagates path to Artifact
DB from command line flag through Dryad Job Manager to newly created
Dryad Jobs.
Change-Id: I36fdec4ec6f04b2e544a38218b0faeeec1dddaa2
Signed-off-by: Pawel Wieczorek <p.wieczorek2@samsung.com>
-rw-r--r-- | cmd/weles-server/main.go | 2 | ||||
-rw-r--r-- | manager/dryad_job.go | 5 | ||||
-rw-r--r-- | manager/dryad_job_manager.go | 14 | ||||
-rw-r--r-- | manager/dryad_job_manager_test.go | 3 |
4 files changed, 13 insertions, 11 deletions
diff --git a/cmd/weles-server/main.go b/cmd/weles-server/main.go index ede46d9..024dc07 100644 --- a/cmd/weles-server/main.go +++ b/cmd/weles-server/main.go @@ -111,7 +111,7 @@ func main() { artifactDownloadQueueCap) exitOnErr("failed to initialize ArtifactManager ", err) bor := client.NewBorutaClient(borutaAddress) - djm := manager.NewDryadJobManager() + djm := manager.NewDryadJobManager(artifactDBLocation) jm := controller.NewJobManager(am, &yap, bor, borutaRefreshPeriod, djm) api := operations.NewWelesAPI(swaggerSpec) diff --git a/manager/dryad_job.go b/manager/dryad_job.go index 97dcdac..61c23ee 100644 --- a/manager/dryad_job.go +++ b/manager/dryad_job.go @@ -55,10 +55,9 @@ func newDryadJobWithCancel(job weles.JobID, changes chan<- weles.DryadJobStatusC // newDryadJob creates an instance of dryadJob and starts a goroutine // executing phases of given job implemented by provider of DryadJobRunner interface. func newDryadJob(job weles.JobID, rusalka weles.Dryad, conf weles.Config, - changes chan<- weles.DryadJobStatusChange) *dryadJob { + changes chan<- weles.DryadJobStatusChange, artifactDBPath string) *dryadJob { - // FIXME: It should use the proper path to the artifactory. - session := dryad.NewSessionProvider(rusalka, "") + session := dryad.NewSessionProvider(rusalka, artifactDBPath) device := dryad.NewDeviceCommunicationProvider(session) ctx, cancel := context.WithCancel(context.Background()) diff --git a/manager/dryad_job_manager.go b/manager/dryad_job_manager.go index 4dacf21..a530cd3 100644 --- a/manager/dryad_job_manager.go +++ b/manager/dryad_job_manager.go @@ -27,15 +27,17 @@ import ( // DryadJobs implements DryadJobManager interface. type DryadJobs struct { weles.DryadJobManager - jobs map[weles.JobID]*dryadJob - jobsMutex *sync.RWMutex + jobs map[weles.JobID]*dryadJob + jobsMutex *sync.RWMutex + artifactDBPath string } // NewDryadJobManager returns DryadJobManager interface of a new instance of DryadJobs. -func NewDryadJobManager() weles.DryadJobManager { +func NewDryadJobManager(artifactDBPath string) weles.DryadJobManager { return &DryadJobs{ - jobs: make(map[weles.JobID]*dryadJob), - jobsMutex: new(sync.RWMutex), + jobs: make(map[weles.JobID]*dryadJob), + jobsMutex: new(sync.RWMutex), + artifactDBPath: artifactDBPath, } } @@ -50,7 +52,7 @@ func (d *DryadJobs) Create(job weles.JobID, rusalka weles.Dryad, conf weles.Conf d.jobsMutex.Lock() defer d.jobsMutex.Unlock() // FIXME(amistewicz): dryadJobs should not be stored indefinitely. - d.jobs[job] = newDryadJob(job, rusalka, conf, changes) + d.jobs[job] = newDryadJob(job, rusalka, conf, changes, d.artifactDBPath) return nil } diff --git a/manager/dryad_job_manager_test.go b/manager/dryad_job_manager_test.go index df0f635..d96473c 100644 --- a/manager/dryad_job_manager_test.go +++ b/manager/dryad_job_manager_test.go @@ -29,9 +29,10 @@ import ( var _ = Describe("DryadJobManager", func() { var djm DryadJobManager jobID := JobID(666) + artifactDBPath := "/artifact/db/path" BeforeEach(func() { - djm = NewDryadJobManager() + djm = NewDryadJobManager(artifactDBPath) }) create := func() { |