 5b2648aec3
			
		
	
	5b2648aec3
	
	
	
		
			
			- We no longer need to setup Tempest in a virtual environment since that is now handled by tox - Do not explicitely require python-openstackclient since that is now handled by puppet-tempest since https://review.openstack.org/301162 - Setup packstack to consume Mitaka repositories and OPM until Newton is actively tested - Make swap configuration consistent - Add an empty other-requirements.txt file to prevent the openstack gate environment to pre-install dependencies for us; these are installed within run_tests.sh - Enforce locale, seems necessary since the switch to the new centos7 images in the openstack-infra gate Co-Authored-By: David Moreau Simard <dms@redhat.com> Co-Authored-By: Javier Peña <jpena@redhat.com> Change-Id: I80813ee9404a3cbc837d0d9810855fb13c0d904b
		
			
				
	
	
		
			98 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | |
| # Copyright (C) 2016 OpenStack Foundation
 | |
| #
 | |
| # Licensed under the Apache License, Version 2.0 (the "License");
 | |
| # you may not use this file except in compliance with the License.
 | |
| # You may obtain a copy of the License at
 | |
| #
 | |
| #    http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing, software
 | |
| # distributed under the License is distributed on an "AS IS" BASIS,
 | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 | |
| # implied.
 | |
| #
 | |
| # See the License for the specific language governing permissions and
 | |
| # limitations under the License.
 | |
| 
 | |
| # Don't attempt to fix disk layout more than once
 | |
| [[ -e /etc/fixed_disk_layout ]] && return 0 || sudo touch /etc/fixed_disk_layout
 | |
| 
 | |
| # Ensure virtual machines from different providers all have at least 8GB of
 | |
| # swap.
 | |
| # Use an ephemeral disk if there is one or create and use a swapfile.
 | |
| # Rackspace also doesn't have enough space on / for two devstack installs,
 | |
| # so we partition the disk and mount it on /opt, syncing the previous
 | |
| # contents of /opt over.
 | |
| SWAPSIZE=8192
 | |
| swapcurrent=$(( $(grep SwapTotal /proc/meminfo | awk '{ print $2; }') / 1024 ))
 | |
| 
 | |
| if [[ $swapcurrent -lt $SWAPSIZE ]]; then
 | |
|     if [ -b /dev/xvde ]; then
 | |
|         DEV='/dev/xvde'
 | |
|     else
 | |
|         EPHEMERAL_DEV=$(blkid -L ephemeral0 || true)
 | |
|         if [ -n "$EPHEMERAL_DEV" -a -b "$EPHEMERAL_DEV" ]; then
 | |
|             DEV=$EPHEMERAL_DEV
 | |
|         fi
 | |
|     fi
 | |
|     if [ -n "$DEV" ]; then
 | |
|         # If an ephemeral device is available, use it
 | |
|         swap=${DEV}1
 | |
|         lvmvol=${DEV}2
 | |
|         optdev=${DEV}3
 | |
|         if mount | grep ${DEV} > /dev/null; then
 | |
|             echo "*** ${DEV} appears to already be mounted"
 | |
|             echo "*** ${DEV} unmounting and reformating"
 | |
|             sudo umount ${DEV}
 | |
|         fi
 | |
|         sudo parted ${DEV} --script -- mklabel msdos
 | |
|         sudo parted ${DEV} --script -- mkpart primary linux-swap 1 ${SWAPSIZE}
 | |
|         sudo parted ${DEV} --script -- mkpart primary ext2 8192 -1
 | |
|         sudo mkswap ${DEV}1
 | |
|         sudo mkfs.ext4 ${DEV}2
 | |
|         sudo swapon ${DEV}1
 | |
|         sudo mount ${DEV}2 /mnt
 | |
|         sudo find /opt/ -mindepth 1 -maxdepth 1 -exec mv {} /mnt/ \;
 | |
|         sudo umount /mnt
 | |
|         sudo mount ${DEV}2 /opt
 | |
| 
 | |
|         # Sanity check
 | |
|         grep -q ${DEV}1 /proc/swaps || exit 1
 | |
|         grep -q ${DEV}2 /proc/mounts || exit 1
 | |
|     else
 | |
|         # If no ephemeral devices are available, use root filesystem
 | |
|         # Don't use sparse device to avoid wedging when disk space and
 | |
|         # memory are both unavailable.
 | |
|         swapfile='/root/swapfile'
 | |
|         swapdiff=$(( $SWAPSIZE - $swapcurrent ))
 | |
| 
 | |
|         sudo dd if=/dev/zero of=${swapfile} bs=1M count=${swapdiff}
 | |
|         sudo chmod 600 ${swapfile}
 | |
|         sudo mkswap ${swapfile}
 | |
|         sudo swapon ${swapfile}
 | |
| 
 | |
|         # Sanity check
 | |
|         grep -q ${swapfile} /proc/swaps || exit 1
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| # dump vm settings for reference (Ubuntu 12 era procps can get
 | |
| # confused with certain proc trigger nodes that are write-only and
 | |
| # return a EPERM; ignore this)
 | |
| sudo sysctl vm || true
 | |
| 
 | |
| # ensure a standard level of swappiness.  Some platforms
 | |
| # (rax+centos7) come with swappiness of 0 (presumably because the
 | |
| # vm doesn't come with swap setup ... but we just did that above),
 | |
| # which depending on the kernel version can lead to the OOM killer
 | |
| # kicking in on some processes despite swap being available;
 | |
| # particularly things like mysql which have very high ratio of
 | |
| # anonymous-memory to file-backed mappings.
 | |
| 
 | |
| # make sure reload of sysctl doesn't reset this
 | |
| sudo sed -i '/vm.swappiness/d' /etc/sysctl.conf
 | |
| # This sets swappiness low; we really don't want to be relying on
 | |
| # cloud I/O based swap during our runs
 | |
| sudo sysctl -w vm.swappiness=10
 |