LGTM, thanks

On Fri, Oct 24, 2014, 1:32 PM 'Petr Pudlak' via ganeti-devel <
[email protected]> wrote:

> The script does the bare minimum required to set up the interface during
> instance creation. The rest of the process is carried out by the ifup-os
> script.
>
> Signed-off-by: Petr Pudlak <[email protected]>
> ---
>  .gitignore                |  1 +
>  Makefile.am               |  7 +++++
>  lib/pathutils.py          |  2 ++
>  tools/vif-ganeti-metad.in | 70 ++++++++++++++++++++++++++++++
> +++++++++++++++++
>  4 files changed, 80 insertions(+)
>  create mode 100644 tools/vif-ganeti-metad.in
>
> diff --git a/.gitignore b/.gitignore
> index bbc5402..a84642f 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -123,6 +123,7 @@
>  /tools/users-setup
>  /tools/vcluster-setup
>  /tools/vif-ganeti
> +/tools/vif-ganeti-metad
>  /tools/net-common
>  /tools/node-cleanup
>  /tools/node-daemon-setup
> diff --git a/Makefile.am b/Makefile.am
> index b95f668..9b4367d 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -295,6 +295,7 @@ CLEANFILES = \
>         tools/kvm-ifup-os \
>         tools/xen-ifup-os \
>         tools/vif-ganeti \
> +       tools/vif-ganeti-metad \
>         tools/net-common \
>         tools/users-setup \
>         tools/vcluster-setup \
> @@ -1310,6 +1311,7 @@ myexeclib_SCRIPTS = \
>         tools/kvm-ifup-os \
>         tools/xen-ifup-os \
>         tools/vif-ganeti \
> +       tools/vif-ganeti-metad \
>         tools/net-common \
>         $(HS_MYEXECLIB_PROGS)
>
> @@ -1349,6 +1351,7 @@ EXTRA_DIST = \
>         tools/kvm-ifup.in \
>         tools/ifup-os.in \
>         tools/vif-ganeti.in \
> +       tools/vif-ganeti-metad.in \
>         tools/net-common.in \
>         tools/vcluster-setup.in \
>         $(docinput) \
> @@ -1863,6 +1866,10 @@ tools/vif-ganeti: tools/vif-ganeti.in
> $(REPLACE_VARS_SED)
>         sed -f $(REPLACE_VARS_SED) < $< > $@
>         chmod +x $@
>
> +tools/vif-ganeti-metad: tools/vif-ganeti-metad.in $(REPLACE_VARS_SED)
> +       sed -f $(REPLACE_VARS_SED) < $< > $@
> +       chmod +x $@
> +
>  tools/net-common: tools/net-common.in $(REPLACE_VARS_SED)
>         sed -f $(REPLACE_VARS_SED) < $< > $@
>         chmod +x $@
> diff --git a/lib/pathutils.py b/lib/pathutils.py
> index a5a9a0b..0e02142 100644
> --- a/lib/pathutils.py
> +++ b/lib/pathutils.py
> @@ -69,6 +69,8 @@ XEN_CONSOLE_WRAPPER = _constants.PKGLIBDIR +
> "/tools/xen-console-wrapper"
>  CFGUPGRADE = _constants.PKGLIBDIR + "/tools/cfgupgrade"
>  POST_UPGRADE = _constants.PKGLIBDIR + "/tools/post-upgrade"
>  ENSURE_DIRS = _constants.PKGLIBDIR + "/ensure-dirs"
> +# Script to configure the metadata virtual network interface with Xen
> +XEN_VIF_METAD_SETUP = _constants.PKGLIBDIR + "/vif-ganeti-metad"
>  ETC_HOSTS = vcluster.ETC_HOSTS
>
>  # Top-level paths
> diff --git a/tools/vif-ganeti-metad.in b/tools/vif-ganeti-metad.in
> new file mode 100644
> index 0000000..092b6a0
> --- /dev/null
> +++ b/tools/vif-ganeti-metad.in
> @@ -0,0 +1,70 @@
> +#!/bin/sh
> +#
> +
> +# Copyright (C) 2014 Google Inc.
> +# All rights reserved.
> +#
> +# Redistribution and use in source and binary forms, with or without
> +# modification, are permitted provided that the following conditions are
> +# met:
> +#
> +# 1. Redistributions of source code must retain the above copyright
> notice,
> +# this list of conditions and the following disclaimer.
> +#
> +# 2. Redistributions in binary form must reproduce the above copyright
> +# notice, this list of conditions and the following disclaimer in the
> +# documentation and/or other materials provided with the distribution.
> +#
> +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
> +# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
> +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
> PARTICULAR
> +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
> +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
> +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
> +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
> +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
> +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
> +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
> +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> +
> +# This Xen vif setup script does the bare minimum required to set up the
> +# interface during instance creation. The rest of the process is carried
> out by
> +# the ifup-os script.
> +
> +set -e
> +
> +xenstore_read() {
> +  if ! xenstore-read "$XENBUS_PATH/$1" 2>/dev/null ; then
> +    echo "$2"
> +  fi
> +}
> +
> +xenstore_write() {
> +  xenstore-write "$XENBUS_PATH/$1" "$2"
> +}
> +
> +log() {
> +  local level="$1" ; shift
> +  logger -p daemon."${level}" -t "$0" -- "$@"
> +}
> +
> +: "${XENBUS_PATH:?}" "${vif:?}"
> +
> +vifname=$(xenstore_read "vifname" "")
> +if [ -n "$vifname" ] ; then
> +  if [ "$1" = "online" ] && ! ip link show "$vifname" >/dev/null >&2 ;
> then
> +    log debug "Renaming interface ${vif} to ${vifname}"
> +    ip link set "$vif" name "$vifname"
> +  fi
> +  vif="$vifname"
> +fi
> +
> +case "$1" in
> +  online)
> +    # Tell Xen we're connected
> +    xenstore_write "hotplug-status" "connected"
> +    ;;
> +  offline)
> +    ifconfig "$vif" down || true
> +    ;;
> +esac
> --
> 2.1.0.rc2.206.gedb03e5
>
>

Reply via email to