summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawel Wieczorek <p.wieczorek2@samsung.com>2018-08-03 19:41:51 +0200
committerPawel Wieczorek <p.wieczorek2@samsung.com>2018-09-14 16:15:03 +0200
commit93793c110c08aaa784de24bc5e6fd6eeb4b67db5 (patch)
tree6fadacc52b4b3c741168d97e7697ffa09114fae4
parentf2c86ce19acdfa0d147131c695a13d0c62286f50 (diff)
downloadweles-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.go2
-rw-r--r--manager/dryad_job.go5
-rw-r--r--manager/dryad_job_manager.go14
-rw-r--r--manager/dryad_job_manager_test.go3
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() {