-
#!/bin/bash
##
function usage(){
- echo -e "\nUsage: $0 --user <user> --ip=<X.X.X.X> --cores=<core_number> --huge-pages-1G=<huga_pages_number> --nb-10GB-interfaces==<interface_number>"
+ echo -e "\nUsage: $0 --user-name <user> --ip=<X.X.X.X> --cores=<core_number> --huge-pages-1G=<huga_pages_number> --nb-10GB-interfaces==<interface_number>"
echo -e "Generate a develop host yaml to be used for openvim host-add\n"
- echo -e " --user -u <user> Server OAM Ip"
- echo -e " --ip -i <ip> Server hostname"
- echo -e " --cores -c <cores> Numa Cores available must be an odd number and bigger or equal to 4."
+ echo -e " --user-name -u <user>* Server OAM Ip"
+ echo -e " --ip -i <ip>* Server hostname"
+ echo -e " --cores -c <cores> Numa Cores available must be an odd number and bigger or equal to 4."
echo -e " --huge-pages-1G -hp <huge_pages_number> Must be an odd number and bigger or equal to 16. 4GiB of memory will be reserved for the host OS, the rest will be used by VM."
echo -e " --nb-10GB-interfaces -ni <nb-10GB-interfaces> Dataplane interfaces must be an odd number and bigger or equal to 4."
+ echo -e " * Mandatory arguments"
echo -e "\n"
echo -e "The output will be a server descriptor with two numas and resources (memory, cores and interfaces) equally distributed between them."
echo -e "Each interface (physical funtion) will have defined 8 SR-IOV (virtual functions)."
- echo -e "\n"
+
exit 1
}
fi
#User argument
- [ -z "$option_user" ] && echo -e "ERROR: User argument is mandatory, --user=<user>\n" && usage
- USER=${option_user}
+ [ -z "$option_user_name" ] && echo -e "ERROR: User argument is mandatory, --user-name=<user>\n" && usage
+ USER_NAME=${option_user_name}
[ -z "$option_ip" ] && echo -e "ERROR: OAM IP argument is mandatory, --ip=<X.X.X.X>\n" && usage
IP=${option_ip}
echo2file
echo2file "host:"
echo2file " name: $HOST_NAME"
- echo2file " user: $USER"
+ echo2file " user: $USER_NAME"
echo2file " ip_name: $IP"
echo2file "host-data:"
echo2file " name: $HOST_NAME"
- echo2file " user: $USER"
+ echo2file " user: $USER_NAME"
echo2file " ip_name: $IP"
echo2file " ranking: 100"
echo2file " description: $HOST_NAME"
function _get_opts()
{
- [[ ${BASH_SOURCE[0]} != $0 ]] && ___exit="return" || ___exit="exit"
-
options="$1"
shift
shift
if [[ -n $get_argument ]]
then
- [[ ${argument:0:1} == "-" ]] && echo "option '-$option' requires an argument" >&2 && $___exit 1
+ [[ ${argument:0:1} == "-" ]] && echo "option '-$option' requires an argument" >&2 && return 1
eval ${get_argument}='"$argument"'
#echo option $get_argument with argument
get_argument=""
fi
done
done
- [[ $bad_option == y ]] && echo "invalid argument '-$option'? Type -h for help" >&2 && $___exit 1
+ [[ $bad_option == y ]] && echo "invalid argument '-$option'? Type -h for help" >&2 && return 1
done
elif [[ ${argument:0:2} == "--" ]] && [[ ${#argument} -ge 3 ]]
then
bad_option=n
if [[ ${option_group:${#option_group}-1} != "=" ]]
then #not an argument
- [[ -n "${option_argument}" ]] && echo "option '--${option%%=*}' do not accept an argument " >&2 && $___exit 1
+ [[ -n "${option_argument}" ]] && echo "option '--${option%%=*}' do not accept an argument " >&2 && return 1
eval option_${_name}='"${option_'${_name}'}-"'
elif [[ -n "${option_argument}" ]]
then
fi
done
done
- [[ $bad_option == y ]] && echo "invalid argument '-$option'? Type -h for help" >&2 && $___exit 1
+ [[ $bad_option == y ]] && echo "invalid argument '-$option'? Type -h for help" >&2 && return 1
elif [[ ${argument:0:2} == "--" ]]
then
option__="$*"
break
fi
done
- [[ $bad_option == y ]] && echo "invalid argument '--'? Type -h for help" >&2 && $___exit 1
+ [[ $bad_option == y ]] && echo "invalid argument '--'? Type -h for help" >&2 && return 1
break
else
params="$params ${argument}"
done
- [[ -n "$get_argument" ]] && echo "option '-$option' requires an argument" >&2 && $___exit 1
- $___exit 0
-
+ [[ -n "$get_argument" ]] && echo "option '-$option' requires an argument" >&2 && return 1
+ return 0
}
-#check root privileges and non a root user behind
-[ "${USER}" != "root" ] && echo "Needed root privileges" && _usage && exit -1
-
#process options
DIRNAME=$(readlink -f ${BASH_SOURCE[0]})
DIRNAME=$(dirname $DIRNAME)
#source ${DIRNAME}/get-options.sh "help:h user:u= ip:i= cores:c= huge-pages-1G:hp= nb-10GB-interfaces:ni=" $*
-_get_opts "help:h user:u= ip:i= cores:c= huge-pages-1G:hp= nb-10GB-interfaces:ni=" $*
+_get_opts "help:h user-name:u= ip:i= cores:c= huge-pages-1G:hp= nb-10GB-interfaces:ni=" $* || exit 1
_parse_opts
+#check root privileges
+[ "${USER}" != "root" ] && echo "Needed root privileges" >&2 && exit 2
+#check root privileges and non a root user behind
+
+
HOST_NAME=`cat /etc/hostname`
_generate_compute_develope_yaml