[ARVADOS-ORG] updated: cbd424ec4f4fd7095ec693553d3e81ec8ee07be3
Git user
git at public.curoverse.com
Fri Mar 2 13:59:54 EST 2018
Summary of changes:
arvados-version-server/arvados-version-server.go | 68 +++++++++++++++++++-----
1 file changed, 55 insertions(+), 13 deletions(-)
via cbd424ec4f4fd7095ec693553d3e81ec8ee07be3 (commit)
from cd47565c54ae78daeba11986673d182528aa6546 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit cbd424ec4f4fd7095ec693553d3e81ec8ee07be3
Author: Ward Vandewege <ward at curoverse.com>
Date: Fri Mar 2 13:57:59 2018 -0500
The crunch-dispatch-slurm package has a new dependency on lib/dispatchcloud
Refactor the way we calculate the timestamps to make it more DRY.
No issue #
Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <wvandewege at veritasgenetics.com>
diff --git a/arvados-version-server/arvados-version-server.go b/arvados-version-server/arvados-version-server.go
index 643c4c8..6a1a422 100644
--- a/arvados-version-server/arvados-version-server.go
+++ b/arvados-version-server/arvados-version-server.go
@@ -67,6 +67,12 @@ type Config struct {
Packages []bundle
}
+type directoryVersions struct {
+ Path string
+ Timestamp string
+ VersionWithoutPrefix string
+}
+
var theConfig Config
const defaultConfigPath = "/etc/arvados/version-server/version-server.yml"
@@ -525,11 +531,12 @@ func normalizeRequestedHash(hash string) (string, error) {
return gitHash, nil
}
-func getPackageVersionsWorker(hash string) (gitHash string, goSDKTimestamp string, goSDKVersionWithoutPrefix string, pythonSDKTimestamp string, err error) {
+func getPackageVersionsWorker(hash string) (gitHash string, dirVersions map[string]directoryVersions, err error) {
gitHash = ""
- goSDKTimestamp = ""
- goSDKVersionWithoutPrefix = ""
- pythonSDKTimestamp = ""
+ var timestamp = ""
+ var prefix = ""
+
+ dirVersions = make(map[string]directoryVersions)
_, err = prepareGitCheckout(hash)
if err != nil {
@@ -547,14 +554,31 @@ func getPackageVersionsWorker(hash string) (gitHash string, goSDKTimestamp strin
if err != nil {
err = nil
} else {
- goSDKTimestamp, err = timestampFromGit()
+ timestamp, err = timestampFromGit()
if err != nil {
return
}
- goSDKVersionWithoutPrefix, err = versionFromGit("")
+ prefix, err = versionFromGit("")
if err != nil {
return
}
+ dirVersions["sdk/go"] = directoryVersions{"sdk/go", timestamp, prefix}
+ }
+
+ // Get the git timestamp and version string for the sdk/go directory
+ err = os.Chdir(theConfig.DirPath + "/lib/dispatchcloud")
+ if err != nil {
+ err = nil
+ } else {
+ timestamp, err = timestampFromGit()
+ if err != nil {
+ return
+ }
+ prefix, err = versionFromGit("")
+ if err != nil {
+ return
+ }
+ dirVersions["lib/dispatchcloud"] = directoryVersions{"lib/dispatchcloud", timestamp, prefix}
}
// Get the git timestamp and version string for the sdk/python directory
@@ -562,10 +586,15 @@ func getPackageVersionsWorker(hash string) (gitHash string, goSDKTimestamp strin
if err != nil {
err = nil
} else {
- pythonSDKTimestamp, err = timestampFromGit()
+ timestamp, err = timestampFromGit()
+ if err != nil {
+ return
+ }
+ prefix, err = versionFromGit("")
if err != nil {
return
}
+ dirVersions["sdk/python"] = directoryVersions{"sdk/python", timestamp, prefix}
}
return
@@ -590,7 +619,10 @@ func pythonSDKVersionCheck(pythonSDKTimestamp string) (err error) {
func getPackageVersions(hash string) (versions map[string]map[string]string, gitHash string, err error) {
versions = make(map[string]map[string]string)
- gitHash, goSDKTimestamp, goSDKVersionWithoutPrefix, pythonSDKTimestamp, err := getPackageVersionsWorker(hash)
+ var maxTimestamp string
+ var dirVersions map[string]directoryVersions
+
+ gitHash, dirVersions, err = getPackageVersionsWorker(hash)
if err != nil {
return nil, "", err
}
@@ -620,14 +652,24 @@ func getPackageVersions(hash string) (versions map[string]map[string]string, git
return nil, "", err
}
- if goSDKTimestamp > packageTimestamp {
- packageVersion = p.versionPrefix + goSDKVersionWithoutPrefix
+ maxTimestamp = packageTimestamp
+
+ if dirVersions["sdk/go"].Timestamp > maxTimestamp {
+ maxTimestamp = dirVersions["sdk/go"].Timestamp
+ packageVersion = p.versionPrefix + dirVersions["sdk/go"].VersionWithoutPrefix
+ }
+
+ if p.name == "crunch-dispatch-slurm" {
+ if dirVersions["lib/dispatchcloud"].Timestamp > maxTimestamp {
+ maxTimestamp = dirVersions["lib/dispatchcloud"].Timestamp
+ packageVersion = p.versionPrefix + dirVersions["lib/dispatchcloud"].VersionWithoutPrefix
+ }
}
} else if p.versionType == "python" {
// Not all of our packages that use our python sdk are automatically
// getting rebuilt when sdk/python changes. Yet.
if p.name == "python-arvados-cwl-runner" {
- err = pythonSDKVersionCheck(pythonSDKTimestamp)
+ err = pythonSDKVersionCheck(dirVersions["sdk/python"].Timestamp)
if err != nil {
return nil, "", err
}
@@ -646,7 +688,7 @@ func getPackageVersions(hash string) (versions map[string]map[string]string, git
// the arvados/jobs image version is always the latest of the
// sdk/python and the sdk/cwl version
if p.name == "arvados/jobs" {
- err = pythonSDKVersionCheck(pythonSDKTimestamp)
+ err = pythonSDKVersionCheck(dirVersions["sdk/python"].Timestamp)
if err != nil {
return nil, "", err
}
@@ -656,7 +698,7 @@ func getPackageVersions(hash string) (versions map[string]map[string]string, git
return nil, "", err
}
// Before this date, the arvados/jobs version hash was calculated differently
- if strings.Compare(packageVersion,"1.0.20171211211613") == -1 {
+ if strings.Compare(packageVersion, "1.0.20171211211613") == -1 {
packageVersion, err = dockerVersionFromGit()
}
}
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list