diff --git a/cts/lxc_autogen.sh.in b/cts/lxc_autogen.sh.in
index 50e0cd5fdd..1e48f5de6f 100755
--- a/cts/lxc_autogen.sh.in
+++ b/cts/lxc_autogen.sh.in
@@ -1,288 +1,307 @@
 #!/bin/bash
 
 containers="2"
 download=0
 # different than default libvirt network in case this is run nested in a KVM instance
 addr="192.168.123.1"
 restore=0
 restore_pcmk=0
 generate=0
 cib=0
 add_clone=0
+verify=0
 working_dir="@CRM_CONFIG_CTS@/lxc"
 curdir=$(pwd)
 
 function helptext() {
 	echo "lxc_autogen.sh - A tool for generating libvirt lxc containers for testing purposes."
 	echo ""
 	echo "Usage: lxc-autogen [options]"
 	echo ""
 	echo "Options:"
 	echo "-g, --generate         Generate libvirt lxc environment in the directory this script is run from."
 	echo "-r, --restore-libvirt  Restore the default network, and libvirt config to before this script ran."
 	echo "-p, --restore-cib      Remove cib entries this script generated."
 	echo ""
 	echo "-a, --add-cib          Add remote-node entries for each lxc instance into the cib"
 	echo "-m, --add-clone        Add clone resource shared between remote-nodes"
 	echo "-d, --download-agent   Download and install the latest VirtualDomain agent."
 	echo "-c, --containers       Specify the number of containers to generate, defaults to $containers. Used with -g"
 	echo "-n, --network          What network to override default libvirt network to. Example: -n 192.168.123.1. Used with -g"
+	echo "-v, --verify           Verify environment is capable of running lxc"
 	echo ""
     exit $1
 }
 
 while true ; do
 	case "$1" in
 	--help|-h|-\?) helptext 0;;
 	-c|--containers) containers="$2"; shift; shift;;
 	-d|--download-agent) download=1; shift;;
 	-n|--network) addr="$2"; shift; shift;;
 	-r|--restore-libvirt) restore=1; shift;;
 	-p|--restore-cib) restore_pcmk=1; shift;;
 	-g|--generate) generate=1; shift;;
 	-a|--add-cib) cib=1; shift;;
 	-m|--add-clone) add_clone=1; shift;;
+	-v|--verify) verify=1; shift;;
 	"") break;;
 	*) helptext 1;;
 	esac
 done
 
