def stop_keep_proxy():
kill_server_pid(os.path.join(TEST_TMPDIR, "keepproxy.pid"), 0)
+def run_arv_git():
+ stop_arv_git()
+
+ admin_token = auth_token('admin')
+ env = os.environ.copy()
+ env['ARVADOS_API_TOKEN'] = admin_token
+ shutil.rmtree(os.path.join(ARVADOS_DIR, "services/api/tmp/git"), ignore_errors=True)
+ os.mkdir(os.path.join(ARVADOS_DIR, "services/api/tmp/git"))
+ argh = subprocess.Popen(
+ ["arv-git-httpd",
+ "-address=:3005",
+ "-repo-root=%s" % os.path.join(ARVADOS_DIR, "services/api/tmp/git"),
+ "-pid={}/arv-git-httpd.pid".format(TEST_TMPDIR),
+ ],
+ env=env)
+
+def stop_arv_git():
+ kill_server_pid(os.path.join(TEST_TMPDIR, "arv-git-httpd.pid"), 0)
+
+
def fixture(fix):
'''load a fixture yaml file'''
with open(os.path.join(SERVICES_SRC_DIR, 'api', "test", "fixtures",
MAIN_SERVER = None
KEEP_SERVER = None
KEEP_PROXY_SERVER = None
+ ARV_GIT_SERVER = None
@staticmethod
def _restore_dict(src, dest):
for server_kwargs, start_func, stop_func in (
(cls.MAIN_SERVER, run, reset),
(cls.KEEP_SERVER, run_keep, stop_keep),
- (cls.KEEP_PROXY_SERVER, run_keep_proxy, stop_keep_proxy)):
+ (cls.KEEP_PROXY_SERVER, run_keep_proxy, stop_keep_proxy),
+ (cls.ARV_GIT_SERVER, run_arv_git, stop_arv_git)):
if server_kwargs is not None:
start_func(**server_kwargs)
cls._cleanup_funcs.append(stop_func)
blob_signing_key: zfhgfenhffzltr9dixws36j1yhksjoll2grmku38mi7yxd66h5j4q9w4jzanezacp8s6q0ro3hxakfye02152hncy6zml2ed0uc
user_profile_notification_address: arvados@example.com
workbench_address: https://localhost:3001/
+ git_repositories_dir: <%= "#{Dir.pwd}/tmp/git" %>
+ git_host: http://localhost:3005
common:
# The prefix used for all database identifiers to identify the record as
import (
"flag"
+ "fmt"
"log"
"os"
)
Addr string
GitCommand string
Root string
+ Pidfile string
}
var theConfig *config
flag.StringVar(&theConfig.Root, "repo-root", cwd,
"Path to git repositories.")
+ flag.StringVar(
+ &theConfig.Pidfile,
+ "pid",
+ "",
+ "Path to write pid file")
+
// MakeArvadosClient returns an error if token is unset (even
// though we don't need to do anything requiring
// authentication yet). We can't do this in newArvadosClient()
if err := srv.Start(); err != nil {
log.Fatal(err)
}
+
+ if theConfig.Pidfile != "" {
+ f, err := os.Create(theConfig.Pidfile)
+ if err != nil {
+ log.Fatalf("Error writing pid file (%s): %s", theConfig.Pidfile, err.Error())
+ }
+ fmt.Fprint(f, os.Getpid())
+ f.Close()
+ defer os.Remove(theConfig.Pidfile)
+ }
+
log.Println("Listening at", srv.Addr)
+
if err := srv.Wait(); err != nil {
log.Fatal(err)
}