diff --git a/deployment_scripts/user_scripts/start_sriov_vm b/deployment_scripts/user_scripts/start_sriov_vm index 462dce0..3f7e8ba 100755 --- a/deployment_scripts/user_scripts/start_sriov_vm +++ b/deployment_scripts/user_scripts/start_sriov_vm @@ -14,14 +14,57 @@ # See the License for the specific language governing permissions and # limitations under the License. +usage() { + echo "Usage: `basename $0` [-f vm_flavor | -h]" + echo " This script is used to start a VM with a flavor using SR-IOV image." + echo " before starting the VM, make sure the SRIOV image is uploaded," + echo " please use upload_sriov_image script." + + echo " + Options: + -h Display the help message. + -f Create SR-IOV VM with direct port. + " +} + +while getopts ":f:h" opt; do + case $opt in + h) + usage + exit 0 + ;; + f) + flavor="${OPTARG}" + logger_print info "SRIOV image flavor $flavor" + ;; + [?]) + usage + exit 1 + ;; + esac +done + +if [ -z $flavor ] +then + echo "ERROR: -f or -h must be included when a calling this script" >&2 + usage + exit 1 +fi + . /root/openrc glance_line=`glance image-list | grep mellanox` if [[ $glance_line == *mellanox* ]]; then SRIOV_IMAGE=`echo $glance_line | head -n 1 | awk '{print $2}'` port_id=`neutron port-create admin_internal_net --name sriov_port --vnic-type direct | grep " id " | awk '{print $4}'` - nova boot --flavor m1.tiny --image $SRIOV_IMAGE --nic port-id=$port_id "sriov_vm-$port_id" - exit 0 + nova boot --flavor ${flavor} --image $SRIOV_IMAGE --nic port-id=$port_id "sriov_vm-$port_id" + if [ $? -ne 0 ]; then + logger_print error "Starting VM with SR-IOV support failed." + exit 1 + else + logger_print info "SR-IOV VM was successfully started." + exit 0 + fi else - echo "No Mellanox SR-IOV cirros found. Please use 'upload_sriov_cirros' script" + echo "No Mellanox SR-IOV image was found. Please use 'upload_sriov_image' script" exit 1 fi diff --git a/deployment_scripts/user_scripts/upload_sriov_cirros b/deployment_scripts/user_scripts/upload_sriov_cirros deleted file mode 100755 index 1cfbbf4..0000000 --- a/deployment_scripts/user_scripts/upload_sriov_cirros +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash -# Copyright 2015 Mellanox Technologies, Ltd -# -# 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. - -source /sbin/common - -function install_cirros() { - if [ $DISTRO == 'redhat' ]; then - yum install -y $1 - elif [ $DISTRO == 'ubuntu' ]; then - apt-get install -y $1 - fi -} - -if [ $SRIOV == false ]; then - logger_print info "Skipping cirros image installation, Mellanox-Cirros is required - only for SR-IOV deployments" - exit 0 -fi - -if [ $DRIVER == 'eth_ipoib' ]; then - CIRROS_PACKAGE_NAME='cirros-testvm-mellanox-ib' -else - CIRROS_PACKAGE_NAME='cirros-testvm-mellanox' -fi - -puppet apply -e 'package { "cirros-testvm": ensure => absent }' && -puppet apply -e 'package { "cirros-testvm-mellanox": ensure => absent }' && -puppet apply -e 'package { "cirros-testvm-mellanox-ib": ensure => absent }' && -install_cirros $CIRROS_PACKAGE_NAME && -. /root/openrc && -glance image-create \ - --name $CIRROS_PACKAGE_NAME \ - --disk-format=qcow2 \ - --container-format=bare \ - --visibility public \ - --progress \ - --file /usr/share/cirros-testvm/cirros-x86_64-disk.img >> /var/log/mellanox-plugin.log - -if [ $? -ne 0 ]; then - logger_print error "Installing Cirros image with Mellanox SR-IOV support failed" - exit 1 -else - logger_print info "Cirros mellanox SR-IOV image was successfully installed" - exit 0 -fi diff --git a/deployment_scripts/user_scripts/upload_sriov_image b/deployment_scripts/user_scripts/upload_sriov_image new file mode 100755 index 0000000..21a4f21 --- /dev/null +++ b/deployment_scripts/user_scripts/upload_sriov_image @@ -0,0 +1,71 @@ +#!/bin/bash +# Copyright 2015 Mellanox Technologies, Ltd +# +# 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. + +source /sbin/common + +usage() { + echo "Usage: `basename $0` [-f file_location | -h]" + echo " This script is used to upload SR-IOV image." + echo " after uploading the image, please use start_sriov_vm script" + echo " in order to test SR-IOV functionality in Openstack." + + echo " + Options: + -h Display the help message. + -f Upload SR-IOV test image, located in location + " +} + +while getopts ":f:h" opt; do + case $opt in + h) + usage + exit 0 + ;; + f) + file="${OPTARG}" + logger_print info "Uploading $file" + ;; + [?]) + usage + exit 1 + ;; + esac +done + +if [ -z $file ] +then + echo "ERROR: -f or -h must be included when a calling this script" >&2 + usage + exit 1 +fi + +. /root/openrc && +glance image-create \ + --name "mellanox_sriov" \ + --disk-format=qcow2 \ + --container-format=bare \ + --visibility public \ + --progress \ + --file $file >> /var/log/mellanox-plugin.log + +if [ $? -ne 0 ]; then + logger_print error "Installing image with SR-IOV support failed." + exit 1 +else + logger_print info "SR-IOV image was successfully installed." + exit 0 +fi