diff --git a/SOURCES/bz1170376-galera-no-readonly.patch b/SOURCES/bz1170376-galera-no-readonly.patch
new file mode 100644
index 0000000..e96196c
--- /dev/null
+++ b/SOURCES/bz1170376-galera-no-readonly.patch
@@ -0,0 +1,204 @@
+diff --git a/heartbeat/galera b/heartbeat/galera
+index 994aad0..d74a70d 100755
+--- a/heartbeat/galera
++++ b/heartbeat/galera
+@@ -342,6 +342,14 @@ is_readonly()
+ 
+ master_exists()
+ {
++    if [ "$__OCF_ACTION" = "demote" ]; then
++        # We don't want to detect master instances during demote.
++        # 1. we could be detecting ourselves as being master, which is no longer the case.
++        # 2. we could be detecting other master instances that are in the process of shutting down.
++        # by not detecting other master instances in "demote" we are deferring this check
++        # to the next recurring monitor operation which will be much more accurate
++        return 1
++    fi
+     # determine if a master instance is already up and is healthy
+     crm_mon --as-xml | grep "resource.*id=\"${OCF_RESOURCE_INSTANCE}\".*role=\"Master\".*active=\"true\".*orphaned=\"false\".*failed=\"false\"" > /dev/null 2>&1
+     return $?
+@@ -441,20 +449,24 @@ galera_promote()
+             extra_opts="--wsrep-cluster-address=gcomm://"
+         else
+             ocf_exit_reason "Failure, Attempted to promote Master instance of $OCF_RESOURCE_INSTANCE before bootstrap node has been detected."
++            clear_last_commit
+             return $OCF_ERR_GENERIC
+         fi
+-
+     fi
+ 
+-    # make sure the read only instance is stopped
+-    mysql_common_stop
+-    rc=$?
+-    if [ $rc -ne $OCF_SUCCESS ] && [ $rc -ne $OCF_NOT_RUNNING ]; then
+-        ocf_exit_reason "Failed to stop read-only galera instance during promotion to Master"
+-        return $rc
++    galera_monitor
++    if [ $? -eq $OCF_RUNNING_MASTER ]; then
++        if ocf_is_true $bootstrap; then
++            promote_everyone
++            clear_bootstrap_node
++            ocf_log info "boostrap node already up, promoting the rest of the galera instances."
++        fi
++        clear_last_commit
++        return $OCF_SUCCESS
+     fi
+ 
+-    sleep 4
++    # last commit is no longer relevant once promoted
++    clear_last_commit
+ 
+     mysql_common_prepare_dirs
+     mysql_common_start "$extra_opts"
+@@ -492,9 +504,6 @@ galera_promote()
+         wait_for_sync
+     fi
+ 
+-    # last commit is no longer relevant once promoted
+-    clear_last_commit
+-
+     ocf_log info "Galera started"
+     return $OCF_SUCCESS
+ }
+@@ -510,14 +519,14 @@ galera_demote()
+ 
+     # if this node was previously a bootstrap node, that is no longer the case.
+     clear_bootstrap_node
++    clear_last_commit
+ 
+-    # start again in slave mode so the new last commit is recorded
++    # record last commit by "starting" galera. start is just detection of the last sequence number
+     galera_start
+ }
+ 
+ galera_start()
+ {
+-    local extra_opts='--read-only=true'
+     local last_commit
+ 
+     echo $OCF_RESKEY_wsrep_cluster_address | grep -q $NODENAME
+@@ -526,22 +535,39 @@ galera_start()
+         return $OCF_ERR_CONFIGURED
+     fi
+ 
+-    mysql_common_prepare_dirs
+-    mysql_common_start "$extra_opts"
+-
+-    is_readonly
+-    if [ $? -ne 0 ]; then
+-        ocf_exit_reason "Slave instance did not start correctly in read-only mode, Make sure local galera.cnf does not have wsrep_cluster_address set."
++    galera_monitor
++    if [ $? -eq $OCF_RUNNING_MASTER ]; then
++        ocf_exit_reason "master galera instance started outside of the cluster's control"
+         return $OCF_ERR_GENERIC
+     fi
+ 
+-    ocf_log info "attempting to detect last commit version"
+-    while [ -z "$last_commit" ]; do
+-        last_commit=$(get_status_variable "wsrep_last_committed")
+-        if [ -z "$last_commit" ]; then
+-            sleep 1
++    mysql_common_prepare_dirs
++
++    ocf_log info "attempting to detect last commit version by reading ${OCF_RESKEY_datadir}/grastate.dat"
++    last_commit="$(cat ${OCF_RESKEY_datadir}/grastate.dat | sed -n 's/^seqno.\s*\(.*\)\s*$/\1/p')"
++    if [ -z "$last_commit" ] || [ "$last_commit" = "-1" ]; then
++        ocf_log info "now attempting to detect last commit version using 'mysqld_safe --wsrep-recover'"
++        local tmp=$(mktemp)
++        ${OCF_RESKEY_binary} --defaults-file=$OCF_RESKEY_config \
++            --pid-file=$OCF_RESKEY_pid \
++            --socket=$OCF_RESKEY_socket \
++            --datadir=$OCF_RESKEY_datadir \
++            --user=$OCF_RESKEY_user \
++            --wsrep-recover > $tmp 2>&1
++
++        last_commit="$(cat $tmp | sed -n 's/.*WSREP\:\s*[R|r]ecovered\s*position.*\:\(.*\)\s*$/\1/p')"
++        rm -f $tmp
++
++        if [ "$last_commit" = "-1" ]; then
++            last_commit="0"
+         fi
+-    done
++    fi
++
++    if [ -z "$last_commit" ]; then
++        ocf_exit_reason "Unable to detect last known write sequence number"
++        clear_last_commit
++        return $OCF_ERR_GENERIC
++    fi
+     ocf_log info "Last commit version found:  $last_commit"
+ 
+     set_last_commit $last_commit
+@@ -567,28 +593,40 @@ galera_monitor()
+     if ocf_is_probe; then
+         status_loglevel="info"
+     fi
+- 
++
+     mysql_common_status $status_loglevel
+     rc=$?
+ 
+-    # If status returned an error, return that immediately
+-    if [ $rc -ne $OCF_SUCCESS ]; then
++    if [ $rc -eq $OCF_NOT_RUNNING ]; then
++        last_commit=$(get_last_commit $node)
++        if [ -n "$last_commit" ]; then
++            # if last commit is set, this instance is considered started in slave mode
++            rc=$OCF_SUCCESS
++            master_exists
++            if [ $? -ne 0 ]; then
++                detect_first_master
++            else
++                # a master instance exists and is healthy, promote this
++                # local read only instance
++                # so it can join the master galera cluster.
++                set_master_score
++            fi
++        fi
++        return $rc
++    elif [ $rc -ne $OCF_SUCCESS ]; then
+         return $rc
+     fi
+ 
++    # if we make it here, mysql is running. Check cluster status now.
++
+     echo $OCF_RESKEY_wsrep_cluster_address | grep -q $NODENAME
+     if [ $? -ne 0 ]; then
+         ocf_exit_reason "local node <${NODENAME}> is started, but is not a member of the wsrep_cluster_address <${OCF_RESKEY_wsrep_cluster_address}>"
+         return $OCF_ERR_GENERIC
+     fi
+ 
+-    is_readonly
+-    if [ $? -ne 0 ]; then
+-        is_primary
+-        if [ $? -ne 0 ]; then
+-            ocf_exit_reason "local node <${NODENAME}> is neither in primary mode nor in read_only mode. Unknown state."
+-            return $OCF_ERR_GENERIC
+-        fi
++    is_primary
++    if [ $? -eq 0 ]; then
+ 
+         if ocf_is_probe; then
+             # restore master score during probe
+@@ -596,18 +634,10 @@ galera_monitor()
+             set_master_score
+         fi
+         rc=$OCF_RUNNING_MASTER
+-    else 
+-        master_exists
+-        if [ $? -ne 0 ]; then
+-            detect_first_master
+-        else
+-            # a master instance exists and is healthy, promote this
+-            # local read only instance
+-            # so it can join the master galera cluster.
+-            set_master_score
+-        fi
++    else
++        ocf_exit_reason "local node <${NODENAME}> is started, but not in primary mode. Unknown state."
++        rc=$OCF_ERR_GENERIC
+     fi
+-    # TODO look at what is done in the wait script
+ 
+     return $rc
+ }
diff --git a/SOURCES/bz1214360-NovaCompute-update1.patch b/SOURCES/bz1214360-NovaCompute-update1.patch
new file mode 100644
index 0000000..2dabe0b
--- /dev/null
+++ b/SOURCES/bz1214360-NovaCompute-update1.patch
@@ -0,0 +1,494 @@
+From 8c92227bce9cc4fe177eea5b2f7c9016e96434f9 Mon Sep 17 00:00:00 2001
+From: David Vossel <dvossel@redhat.com>
+Date: Mon, 29 Jun 2015 13:03:17 -0500
+Subject: [PATCH 1/3] bz1214360-NovaCompute-update1.patch
+
+---
+ doc/man/Makefile.am    |   1 +
+ heartbeat/Makefile.am  |   3 +-
+ heartbeat/NovaCompute  |  73 ++++++------
+ heartbeat/NovaEvacuate | 311 +++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 352 insertions(+), 36 deletions(-)
+ create mode 100755 heartbeat/NovaEvacuate
+
+diff --git a/doc/man/Makefile.am b/doc/man/Makefile.am
+index 42a57fe..d32426b 100644
+--- a/doc/man/Makefile.am
++++ b/doc/man/Makefile.am
+@@ -74,6 +74,7 @@ man_MANS	       = ocf_heartbeat_AoEtarget.7 \
+                           ocf_heartbeat_ManageRAID.7 \
+                           ocf_heartbeat_ManageVE.7 \
+                           ocf_heartbeat_NovaCompute.7 \
++                          ocf_heartbeat_NovaEvacuate.7 \
+                           ocf_heartbeat_Pure-FTPd.7 \
+                           ocf_heartbeat_Raid1.7 \
+                           ocf_heartbeat_Route.7 \
+diff --git a/heartbeat/Makefile.am b/heartbeat/Makefile.am
+index 0bebf97..1034632 100644
+--- a/heartbeat/Makefile.am
++++ b/heartbeat/Makefile.am
+@@ -52,7 +52,8 @@ send_ua_SOURCES         = send_ua.c IPv6addr_utils.c
+ IPv6addr_LDADD          = -lplumb $(LIBNETLIBS)
+ send_ua_LDADD           = $(LIBNETLIBS)
+ 
+-osp_SCRIPTS	     =  NovaCompute
++osp_SCRIPTS	     =  NovaCompute		\
++			NovaEvacuate
+ 
+ ocf_SCRIPTS	     =  ClusterMon		\
+ 			CTDB			\
+diff --git a/heartbeat/NovaCompute b/heartbeat/NovaCompute
+index f71abeb..09eee38 100644
+--- a/heartbeat/NovaCompute
++++ b/heartbeat/NovaCompute
+@@ -107,15 +107,26 @@ Disable shared storage recovery for instances. Use at your own risk!
+ <content type="boolean" default="0" />
+ </parameter>
+ 
++<parameter name="evacuation_delay" unique="0" required="0">
++<longdesc lang="en">
++How long to wait for nova to finish evacuating instances elsewhere
++before starting nova-compute.  Only used when the agent detects
++evacuations might be in progress.
++
++You may need to increase the start timeout when increasing this value.
++</longdesc>
++<shortdesc lang="en">Delay to allow evacuations time to complete</shortdesc>
++<content type="integer" default="120" />
++</parameter>
++
+ </parameters>
+ 
+ <actions>
+-<action name="start"        timeout="120" />
++<action name="start"        timeout="600" />
+ <action name="stop"         timeout="300" />
+ <action name="monitor"      timeout="20" interval="10" depth="0"/>
+ <action name="validate-all" timeout="20" />
+ <action name="meta-data"    timeout="5" />
+-<action name="notify"       timeout="600" />
+ </actions>
+ </resource-agent>
+ END
+@@ -132,7 +143,7 @@ sigterm_handler() {
+ 
+ nova_usage() {
+ 	cat <<END
+-usage: $0 {start|stop|monitor|notify|validate-all|meta-data}
++usage: $0 {start|stop|monitor|validate-all|meta-data}
+ 
+ Expects to have a fully populated OCF RA-compliant environment set.
+ END
+@@ -148,6 +159,26 @@ nova_start() {
+ 	return $OCF_SUCCESS
+     fi
+ 
++    state=$(attrd_updater -p -n evacute -N ${NOVA_HOST} | sed -e 's/.*value=//' | tr -d '"' )
++    if [ "x$state" = x ]; then
++	: never been fenced
++
++    elif [ "x$state" = xno ]; then
++	: has been evacuated, however it could have been 1s ago
++	ocf_log info "Pausing to give evacuations from ${NOVA_HOST} time to complete"
++	sleep ${OCF_RESKEY_evacuation_delay}
++
++    else
++	ocf_log info "Waiting for pending evacuations from ${NOVA_HOST}"
++	while [ "x$state" != "xno" ]; do
++	    state=$(attrd_updater -p -n evacute -N ${NOVA_HOST} | sed -e 's/.*value=//' | tr -d '"' )
++	    sleep 5
++	done
++
++	ocf_log info "Pausing to give evacuations from ${NOVA_HOST} time to complete"
++	sleep ${OCF_RESKEY_evacuation_delay}
++    fi
++
+     export LIBGUESTFS_ATTACH_METHOD=appliance
+     su nova -s /bin/sh -c /usr/bin/nova-compute &
+ 
+@@ -212,33 +243,7 @@ nova_monitor() {
+ }
+ 
+ nova_notify() {
+-    if [ "x${OCF_RESKEY_CRM_meta_notify_operation}" != "xstop" ]; then
+-	return $OCF_SUCCESS
+-    elif [ "x${OCF_RESKEY_CRM_meta_notify_type}" != "xpost" ]; then
+-	return $OCF_SUCCESS
+-    fi
+-
+-    # Only the first node not stopping performs evacuates for now
+-    # Can we allow all of them to do it?  It would make this block much simpler.
+-    for host in ${OCF_RESKEY_CRM_meta_notify_active_uname}; do
+-	for stop in ${OCF_RESKEY_CRM_meta_notify_stop_uname}; do
+-	    if [ "$stop" = "$host" ]; then
+-		: $host is one of the nodes that is stopping
+-
+-	    elif [ "x$(echo ${host} | awk -F. '{print $1}')" != "x$(uname -n | awk -F. '{print $1}')" ]; then
+-		: We are not the first non-stopping node
+-		return $OCF_SUCCESS
+-
+-	    else
+-		# Also repeat for any peer NOT in active_uname somehow?
+-		for node in $OCF_RESKEY_CRM_meta_notify_stop_uname; do
+-		    ocf_log info "Performing evacuations for $node"
+-		    fence_compute ${fence_options} -o reboot -n $node
+-		done
+-		return $OCF_SUCCESS
+-	    fi
+-	done
+-    done
++    return $OCF_SUCCESS
+ }
+ 
+ nova_validate() {
+@@ -246,7 +251,6 @@ nova_validate() {
+     fence_options=""
+ 
+     check_binary openstack-config
+-    check_binary fence_compute
+     check_binary nova-compute
+ 
+     if [ ! -f /etc/nova/nova.conf ]; then
+@@ -337,6 +341,7 @@ nova_validate() {
+     return $rc
+ }
+ 
++: ${OCF_RESKEY_evacuation_delay=120}
+ case $__OCF_ACTION in
+ meta-data)	meta_data
+ 		exit $OCF_SUCCESS
+@@ -346,12 +351,10 @@ usage|help)	nova_usage
+ 		;;
+ esac
+ 
+-nova_validate
+-
+ case $__OCF_ACTION in
+-start)		nova_start;;
++start)		nova_validate; nova_start;;
+ stop)		nova_stop;;
+-monitor)	nova_monitor;;
++monitor)	nova_validate; nova_monitor;;
+ notify)		nova_notify;;
+ validate-all)	exit $OCF_SUCCESS;;
+ *)		nova_usage
+diff --git a/heartbeat/NovaEvacuate b/heartbeat/NovaEvacuate
+new file mode 100755
+index 0000000..f9a24f1
+--- /dev/null
++++ b/heartbeat/NovaEvacuate
+@@ -0,0 +1,311 @@
++#!/bin/sh
++#
++#
++# NovaCompute agent manages compute daemons.
++#
++# Copyright (c) 2015
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of version 2 of the GNU General Public License as
++# published by the Free Software Foundation.
++#
++# This program is distributed in the hope that it would be useful, but
++# WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
++#
++# Further, this software is distributed without any warranty that it is
++# free of the rightful claim of any third person regarding infringement
++# or the like.  Any license provided herein, whether implied or
++# otherwise, applies only to this software file.  Patent licenses, if
++# any, provided herein do not apply to combinations of this program with
++# other software, or any other product whatsoever.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write the Free Software Foundation,
++# Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
++#
++
++#######################################################################
++# Initialization:
++
++###
++: ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/lib/heartbeat}
++. ${OCF_FUNCTIONS_DIR}/ocf-shellfuncs
++###
++
++: ${__OCF_ACTION=$1}
++
++#######################################################################
++
++meta_data() {
++	cat <<END
++<?xml version="1.0"?>
++<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
++<resource-agent name="NovaEvacuate" version="1.0">
++<version>1.0</version>
++
++<longdesc lang="en">
++Facility for tacking a list of compute nodes and reliably evacuating the ones that fence_evacuate has flagged.
++</longdesc>
++<shortdesc lang="en">Evacuator for OpenStack Nova Compute Server</shortdesc>
++
++<parameters>
++
++<parameter name="auth_url" unique="0" required="1">
++<longdesc lang="en">
++Authorization URL for connecting to keystone in admin context
++</longdesc>
++<shortdesc lang="en">Authorization URL</shortdesc>
++<content type="string" default="" />
++</parameter>
++
++<parameter name="username" unique="0" required="1">
++<longdesc lang="en">
++Username for connecting to keystone in admin context
++</longdesc>
++<shortdesc lang="en">Username</shortdesc>
++</parameter>
++
++<parameter name="password" unique="0" required="1">
++<longdesc lang="en">
++Password for connecting to keystone in admin context
++</longdesc>
++<shortdesc lang="en">Password</shortdesc>
++<content type="string" default="" />
++</parameter>
++
++<parameter name="tenant_name" unique="0" required="1">
++<longdesc lang="en">
++Tenant name for connecting to keystone in admin context.
++Note that with Keystone V3 tenant names are only unique within a domain.
++</longdesc>
++<shortdesc lang="en">Tenant name</shortdesc>
++<content type="string" default="" />
++</parameter>
++
++<parameter name="endpoint_type" unique="0" required="0">
++<longdesc lang="en">
++Nova API location (internal, public or admin URL)
++</longdesc>
++<shortdesc lang="en">Nova API location (internal, public or admin URL)</shortdesc>
++<content type="string" default="" />
++</parameter>
++
++<parameter name="no_shared_storage" unique="0" required="0">
++<longdesc lang="en">
++Disable shared storage recovery for instances. Use at your own risk!
++</longdesc>
++<shortdesc lang="en">Disable shared storage recovery for instances</shortdesc>
++<content type="boolean" default="0" />
++</parameter>
++
++</parameters>
++
++<actions>
++<action name="start"        timeout="20" />
++<action name="stop"         timeout="20" />
++<action name="monitor"      timeout="600" interval="10" depth="0"/>
++<action name="validate-all" timeout="20" />
++<action name="meta-data"    timeout="5" />
++</actions>
++</resource-agent>
++END
++}
++
++#######################################################################
++
++# don't exit on TERM, to test that lrmd makes sure that we do exit
++trap sigterm_handler TERM
++sigterm_handler() {
++	ocf_log info "They use TERM to bring us down. No such luck."
++	return
++}
++
++evacuate_usage() {
++	cat <<END
++usage: $0 {start|stop|monitor|validate-all|meta-data}
++
++Expects to have a fully populated OCF RA-compliant environment set.
++END
++}
++
++evacuate_stop() {
++    rm -f "$statefile"
++    return $OCF_SUCCESS
++}
++
++evacuate_start() {
++    touch "$statefile"
++    # Do not invole monitor here so that the start timeout can be low
++    return $?
++}
++
++update_evacuation() {
++    attrd_updater -p -n evacute -Q -N ${1} -v ${2}
++    arc=$?
++    if [ ${arc} != 0 ]; then
++	ocf_log warn "Can not set evacuation state of ${1} to ${2}: ${arc}"
++    fi
++    return ${arc}
++}
++
++handle_evacuations() {
++    while [ $# -gt 0 ]; do
++	node=$1 
++	state=$2
++	shift; shift;
++	need_evacuate=0
++
++	case $state in
++	    "") ;;
++	    no)  ocf_log debug "$node is either fine or already handled";;
++	    yes) need_evacuate=1;; 
++	    *@*)
++		where=$(echo $state | awk -F@ '{print $1}')
++		when=$(echo $state | awk -F@ '{print $2}')
++		now=$(date +%s)
++
++		if [ $(($now - $when)) -gt 60 ]; then
++		    ocf_log info "Processing partial evacuation of $node by $where at $when"		
++		    need_evacuate=1
++		else
++		    # Give some time for any in-flight evacuations to either complete or fail
++		    # Nova won't react well if there are two overlapping requests 
++		    ocf_log info "Deferring processing partial evacuation of $node by $where at $when"
++		fi
++		;;
++	esac
++
++	if [ $need_evacuate = 1 ]; then
++	    found=0
++	    ocf_log notice "Initiating evacuation of $node"
++
++	    for known in $(fence_compute ${fence_options} -o list | tr -d ','); do
++		if [ ${known} = ${node} ]; then
++		    found=1
++		    break
++		fi
++	    done
++
++	    if [ $found = 0 ]; then
++		ocf_log info "Nova does not know about ${node}"
++		# Dont mark as no because perhaps nova is unavailable right now
++		continue
++	    fi
++
++	    update_evacuation ${node} "$(uname -n)@$(date +%s)"
++	    if [ $? != 0 ]; then
++		return $OCF_SUCCESS
++	    fi
++
++	    fence_compute ${fence_options} -o reboot -n $node
++	    rc=$?
++
++	    if [ $rc = 0 ]; then
++		update_evacuation ${node} no
++		ocf_log notice "Completed evacuation of $node"
++	    else
++		ocf_log warn "Evacuation of $node failed: $rc"
++		update_evacuation ${node} yes
++	    fi
++	fi
++    done
++
++    return $OCF_SUCCESS
++}
++
++evacuate_monitor() {
++    if [ ! -f "$statefile" ]; then
++	return $OCF_NOT_RUNNING
++    fi
++
++    handle_evacuations $(attrd_updater -n evacute -A | tr '="' '  ' | awk '{print $4" "$6}')
++    return $OCF_SUCCESS
++}
++
++evacuate_validate() {
++    rc=$OCF_SUCCESS
++    fence_options=""
++
++    check_binary fence_compute
++
++    # Is the state directory writable? 
++    state_dir=$(dirname $statefile)
++    touch "$state_dir/$$"
++    if [ $? != 0 ]; then
++	ocf_exit_reason "Invalid state directory: $state_dir"
++	return $OCF_ERR_ARGS
++    fi
++    rm -f "$state_dir/$$"
++
++    if [ -z "${OCF_RESKEY_auth_url}" ]; then
++	   ocf_exit_reason "auth_url not configured"
++	   exit $OCF_ERR_CONFIGURED
++    fi
++
++    fence_options="${fence_options} -k ${OCF_RESKEY_auth_url}"
++
++    if [ -z "${OCF_RESKEY_username}" ]; then
++	   ocf_exit_reason "username not configured"
++	   exit $OCF_ERR_CONFIGURED
++    fi
++
++    fence_options="${fence_options} -l ${OCF_RESKEY_username}"
++
++    if [ -z "${OCF_RESKEY_password}" ]; then
++	   ocf_exit_reason "password not configured"
++	   exit $OCF_ERR_CONFIGURED
++    fi
++
++    fence_options="${fence_options} -p ${OCF_RESKEY_password}"
++
++    if [ -z "${OCF_RESKEY_tenant_name}" ]; then
++	   ocf_exit_reason "tenant_name not configured"
++	   exit $OCF_ERR_CONFIGURED
++    fi
++
++    fence_options="${fence_options} -t ${OCF_RESKEY_tenant_name}"
++
++    if [ -n "${OCF_RESKEY_no_shared_storage}" ]; then
++	if ocf_is_true "${OCF_RESKEY_no_shared_storage}"; then
++	    fence_options="${fence_options} --no-shared-storage"
++	fi
++    fi
++
++    if [ -n "${OCF_RESKEY_endpoint_type}" ]; then
++	case ${OCF_RESKEY_endpoint_type} in
++	    adminURL|publicURL|internalURL) ;;
++	    *)
++		ocf_exit_reason "endpoint_type ${OCF_RESKEY_endpoint_type} not valid. Use adminURL or publicURL or internalURL"
++		exit $OCF_ERR_CONFIGURED
++	    ;;
++	esac
++	fence_options="${fence_options} -e ${OCF_RESKEY_endpoint_type}"
++    fi
++
++    if [ $rc != $OCF_SUCCESS ]; then
++	exit $rc
++    fi
++    return $rc
++}
++
++statefile="${HA_RSCTMP}/${OCF_RESOURCE_INSTANCE}.active"
++
++case $__OCF_ACTION in
++start)		evacuate_validate; evacuate_start;;
++stop)		evacuate_stop;;
++monitor)	evacuate_validate; evacuate_monitor;;
++meta-data)	meta_data
++		exit $OCF_SUCCESS
++		;;
++usage|help)	evacuate_usage
++		exit $OCF_SUCCESS
++		;;
++validate-all)	exit $OCF_SUCCESS;;
++*)		evacuate_usage
++		exit $OCF_ERR_UNIMPLEMENTED
++		;;
++esac
++rc=$?
++ocf_log debug "${OCF_RESOURCE_INSTANCE} $__OCF_ACTION : $rc"
++exit $rc
+-- 
+1.8.4.2
+
diff --git a/SPECS/resource-agents.spec b/SPECS/resource-agents.spec
index bb77695..6897a29 100644
--- a/SPECS/resource-agents.spec
+++ b/SPECS/resource-agents.spec
@@ -32,7 +32,7 @@
 Name:		resource-agents
 Summary:	Open Source HA Reusable Cluster Resource Scripts
 Version:	3.9.5
