From 0e9a5d3376800210774e487332f653f089d65c03 Mon Sep 17 00:00:00 2001 From: David Scott Date: Sat, 4 Apr 2015 19:30:22 +0000 Subject: [PATCH 1/8] Use the json marshalling when returning Backend_error_with_backtrace Signed-off-by: David Scott --- main.ml | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/main.ml b/main.ml index bcae918..c85392e 100644 --- a/main.ml +++ b/main.ml @@ -42,18 +42,10 @@ let backend_error name args = Exception.rpc_of_exnty exnty let backend_backtrace_error name args error = - match List.zip error.files error.lines with - | None -> backend_error "SCRIPT_FAILED" [ "malformed backtrace in error output" ] - | Some pairs -> - let backtrace = - pairs - |> List.map ~f:(fun (filename, line) -> { B.Interop.filename; line }) - |> B.Interop.to_backtrace - |> B.sexp_of_t - |> Sexplib.Sexp.to_string in - let open Storage_interface in - let exnty = Exception.Backend_error_with_backtrace(name, backtrace :: args) in - Exception.rpc_of_exnty exnty + let error = rpc_of_error error |> Jsonrpc.to_string in + let open Storage_interface in + let exnty = Exception.Backend_error_with_backtrace(name, error :: args) in + Exception.rpc_of_exnty exnty let missing_uri () = backend_error "MISSING_URI" [ "Please include a URI in the device-config" ] From fd920a9c2132a09a5d3301824bbec59ace578b02 Mon Sep 17 00:00:00 2001 From: David Scott Date: Sat, 4 Apr 2015 19:32:11 +0000 Subject: [PATCH 2/8] Update to use new read caching API (o_direct, o_direct_reason) Signed-off-by: David Scott --- main.ml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/main.ml b/main.ml index c85392e..21585b3 100644 --- a/main.ml +++ b/main.ml @@ -353,7 +353,9 @@ let process root_dir name x = | Storage.D.Types.Tapdisk3 p -> "vbd3", p in let attach_info = { params; - xenstore_data = [ "backend-kind", backend ] + xenstore_data = [ "backend-kind", backend ]; + o_direct = true; + o_direct_reason = ""; } in Deferred.Result.return (R.success (Args.VDI.Attach.rpc_of_response attach_info)) | { R.name = "VDI.activate"; R.params = [ args ] } -> From 1e061e40754b4e548f6fa85b6d75527597530356 Mon Sep 17 00:00:00 2001 From: David Scott Date: Sat, 4 Apr 2015 19:33:39 +0000 Subject: [PATCH 3/8] Use modern travis configuration Signed-off-by: David Scott --- .travis-ci.sh | 39 --------------------------------------- .travis.yml | 6 ++++-- 2 files changed, 4 insertions(+), 41 deletions(-) delete mode 100755 .travis-ci.sh diff --git a/.travis-ci.sh b/.travis-ci.sh deleted file mode 100755 index 2be6255..0000000 --- a/.travis-ci.sh +++ /dev/null @@ -1,39 +0,0 @@ -OPAM_DEPENDS="xapi-idl async async_inotify core message-switch xapi-storage" -case "$OCAML_VERSION,$OPAM_VERSION" in -3.12.1,1.0.0) ppa=avsm/ocaml312+opam10 ;; -3.12.1,1.1.0) ppa=avsm/ocaml312+opam11 ;; -4.00.1,1.0.0) ppa=avsm/ocaml40+opam10 ;; -4.00.1,1.1.0) ppa=avsm/ocaml40+opam11 ;; -4.01.0,1.0.0) ppa=avsm/ocaml41+opam10 ;; -4.01.0,1.1.0) ppa=avsm/ocaml41+opam11 ;; -*) echo Unknown $OCAML_VERSION,$OPAM_VERSION; exit 1 ;; -esac - -echo "yes" | sudo add-apt-repository ppa:$ppa -sudo apt-get update -qq -sudo apt-get install -qq ocaml ocaml-native-compilers camlp4-extra opam - -export OPAMYES=1 -#export OPAMVERBOSE=1 -echo OCaml version -ocaml -version -echo OPAM versions -opam --version -opam --git-version - -opam init -# ocamlscript doesn't read .ocamlinit so the ocamlfind opam workaround breaks. -# This is a workaround workaround: -opam install ocamlfind -sudo mkdir -p $(ocamlc -where) -eval `opam config env` -sudo cp $OCAML_TOPLEVEL_PATH/topfind $(ocamlc -where) - -opam remote add xapi git://github.com/xapi-project/opam-repo-dev -depext=`opam install -e ubuntu $OPAM_DEPENDS` -sudo apt-get install -qq $depext -opam install ${OPAM_DEPENDS} -eval `opam config env` -make -echo Running make test -make test diff --git a/.travis.yml b/.travis.yml index 1957db9..c7b66f6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,6 @@ language: c -script: bash -ex .travis-ci.sh +install: wget https://raw.githubusercontent.com/ocaml/ocaml-travisci-skeleton/master/.travis-opam.sh +script: bash -ex .travis-opam.sh +sudo: true env: - - OCAML_VERSION=4.01.0 OPAM_VERSION=1.1.0 + - OCAML_VERSION=4.02 PACKAGE=xapi-storage-script FORK_USER=djs55 EXTRA_REMOTE=git://github.com/xapi-project/opam-repo-dev From 6e439227344dbda4c1fe6880f63e7f2e94be4275 Mon Sep 17 00:00:00 2001 From: David Scott Date: Sat, 4 Apr 2015 19:34:01 +0000 Subject: [PATCH 4/8] Add opam file for development Signed-off-by: David Scott --- opam | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 opam diff --git a/opam b/opam new file mode 100644 index 0000000..775aa64 --- /dev/null +++ b/opam @@ -0,0 +1,17 @@ +opam-version: "1" +maintainer: "dave.scott@citrix.com" +build: [ + [make] + [make "install" "BINDIR=%{bin}%"] +] +remove: [ + [make "uninstall" "BINDIR=%{bin}%"] +] +depends: [ + "xapi-idl" {>= "0.10.0" } + "xapi-storage" + "async" + "async_inotify" + "core" + "message-switch" +] From 504d98bd17b956fe64a601340c1341d7fb1f2dc8 Mon Sep 17 00:00:00 2001 From: David Scott Date: Sat, 4 Apr 2015 19:34:17 +0000 Subject: [PATCH 5/8] Update CHANGES and bump to 0.2.0 Signed-off-by: David Scott --- CHANGES | 6 ++++++ VERSION | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index b7d405a..c5a6f5f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,9 @@ +0.2.0 (4-Apr-2015) +- Update to SMAPIv2 with o_direct, o_direct_reason +- Update to using json marshalling for exception backtraces +- Use modern travis configuration +- Add opam file for development + 0.1.2 (19-Oct-2014) - Treat VDI.epoch_{begin,end} as no-ops - Write the pidfile when daemonizing diff --git a/VERSION b/VERSION index d917d3e..0ea3a94 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.2 +0.2.0 From 202e414069c31edce01974c9a7793d48ad99a577 Mon Sep 17 00:00:00 2001 From: David Scott Date: Sat, 4 Apr 2015 19:53:36 +0000 Subject: [PATCH 6/8] travis: use OCaml 4.01 Signed-off-by: David Scott --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c7b66f6..a0a920e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,4 +3,4 @@ install: wget https://raw.githubusercontent.com/ocaml/ocaml-travisci-skeleton/ma script: bash -ex .travis-opam.sh sudo: true env: - - OCAML_VERSION=4.02 PACKAGE=xapi-storage-script FORK_USER=djs55 EXTRA_REMOTE=git://github.com/xapi-project/opam-repo-dev + - OCAML_VERSION=4.01 PACKAGE=xapi-storage-script FORK_USER=djs55 EXTRA_REMOTE=git://github.com/xapi-project/opam-repo-dev From 13f49d6c3ac3d55b86fcfe5591c6b6ec65c257db Mon Sep 17 00:00:00 2001 From: David Scott Date: Sat, 4 Apr 2015 19:56:55 +0000 Subject: [PATCH 7/8] opam: pin version of async Signed-off-by: David Scott --- opam | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opam b/opam index 775aa64..b542ad8 100644 --- a/opam +++ b/opam @@ -10,8 +10,8 @@ remove: [ depends: [ "xapi-idl" {>= "0.10.0" } "xapi-storage" - "async" - "async_inotify" + "async" {= "111.25.00" } + "async_inotify" {= "111.28.00" } "core" "message-switch" ] From 7b4ddf2a71236d1502c95505308b23f16ca487c2 Mon Sep 17 00:00:00 2001 From: David Scott Date: Sat, 4 Apr 2015 20:27:43 +0000 Subject: [PATCH 8/8] opam: put manpages in %{man}% Signed-off-by: David Scott --- opam | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opam b/opam index b542ad8..c032049 100644 --- a/opam +++ b/opam @@ -2,10 +2,10 @@ opam-version: "1" maintainer: "dave.scott@citrix.com" build: [ [make] - [make "install" "BINDIR=%{bin}%"] + [make "install" "BINDIR=%{bin}%" "MANDIR=%{man}%"] ] remove: [ - [make "uninstall" "BINDIR=%{bin}%"] + [make "uninstall" "BINDIR=%{bin}%" "MANDIR=%{man}%"] ] depends: [ "xapi-idl" {>= "0.10.0" }