+if [ $verify -eq 1 ]; then
+	# verify virsh tool is available and that 
+	# we can connect to lxc driver.
+	virsh -c lxc:/// list --all > /dev/null 2>&1
+	if [ $? -ne 0 ]; then
+		echo "Could not connect 'virsh -c lxc:///' check that libvirt lxc driver is installed"
+		exit 1
+	fi
+
+	cat /etc/selinux/config  | grep -e "SELINUX.*=.*permissive" -e "SELINUX.*=.*enforcing" > /dev/null 2>&1
+	if [ $? -ne 0 ]; then
+		echo "/etc/selinux/config must have SELINUX set to permissive or enforcing mode."
+		exit 1
+	fi
+fi
+
 #strip last digits off addr
 tmp="s/\.$(echo "$addr" | tr '.' ' ' | awk '{print $4}')$//g"
 addr=$(echo $addr | sed -e ${tmp})
 
 set_network()
 {
 	rm -f cur_network.xml
 	cat << END >> cur_network.xml
 
   default
   41ebdb84-7134-1111-a136-91f0f1119225
   
   
   
   
     
       
     
   
 
 END
 
 	ls restore_default.xml > /dev/null 2>&1
 	if [ $? -ne 0 ]; then
 		virsh net-dumpxml default > restore_default.xml
 	fi
 	virsh net-destroy default
 	virsh net-undefine default
 	virsh net-define cur_network.xml
 	virsh net-start default
 }
 
 generate()
 {
 	set_network
 
 	#generate pacemaker remote key
 	ls /etc/pacemaker/authkey > /dev/null 2>&1
 	if [ $? != 0 ]; then
 			mkdir -p /etc/pacemaker
 			dd if=/dev/urandom of=/etc/pacemaker/authkey bs=4096 count=1
 	fi
 
 	# Generate libvirt domains in xml
 	for (( c=1; c <= $containers; c++ ))
 	do
 		rm -rf lxc$c-filesystem
 		mkdir -p lxc$c-filesystem/var/run/
 		mkdir -p lxc$c-filesystem/usr/var/run
 		rm -f lxc$c.xml
 		cat << END >> lxc$c.xml
 
   lxc$c
   102400
   
     exe
     $working_dir/lxc$c-filesystem/launch-helper
   
   
     
     
       
       
     
     
       
       
     
     
       
       
     
   
 
 END
 		rm -f container$c.cib
 		cat << END >> container$c.cib
       
         
           
           
           
           
         
         
           
           
         
         
           
         
       
 END
 
 		rm -f lxc-ms$c.cib
 		cat << END >> lxc-ms.cib
       
         
           
           
             
           
         
         
           
         
       
 END
 
 		rm -f lxc$c-filesystem/launch-helper
 		cat << END >> lxc$c-filesystem/launch-helper
 #!/bin/bash
 ifconfig eth0 $addr.10$c
 route add 0.0.0.0 gw $addr.1 eth0
 /usr/sbin/pacemaker_remoted
 END
 		chmod 711 lxc$c-filesystem/launch-helper
 
 		cat << END >> /etc/hosts
 $addr.10$c     lxc$c
 END
 	done
 }
 
 apply_cib_clone()
 {
 	cibadmin -Q > cur.cib
 	export CIB_file=cur.cib
 
 	cibadmin -o resources -C -x lxc-ms.cib
 	for tmp in $(ls lxc*.xml); do
 		tmp=$(echo $tmp | sed -e 's/\.xml//g')
 		echo "" > tmp_constraint
 		cibadmin -o constraints -C -x tmp_constraint
 		echo "" > tmp_constraint
 		cibadmin -o constraints -C -x tmp_constraint
 		rm -f tmp_constraint
 	done
 	unset CIB_file
 
 	cibadmin --replace --xml-file cur.cib
 	rm -f cur.cib
 }
 
 apply_cib_entries()
 {
 	node=$(crm_node -n)
 
 	cibadmin -Q > cur.cib
 	export CIB_file=cur.cib
 	for tmp in $(ls container*.cib); do
 		cibadmin -o resources -C -x $tmp
 
 		tmp=$(echo $tmp | sed -e 's/\.cib//g')
 		crm_resource -M -r $tmp -H $node
 	done
 	unset CIB_file
 
 	cibadmin --replace --xml-file cur.cib
 	rm -f cur.cib
 }
 
 restore_cib()
 {
 	node=$(crm_node -n)
 	cibadmin -Q > cur.cib
 	export CIB_file=cur.cib
 
 	for tmp in $(ls lxc*.xml); do
 		tmp=$(echo $tmp | sed -e 's/\.xml//g')
 		echo "" > tmp_constraint
 		cibadmin -o constraints -D -x tmp_constraint
 		echo "" > tmp_constraint
 		cibadmin -o constraints -D -x tmp_constraint
 		rm -f tmp_constraint
 	done
 	cibadmin -o resources -D -x lxc-ms.cib
 
 	for tmp in $(ls container*.cib); do
 		tmp=$(echo $tmp | sed -e 's/\.cib//g')
 		crm_resource -U -r $tmp -H $node
 		crm_resource -D -r $tmp -t primitive
 	done
 	unset CIB_file
 
 	cibadmin --replace --xml-file cur.cib
 	rm -f  cur.cib 
 }
 
 restore_libvirt()
 {
 	for tmp in $(ls lxc*.xml); do
 		tmp=$(echo $tmp | sed -e 's/\.xml//g')
 		virsh -c lxc:/// destroy $tmp > /dev/null 2>&1
 		virsh -c lxc:/// undefine $tmp > /dev/null 2>&1
 
 		sed -i.bak "/...\....\....\..* ${tmp}/d" /etc/hosts
 		echo "$tmp destroyed"
 	done
 
 	ls restore_default.xml > /dev/null 2>&1
 	if [ $? -eq 0 ]; then
 		virsh net-destroy default > /dev/null 2>&1
 		virsh net-undefine default > /dev/null 2>&1
 		virsh net-define restore_default.xml
 		virsh net-start default
 		if [ $? -eq 0 ]; then
 			echo "default network restored"
 		fi
 	fi
 	rm -f restore_default.xml > /dev/null 2>&1 
 }
 
 mkdir -p $working_dir
 cd $working_dir
 
 if [ $download -eq 1 ]; then
 	wget https://raw.github.com/ClusterLabs/resource-agents/master/heartbeat/VirtualDomain
 	chmod 755 VirtualDomain
 	mv -f VirtualDomain /usr/lib/ocf/resource.d/heartbeat/VirtualDomain
 fi
 if [ $restore_pcmk -eq 1 ]; then
 	restore_cib
 fi
 if [ $restore -eq 1 ]; then
 	restore_libvirt
 fi
 if [ $generate -eq 1 ]; then
 	generate
 fi
 if [ $cib -eq 1 ]; then
 	apply_cib_entries
 fi
 if [ $add_clone -eq 1 ]; then
 	apply_cib_clone
 fi
 
 cd $curdir