-Release:	40%{?dist}.4
+Release:	40%{?dist}.6
 License:	GPLv2+ and LGPLv2+
 URL:		https://github.com/ClusterLabs/resource-agents
 %if 0%{?fedora} || 0%{?centos_version} || 0%{?rhel}
@@ -102,6 +102,8 @@ Patch57:	bz1118029-iscsi-remove-write-back.patch
 Patch58:	rabbitmq-cluster.patch
 Patch59:	bz1189187-redis-agent.patch
 Patch60:	NovaCompute.patch
+Patch61:	bz1214360-NovaCompute-update1.patch
+Patch62:	bz1170376-galera-no-readonly.patch
 
 Obsoletes:	heartbeat-resources <= %{version}
 Provides:	heartbeat-resources = %{version}
@@ -250,6 +252,8 @@ exit 1
 %patch58 -p1
 %patch59 -p1
 %patch60 -p1
+%patch61 -p1
+%patch62 -p1
 
 %build
 if [ ! -f configure ]; then
@@ -263,6 +267,7 @@ chmod 755 heartbeat/docker
 chmod 755 heartbeat/rabbitmq-cluster
 chmod 755 heartbeat/redis
 chmod 755 heartbeat/NovaCompute
+chmod 755 heartbeat/NovaEvacuate
 
 %if 0%{?fedora} >= 11 || 0%{?centos_version} > 5 || 0%{?rhel} > 5
 CFLAGS="$(echo '%{optflags}')"
@@ -497,6 +502,17 @@ ccs_update_schema > /dev/null 2>&1 ||:
 
 %changelog
 
+* Mon Jul 13 2015 David Vossel <dvossel@redhat.com> - 3.9.5-40.6
+- Improve galera resource-agent to not require use of read-only
+  mode to retrieve last known write sequence number.
+
+  Resolves: rhbz#1242339
+
+* Mon Jul 6 2015 David Vossel <dvossel@redhat.com> - 3.9.5-40.5
+- NovaCompute and NovaEvacuate updates
+
+  Resolves: rhbz#1238716
+
 * Thu Jun 11 2015 David Vossel <dvossel@redhat.com> - 3.9.5-40.4
 - Support for NovaCompute resource-agent