Introduce instance policy on cluster level
[ganeti-local] / configure.ac
index 5beefdc..b672d95 100644 (file)
@@ -1,8 +1,8 @@
 # Configure script for Ganeti
 m4_define([gnt_version_major], [2])
-m4_define([gnt_version_minor], [4])
-m4_define([gnt_version_revision], [2])
-m4_define([gnt_version_suffix], [])
+m4_define([gnt_version_minor], [5])
+m4_define([gnt_version_revision], [0])
+m4_define([gnt_version_suffix], [~rc4])
 m4_define([gnt_version_full],
           m4_format([%d.%d.%d%s],
                     gnt_version_major, gnt_version_minor,
@@ -147,7 +147,7 @@ AC_SUBST(KVM_PATH, $kvm_path)
 # --with-lvm-stripecount=...
 AC_ARG_WITH([lvm-stripecount],
   [AS_HELP_STRING([--with-lvm-stripecount=NUM],
-    [the number of stripes to use for LVM volumes]
+    [the default number of stripes to use for LVM volumes]
     [ (default is 1)]
   )],
   [lvm_stripecount="$withval"],
@@ -208,15 +208,20 @@ AC_MSG_NOTICE([Group for clients is $group_admin])
 # --enable-drbd-barriers
 AC_ARG_ENABLE([drbd-barriers],
   [AS_HELP_STRING([--enable-drbd-barriers],
-    [enable the DRBD barrier functionality (>= 8.0.12) (default: enabled)])],
+    [enable by default the DRBD barriers functionality (>= 8.0.12) (default: enabled)])],
   [[if test "$enableval" != no; then
-      DRBD_BARRIERS=True
+      DRBD_BARRIERS=n
+      DRBD_NO_META_FLUSH=False
     else
-      DRBD_BARRIERS=False
+      DRBD_BARRIERS=bfd
+      DRBD_NO_META_FLUSH=True
     fi
   ]],
-  [DRBD_BARRIERS=True])
+  [DRBD_BARRIERS=n
+   DRBD_NO_META_FLUSH=False
+  ])
 AC_SUBST(DRBD_BARRIERS, $DRBD_BARRIERS)
