"git.curoverse.com/arvados.git/sdk/go/keepclient"
"io/ioutil"
"log"
+ "regexp"
"strings"
)
// keep-rsync arguments
var (
- srcConfig map[string]string
- dstConfig map[string]string
+ srcConfig arvadosclient.APIConfig
+ dstConfig arvadosclient.APIConfig
+ blobSigningKey string
srcKeepServicesJSON string
dstKeepServicesJSON string
replications int
"",
"Source configuration filename with full path that contains "+
"an ARVADOS_API_TOKEN which is a valid datamanager token recognized by the source keep servers, "+
- "ARVADOS_API_HOST, ARVADOS_API_HOST_INSECURE, and ARVADOS_BLOB_SIGNING_KEY.")
+ "ARVADOS_API_HOST, ARVADOS_API_HOST_INSECURE, ARVADOS_EXTERNAL_CLIENT and ARVADOS_BLOB_SIGNING_KEY.")
flag.StringVar(
&dstConfigFile,
"",
"Destination configuration filename with full path that contains "+
"an ARVADOS_API_TOKEN which is a valid datamanager token recognized by the destination keep servers, "+
- "ARVADOS_API_HOST, ARVADOS_API_HOST_INSECURE, and ARVADOS_BLOB_SIGNING_KEY.")
+ "ARVADOS_API_HOST, ARVADOS_API_HOST_INSECURE, ARVADOS_EXTERNAL_CLIENT and ARVADOS_BLOB_SIGNING_KEY.")
flag.StringVar(
&srcKeepServicesJSON,
performKeepRsync()
}
+var matchTrue = regexp.MustCompile("^(?i:1|yes|true)$")
+
// Reads config from file
-func readConfigFromFile(filename string) (map[string]string, error) {
+func readConfigFromFile(filename string) (arvadosclient.APIConfig, error) {
+ var config arvadosclient.APIConfig
+
content, err := ioutil.ReadFile(filename)
if err != nil {
- return nil, err
+ return config, err
}
- config := make(map[string]string)
lines := strings.Split(string(content), "\n")
for _, line := range lines {
if line == "" {
continue
}
kv := strings.Split(line, "=")
- config[kv[0]] = kv[1]
+
+ switch kv[0] {
+ case "ARVADOS_API_TOKEN":
+ config.APIToken = kv[1]
+ case "ARVADOS_API_HOST":
+ config.APIHost = kv[1]
+ case "ARVADOS_API_HOST_INSECURE":
+ config.APIHostInsecure = matchTrue.MatchString(kv[1])
+ case "ARVADOS_EXTERNAL_CLIENT":
+ config.ExternalClient = matchTrue.MatchString(kv[1])
+ case "ARVADOS_BLOB_SIGNING_KEY":
+ blobSigningKey = kv[1]
+ }
}
return config, nil
}
// Initializes keep-rsync using the config provided
func initializeKeepRsync() (err error) {
// arvSrc from srcConfig
- arvSrc, err = arvadosclient.MakeArvadosClientWithConfig(srcConfig)
+ arvSrc, err = arvadosclient.New(srcConfig)
if err != nil {
return
}
// arvDst from dstConfig
- arvDst, err = arvadosclient.MakeArvadosClientWithConfig(dstConfig)
+ arvDst, err = arvadosclient.New(dstConfig)
if err != nil {
return
}