[Gluster-devel] Replacement mount.glusterfs
Anand Avati
avati at zresearch.com
Wed Dec 12 06:52:02 UTC 2007
Michael,
thanks for the enhancement, this will go in my next commit.
thanks!
avati
2007/9/27, Michael Fincham <michael at unleash.co.nz>:
>
> Hi all,
>
> Have added a -o direct-io-mode=blah as an option and tweaked a couple of
> other (minor) things. Notably -o options may now be passed in any case.
> This adds a dependency on printf and tr but these are both in coreutils so
> can't be worse than sed ;)
>
> Script follows:
>
> #!/bin/sh
> # (C) 2006 Gluster core team <http://www.gluster.org/>
> #
> # This program is free software; you can redistribute it and/or
> # modify it under the terms of the GNU General Public License as
> # published by the Free Software Foundation; either version 2 of
> # the License, or (at your option) any later version.
> #
> # This program is distributed in the hope that it will be useful,
> # but WITHOUT ANY WARRANTY; without even the implied warranty of
> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> # GNU General Public License for more details.
> #
> # You should have received a copy of the GNU General Public
> # License along with this program; if not, write to the Free
> # Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
> # Boston, MA 02110-1301 USA
>
> _init ()
> {
> # log level definitions
> LOG_NONE=NONE;
> LOG_CRITICAL=CRITICAL;
> LOG_ERROR=ERROR;
> LOG_WARNING=WARNING;
> LOG_DEBUG=DEBUG;
>
> # direct io definitions
> DIO_ENABLE="ENABLE";
> DIO_DISABLE="DISABLE";
>
> # set default log level to ERROR
> log_level_default=$LOG_ERROR;
>
> # set default direct-io-mode to ENABLE
> direct_io_mode_default=$DIO_ENABLE;
>
> direct_io_mode=$direct_io_mode_default;
> log_level=$log_level_default;
> }
>
> start_glusterfs ()
> {
> prefix="/usr";
> exec_prefix=${prefix};
> cmd_line=$(echo "${exec_prefix}/sbin/glusterfs");
>
> if [ -n "$direct_io_mode_str" ]; then
> case "$( printf "%s\n" "$direct_io_mode_str" | tr '[A-Z]' '[a-z]'
> )" in
> "enable")
> direct_io_mode=$DIO_ENABLE;
> ;;
> "disable")
> direct_io_mode=$DIO_DISABLE;
> ;;
> *)
> echo "invalid direct-io setting '$direct_io_mode_str',
> using default '$direct_io_mode_default'";
> direct_io_mode=$direct_io_mode_default;
> ;;
> esac
> fi
>
> if [ -n "$log_level_str" ]; then
> case "$( printf "%s\n" "$log_level_str" | tr '[A-Z]' '[a-z]' )" in
> "error")
> log_level=$LOG_ERROR;
> ;;
> "debug")
> log_level=$LOG_DEBUG;
> ;;
> "critical")
> log_level=$LOG_CRITICAL;
> ;;
> "warning")
> log_level=$LOG_WARNING;
> ;;
> "none")
> log_level=$LOG_NONE;
> ;;
> *)
> echo "invalid log level '$log_level_str', using default
> '$log_level_default'";
> log_level=$log_level_default;
> ;;
> esac
> fi
> cmd_line=$(echo "$cmd_line --log-level=$log_level
> --direct-io-mode=$direct_io_mode ");
>
> if [ -n "$log_file" ]; then
> cmd_line=$(echo "$cmd_line --log-file=$log_file");
> fi
>
> if [ -z "$spec_location" ]; then
> cmd_line=$(echo "$cmd_line \
> --server=$spec_server_ip \
> --port=$spec_server_port");
> else
> cmd_line=$(echo "$cmd_line --spec-file=$spec_location");
> fi
>
> cmd_line=$(echo "$cmd_line $mount_point");
> exec $cmd_line;
> }
>
>
> main ()
> {
> options=$(echo "$@" | sed -n 's/.*\-o[ ]*\([^ ]*\).*/\1/p');
> new_log_level=$(echo "$options" | sed -n
> 's/.*log-level=\([^,]*\).*/\1/p');
>
> [ -n "$new_log_level" ] && {
> log_level_str="$new_log_level";
> }
> log_file=$(echo "$options" | sed -n 's/.*log-file=\([^,]*\).*/\1/p');
>
> direct_io_mode_str=$(echo "$options" | sed -n
> 's/.*direct-io-mode=\([^,]*\).*/\1/p');
>
> spec_location="$1";
>
> [ -r "$spec_location" ] || {
> spec_server_ip=$(echo "$spec_location" | sed -n
> 's/\([^\:]*\).*/\1/p');
> spec_server_port=$(echo "$spec_location" | sed -n 's/.*:\([^
> ]*\).*/\1/p');
> [ -n "$spec_server_port" ] || {
> spec_server_port="6996";
> }
>
> spec_location="";
> }
> new_fs_options=$(echo "$options" | sed -e 's/[,]*log-file=[^,]*//' \
> -e 's/[,]*log-level=[^,]*//' \
> -e
> 's/[,]*direct-io-mode=[^,]*//'
> \
> -e 's/[,]*spec=[^,]*//');
> # following line is product of love towards sed
> # $2=$(echo "$@" | sed -n 's/[^ ]* \([^ ]*\).*/\1/p');
>
> mount_point="$2";
>
> fs_options=$(echo "$fs_options,$new_fs_options");
>
> start_glusterfs;
> }
>
> _init "$@" && main "$@";
>
>
>
>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at nongnu.org
> http://lists.nongnu.org/mailman/listinfo/gluster-devel
>
--
If I traveled to the end of the rainbow
As Dame Fortune did intend,
Murphy would be there to tell me
The pot's at the other end.
More information about the Gluster-devel
mailing list