+AC_SUBST(DRBD_NO_META_FLUSH, $DRBD_NO_META_FLUSH)
 
 # --enable-syslog[=no/yes/only]
 AC_ARG_ENABLE([syslog],
@@ -261,6 +266,27 @@ AC_ARG_ENABLE([htools-rapi],
         [],
         [enable_htools_rapi=no])
 
+# --enable-htools
+ENABLE_CONFD=
+AC_ARG_ENABLE([confd],
+  [AS_HELP_STRING([--enable-confd],
+  [enable the ganeti-confd daemon (default: yes)])],
+  [[case "$enableval" in
+      no)
+        enable_confd=False
+        ;;
+      yes)
+        enable_confd=True
+        ;;
+      *)
+        echo "Invalid value for enable-confd '$enableval'"
+        exit 1
+        ;;
+    esac
+  ]],
+  [enable_confd=True])
+AC_SUBST(ENABLE_CONFD, $enable_confd)
+
 # --with-disk-separator=...
 AC_ARG_WITH([disk-separator],
   [AS_HELP_STRING([--with-disk-separator=STRING],
@@ -275,6 +301,14 @@ AC_SUBST(DISK_SEPARATOR, $disk_separator)
 AC_PROG_INSTALL
 AC_PROG_LN_S
 
+# Check for the ip command
+AC_ARG_VAR(IP_PATH, [ip path])
+AC_PATH_PROG(IP_PATH, [ip], [])
+if test -z "$IP_PATH"
+then
+  AC_MSG_ERROR([ip command not found])
+fi
+
 # Check for pandoc
 AC_ARG_VAR(PANDOC, [pandoc path])
 AC_PATH_PROG(PANDOC, [pandoc], [])
@@ -309,6 +343,14 @@ then
   AC_MSG_WARN([pylint not found, checking code will not be possible])
 fi
 
+# Check for pep8
+AC_ARG_VAR(PEP8, [pep8 path])
+AC_PATH_PROG(PEP8, [pep8], [])
+if test -z "$PEP8"
+then
+  AC_MSG_WARN([pep8 not found, checking code will not be complete])
+fi
+
 # Check for socat
 AC_ARG_VAR(SOCAT, [socat path])
 AC_PATH_PROG(SOCAT, [socat], [])
@@ -319,6 +361,14 @@ fi
 
 if test "$enable_htools" != "no"; then
 
+# Check for qemu-img
+AC_ARG_VAR(QEMUIMG_PATH, [qemu-img path])
+AC_PATH_PROG(QEMUIMG_PATH, [qemu-img], [])
+if test -z "$QEMUIMG_PATH"
+then
+  AC_MSG_WARN([qemu-img not found, using ovfconverter will not be possible])
+fi
+
 # Check for ghc
 AC_ARG_VAR(GHC, [ghc path])
 AC_PATH_PROG(GHC, [ghc], [])
@@ -360,8 +410,10 @@ else
   AC_SUBST(HTOOLS_NOCURL)
   AC_MSG_CHECKING([parallel])
   GHC_PKG_PARALLEL=$($GHC_PKG --simple-output list 'parallel-3.*')
-  if test -z "$GHC_PKG_PARALLEL"
+  if test -n "$GHC_PKG_PARALLEL"
   then
+    HTOOLS_PARALLEL3=-DPARALLEL3
+  else
     GHC_PKG_PARALLEL=$($GHC_PKG --simple-output list 'parallel-2.*')
   fi
   if test -z "$GHC_PKG_PARALLEL"
@@ -369,6 +421,7 @@ else
     GHC_PKG_PARALLEL=$($GHC_PKG --simple-output list 'parallel-1.*')
   fi
   AC_SUBST(GHC_PKG_PARALLEL)
+  AC_SUBST(HTOOLS_PARALLEL3)
   AC_MSG_RESULT($GHC_PKG_PARALLEL)
   AC_MSG_CHECKING([json])
   GHC_PKG_JSON=$($GHC_PKG latest json)
@@ -376,8 +429,8 @@ else
   AC_MSG_CHECKING([network])
   GHC_PKG_NETWORK=$($GHC_PKG latest network)
   AC_MSG_RESULT($GHC_PKG_NETWORK)
-  AC_MSG_CHECKING([QuickCheck 1.x])
-  GHC_PKG_QUICKCHECK=$($GHC_PKG --simple-output list 'QuickCheck-1.*')
+  AC_MSG_CHECKING([QuickCheck 2.x])
+  GHC_PKG_QUICKCHECK=$($GHC_PKG --simple-output list 'QuickCheck-2.*')
   AC_MSG_RESULT($GHC_PKG_QUICKCHECK)
   if test -z "$GHC_PKG_PARALLEL" || test -z "$GHC_PKG_JSON" || \
      test -z "$GHC_PKG_NETWORK"; then
@@ -390,7 +443,7 @@ else
     HTOOLS_MODULES="-package $GHC_PKG_PARALLEL"
   fi
   if test -z "$GHC_PKG_QUICKCHECK"; then
-     AC_MSG_WARN(m4_normalize([The QuickCheck 1.x module was not found,
+     AC_MSG_WARN(m4_normalize([The QuickCheck 2.x module was not found,
                                you won't be able to run Haskell unittests]))
   fi
 fi
@@ -431,6 +484,7 @@ AC_SUBST(HTOOLS_APIDOC)
 fi # end if enable_htools, define automake conditions
 
 AM_CONDITIONAL([WANT_HTOOLS], [test x$HTOOLS = xyes])
+AM_CONDITIONAL([WANT_HTOOLSTESTS], [test "x$GHC_PKG_QUICKCHECK" != x])
 AM_CONDITIONAL([WANT_HTOOLSAPIDOC], [test x$HTOOLS_APIDOC = xyes])
 
 SOCAT_USE_ESCAPE=
@@ -498,6 +552,7 @@ AC_PYTHON_MODULE(simplejson, t)
 AC_PYTHON_MODULE(pyparsing, t)
 AC_PYTHON_MODULE(pyinotify, t)
 AC_PYTHON_MODULE(pycurl, t)
+AC_PYTHON_MODULE(affinity)
 
 # This is optional but then we've limited functionality
 AC_PYTHON_MODULE(paramiko)