mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
tools/hotplug: Separate OS-specific scripts.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com> Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
This commit is contained in:
1 parent
8ebbe767aa
commit
57bcfa11b1
41 files changed
+345
-57
No files matched your search
@@ -9,6 +9,7 @@ SUBDIRS-y += flask
|
||||
SUBDIRS-y += xenstore
|
||||
SUBDIRS-y += misc
|
||||
SUBDIRS-y += examples
|
||||
SUBDIRS-y += hotplug
|
||||
SUBDIRS-y += xentrace
|
||||
SUBDIRS-$(CONFIG_XCUTILS) += xcutils
|
||||
SUBDIRS-$(CONFIG_X86) += firmware
|
||||
|
||||
+1
-57
@@ -24,41 +24,6 @@ XEN_CONFIGS += xmexample.vti
|
||||
XEN_CONFIGS += xend-pci-quirks.sxp
|
||||
XEN_CONFIGS += xend-pci-permissive.sxp
|
||||
|
||||
# Xen script dir and scripts to go there.
|
||||
XEN_SCRIPT_DIR = /etc/xen/scripts
|
||||
XEN_SCRIPTS = network-bridge vif-bridge
|
||||
XEN_SCRIPTS += network-route vif-route
|
||||
XEN_SCRIPTS += network-nat vif-nat
|
||||
XEN_SCRIPTS += block
|
||||
XEN_SCRIPTS += block-enbd block-nbd
|
||||
XEN_SCRIPTS += blktap
|
||||
XEN_SCRIPTS += vtpm vtpm-delete
|
||||
XEN_SCRIPTS += xen-hotplug-cleanup
|
||||
XEN_SCRIPTS += external-device-migrate
|
||||
XEN_SCRIPTS += vscsi
|
||||
XEN_SCRIPT_DATA = xen-script-common.sh locking.sh logging.sh
|
||||
XEN_SCRIPT_DATA += xen-hotplug-common.sh xen-network-common.sh vif-common.sh
|
||||
XEN_SCRIPT_DATA += block-common.sh vtpm-common.sh vtpm-hotplug-common.sh
|
||||
XEN_SCRIPT_DATA += vtpm-migration.sh vtpm-impl
|
||||
|
||||
XEN_HOTPLUG_DIR = /etc/hotplug
|
||||
XEN_HOTPLUG_SCRIPTS = xen-backend.agent
|
||||
|
||||
UDEV_RULES_DIR = /etc/udev
|
||||
UDEV_RULES = xen-backend.rules
|
||||
|
||||
DI = $(if $(DISTDIR),$(shell readlink -f $(DISTDIR)),)
|
||||
DE = $(if $(DESTDIR),$(shell readlink -f $(DESTDIR)),)
|
||||
ifeq ($(findstring $(DI),$(DE)),$(DI))
|
||||
HOTPLUGS=install-hotplug install-udev
|
||||
else
|
||||
ifeq ($(shell [ -x /usr/bin/udevinfo ] && [ `/usr/bin/udevinfo -V | sed -e 's/^[^0-9]* \([0-9]\{1,\}\)[^0-9]\{0,\}/\1/'` -ge 059 ] && echo 1),1)
|
||||
HOTPLUGS=install-udev
|
||||
else
|
||||
HOTPLUGS=install-hotplug
|
||||
endif
|
||||
endif
|
||||
|
||||
.PHONY: all
|
||||
all:
|
||||
|
||||
@@ -66,7 +31,7 @@ all:
|
||||
build:
|
||||
|
||||
.PHONY: install
|
||||
install: all install-readmes install-initd install-configs install-scripts $(HOTPLUGS)
|
||||
install: all install-readmes install-configs $(HOTPLUGS)
|
||||
|
||||
.PHONY: install-readmes
|
||||
install-readmes:
|
||||
@@ -77,14 +42,6 @@ install-readmes:
|
||||
$(INSTALL_DATA) $$i $(DESTDIR)$(XEN_CONFIG_DIR); \
|
||||
done
|
||||
|
||||
.PHONY: install-initd
|
||||
install-initd:
|
||||
[ -d $(DESTDIR)/etc/init.d ] || $(INSTALL_DIR) $(DESTDIR)/etc/init.d
|
||||
[ -d $(DESTDIR)/etc/sysconfig ] || $(INSTALL_DIR) $(DESTDIR)/etc/sysconfig
|
||||
$(INSTALL_PROG) $(XEND_INITD) $(DESTDIR)/etc/init.d
|
||||
$(INSTALL_PROG) $(XENDOMAINS_INITD) $(DESTDIR)/etc/init.d
|
||||
$(INSTALL_PROG) $(XENDOMAINS_SYSCONFIG) $(DESTDIR)/etc/sysconfig/xendomains
|
||||
|
||||
.PHONY: install-configs
|
||||
install-configs: $(XEN_CONFIGS)
|
||||
[ -d $(DESTDIR)$(XEN_CONFIG_DIR) ] || \
|
||||
@@ -96,19 +53,6 @@ install-configs: $(XEN_CONFIGS)
|
||||
$(INSTALL_DATA) $$i $(DESTDIR)$(XEN_CONFIG_DIR); \
|
||||
done
|
||||
|
||||
.PHONY: install-scripts
|
||||
install-scripts:
|
||||
[ -d $(DESTDIR)$(XEN_SCRIPT_DIR) ] || \
|
||||
$(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
|
||||
set -e; for i in $(XEN_SCRIPTS); \
|
||||
do \
|
||||
$(INSTALL_PROG) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \
|
||||
done
|
||||
set -e; for i in $(XEN_SCRIPT_DATA); \
|
||||
do \
|
||||
$(INSTALL_DATA) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \
|
||||
done
|
||||
|
||||
.PHONY: install-hotplug
|
||||
install-hotplug:
|
||||
[ -d $(DESTDIR)$(XEN_HOTPLUG_DIR) ] || \
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
XEN_ROOT = ../../../
|
||||
include $(XEN_ROOT)/tools/Rules.mk
|
||||
|
||||
# Init scripts.
|
||||
XEND_INITD = init.d/xend
|
||||
XENDOMAINS_INITD = init.d/xendomains
|
||||
XENDOMAINS_SYSCONFIG = init.d/sysconfig.xendomains
|
||||
|
||||
# Xen configuration dir and configs to go there.
|
||||
XEN_CONFIG_DIR = /etc/xen
|
||||
|
||||
# Xen script dir and scripts to go there.
|
||||
XEN_SCRIPT_DIR = /etc/xen/scripts
|
||||
XEN_SCRIPTS = network-bridge vif-bridge
|
||||
XEN_SCRIPTS += network-route vif-route
|
||||
XEN_SCRIPTS += network-nat vif-nat
|
||||
XEN_SCRIPTS += block
|
||||
XEN_SCRIPTS += block-enbd block-nbd
|
||||
XEN_SCRIPTS += blktap
|
||||
XEN_SCRIPTS += vtpm vtpm-delete
|
||||
XEN_SCRIPTS += xen-hotplug-cleanup
|
||||
XEN_SCRIPTS += external-device-migrate
|
||||
XEN_SCRIPTS += vscsi
|
||||
XEN_SCRIPT_DATA = xen-script-common.sh locking.sh logging.sh
|
||||
XEN_SCRIPT_DATA += xen-hotplug-common.sh xen-network-common.sh vif-common.sh
|
||||
XEN_SCRIPT_DATA += block-common.sh vtpm-common.sh vtpm-hotplug-common.sh
|
||||
XEN_SCRIPT_DATA += vtpm-migration.sh vtpm-impl
|
||||
|
||||
XEN_HOTPLUG_DIR = /etc/hotplug
|
||||
XEN_HOTPLUG_SCRIPTS = xen-backend.agent
|
||||
|
||||
UDEV_RULES_DIR = /etc/udev
|
||||
UDEV_RULES = xen-backend.rules
|
||||
|
||||
DI = $(if $(DISTDIR),$(shell readlink -f $(DISTDIR)),)
|
||||
DE = $(if $(DESTDIR),$(shell readlink -f $(DESTDIR)),)
|
||||
ifeq ($(findstring $(DI),$(DE)),$(DI))
|
||||
HOTPLUGS=install-hotplug install-udev
|
||||
else
|
||||
ifeq ($(shell [ -x /usr/bin/udevinfo ] && [ `/usr/bin/udevinfo -V | sed -e 's/^[^0-9]* \([0-9]\{1,\}\)[^0-9]\{0,\}/\1/'` -ge 059 ] && echo 1),1)
|
||||
HOTPLUGS=install-udev
|
||||
else
|
||||
HOTPLUGS=install-hotplug
|
||||
endif
|
||||
endif
|
||||
|
||||
.PHONY: all
|
||||
all:
|
||||
|
||||
.PHONY: build
|
||||
build:
|
||||
|
||||
.PHONY: install
|
||||
install: all install-initd install-scripts $(HOTPLUGS)
|
||||
|
||||
.PHONY: install-initd
|
||||
install-initd:
|
||||
[ -d $(DESTDIR)/etc/init.d ] || $(INSTALL_DIR) $(DESTDIR)/etc/init.d
|
||||
[ -d $(DESTDIR)/etc/sysconfig ] || $(INSTALL_DIR) $(DESTDIR)/etc/sysconfig
|
||||
$(INSTALL_PROG) $(XEND_INITD) $(DESTDIR)/etc/init.d
|
||||
$(INSTALL_PROG) $(XENDOMAINS_INITD) $(DESTDIR)/etc/init.d
|
||||
$(INSTALL_PROG) $(XENDOMAINS_SYSCONFIG) $(DESTDIR)/etc/sysconfig/xendomains
|
||||
|
||||
.PHONY: install-scripts
|
||||
install-scripts:
|
||||
[ -d $(DESTDIR)$(XEN_SCRIPT_DIR) ] || \
|
||||
$(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
|
||||
set -e; for i in $(XEN_SCRIPTS); \
|
||||
do \
|
||||
$(INSTALL_PROG) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \
|
||||
done
|
||||
set -e; for i in $(XEN_SCRIPT_DATA); \
|
||||
do \
|
||||
$(INSTALL_DATA) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \
|
||||
done
|
||||
|
||||
.PHONY: install-hotplug
|
||||
install-hotplug:
|
||||
[ -d $(DESTDIR)$(XEN_HOTPLUG_DIR) ] || \
|
||||
$(INSTALL_DIR) $(DESTDIR)$(XEN_HOTPLUG_DIR)
|
||||
set -e; for i in $(XEN_HOTPLUG_SCRIPTS); \
|
||||
do \
|
||||
$(INSTALL_PROG) $$i $(DESTDIR)$(XEN_HOTPLUG_DIR); \
|
||||
done
|
||||
|
||||
.PHONY: install-udev
|
||||
install-udev:
|
||||
[ -d $(DESTDIR)$(UDEV_RULES_DIR) ] || \
|
||||
$(INSTALL_DIR) $(DESTDIR)$(UDEV_RULES_DIR)/rules.d
|
||||
set -e; for i in $(UDEV_RULES); \
|
||||
do \
|
||||
$(INSTALL_DATA) $$i $(DESTDIR)$(UDEV_RULES_DIR); \
|
||||
ln -sf ../$$i $(DESTDIR)$(UDEV_RULES_DIR)/rules.d; \
|
||||
done
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
Executable → Regular
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Executable → Regular
File renamed without changes.
File renamed without changes.
Executable → Regular
File renamed without changes.
Executable → Regular
File renamed without changes.
File renamed without changes.
File renamed without changes.
Executable → Regular
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Executable → Regular
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,9 @@
|
||||
XEN_ROOT = ../../
|
||||
include $(XEN_ROOT)/tools/Rules.mk
|
||||
|
||||
SUBDIRS-y := common
|
||||
SUBDIRS-$(CONFIG_NetBSD) += NetBSD
|
||||
SUBDIRS-$(CONFIG_Linux) += Linux
|
||||
|
||||
.PHONY: all clean install
|
||||
all clean install: %: subdirs-%
|
||||
@@ -0,0 +1,41 @@
|
||||
XEN_ROOT = ../../../
|
||||
include $(XEN_ROOT)/tools/Rules.mk
|
||||
|
||||
# Xen configuration dir and configs to go there.
|
||||
XEN_CONFIG_DIR = $(PREFIX)/etc/xen
|
||||
|
||||
# Xen script dir and scripts to go there.
|
||||
XEN_SCRIPT_DIR = $(PREFIX)/etc/xen/scripts
|
||||
XEN_SCRIPTS =
|
||||
XEN_SCRIPTS += block-nbsd
|
||||
XEN_SCRIPTS += hvm-nbsd
|
||||
XEN_SCRIPTS += netbsd1-nbsd
|
||||
XEN_SCRIPTS += qemu-ifup-nbsd
|
||||
XEN_SCRIPTS += vif-bridge-nbsd
|
||||
XEN_SCRIPTS += vif-ip-nbsd
|
||||
|
||||
XEN_SCRIPT_DATA =
|
||||
|
||||
.PHONY: all
|
||||
all:
|
||||
|
||||
.PHONY: build
|
||||
build:
|
||||
|
||||
.PHONY: install
|
||||
install: all install-scripts
|
||||
|
||||
.PHONY: install-scripts
|
||||
install-scripts:
|
||||
$(INSTALL_DATA_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
|
||||
set -e; for i in $(XEN_SCRIPTS); \
|
||||
do \
|
||||
$(INSTALL_DATA) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \
|
||||
done
|
||||
set -e; for i in $(XEN_SCRIPT_DATA); \
|
||||
do \
|
||||
$(INSTALL_DATA) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \
|
||||
done
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
@@ -0,0 +1,88 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
# $NetBSD: block-nbsd,v 1.1.1.1 2008/08/07 20:26:57 cegger Exp $
|
||||
# Called by xenbackendd
|
||||
# Usage: block xsdir_backend_path state
|
||||
|
||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
||||
export PATH
|
||||
|
||||
error() {
|
||||
echo "$@" >&2
|
||||
xenstore_write $xpath/hotplug-status error
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
xpath=$1
|
||||
xstatus=$2
|
||||
xtype=$(xenstore-read "$xpath/type")
|
||||
xparams=$(xenstore-read "$xpath/params")
|
||||
|
||||
case $xstatus in
|
||||
6)
|
||||
# device removed
|
||||
case $xtype in
|
||||
file)
|
||||
vnd=$(xenstore-read "$xpath/vnd" || echo none)
|
||||
if [ $vnd != none ]; then
|
||||
vnconfig -u $vnd
|
||||
fi
|
||||
;;
|
||||
phy)
|
||||
;;
|
||||
*)
|
||||
echo "unknown type $xtype" >&2
|
||||
;;
|
||||
esac
|
||||
xenstore-rm $xpath
|
||||
exit 0
|
||||
;;
|
||||
2)
|
||||
case $xtype in
|
||||
file)
|
||||
# Store the list of available vnd(4) devices in
|
||||
#``available_disks'', and mark them as ``free''.
|
||||
list=`ls -1 /dev/vnd[0-9]*d | sed "s,/dev/vnd,,;s,d,," | sort -n`
|
||||
for i in $list; do
|
||||
disk="vnd$i"
|
||||
available_disks="$available_disks $disk"
|
||||
eval $disk=free
|
||||
done
|
||||
# Mark the used vnd(4) devices as ``used''.
|
||||
for disk in `sysctl hw.disknames`; do
|
||||
case $disk in
|
||||
vnd[0-9]*) eval $disk=used ;;
|
||||
esac
|
||||
done
|
||||
# Configure the first free vnd(4) device.
|
||||
for disk in $available_disks; do
|
||||
eval status=\$$disk
|
||||
if [ "$status" = "free" ] && \
|
||||
vnconfig /dev/${disk}d $xparams >/dev/null; then
|
||||
device=/dev/${disk}d
|
||||
echo vnconfig /dev/${disk}d $xparams
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ x$device = x ] ; then
|
||||
error "no available vnd device"
|
||||
fi
|
||||
echo xenstore-write $xpath/vnd $device
|
||||
xenstore-write $xpath/vnd $device
|
||||
;;
|
||||
phy)
|
||||
device=$xparams
|
||||
;;
|
||||
esac
|
||||
physical_device=$(stat -f '%r' "$device")
|
||||
echo xenstore-write $xpath/physical-device $physical_device
|
||||
xenstore-write $xpath/physical-device $physical_device
|
||||
echo xenstore-write $xpath/hotplug-status connected
|
||||
xenstore-write $xpath/hotplug-status connected
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
ifconfig $1 up
|
||||
exec /sbin/brconfig $2 add $1
|
||||
@@ -0,0 +1,35 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
# $NetBSD: vif-bridge-nbsd,v 1.1.1.1 2008/08/07 20:26:57 cegger Exp $
|
||||
# Called by xenbackendd
|
||||
# Usage: vif-bridge xsdir_backend_path state
|
||||
|
||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
||||
export PATH
|
||||
|
||||
xpath=$1
|
||||
xstatus=$2
|
||||
|
||||
case $xstatus in
|
||||
6)
|
||||
# device removed
|
||||
xenstore-rm $xpath
|
||||
exit 0
|
||||
;;
|
||||
2)
|
||||
xbridge=$(xenstore-read "$xpath/bridge")
|
||||
xfid=$(xenstore-read "$xpath/frontend-id")
|
||||
xhandle=$(xenstore-read "$xpath/handle")
|
||||
iface=xvif$xfid.$xhandle
|
||||
echo ifconfig $iface up
|
||||
ifconfig $iface up
|
||||
brconfig $xbridge add $iface
|
||||
echo brconfig $xbridge add $iface
|
||||
xenstore-write $xpath/hotplug-status connected
|
||||
echo xenstore-write $xpath/hotplug-status connected
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,33 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
# $NetBSD: vif-ip-nbsd,v 1.1.1.1 2008/08/07 20:26:57 cegger Exp $
|
||||
# Called by xenbackendd
|
||||
# Usage: vif-ip xsdir_backend_path state
|
||||
|
||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
||||
export PATH
|
||||
|
||||
xpath=$1
|
||||
xstatus=$2
|
||||
|
||||
case $xstatus in
|
||||
6)
|
||||
# device removed
|
||||
xenstore-rm $xpath
|
||||
exit 0
|
||||
;;
|
||||
2)
|
||||
xip=$(xenstore-read "$xpath/ip")
|
||||
xfid=$(xenstore-read "$xpath/frontend-id")
|
||||
xhandle=$(xenstore-read "$xpath/handle")
|
||||
iface=xvif$xfid.$xhandle
|
||||
echo ifconfig $iface $xip up
|
||||
ifconfig $iface $xip up
|
||||
xenstore-write $xpath/hotplug-status connected
|
||||
echo xenstore-write $xpath/hotplug-status connected
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,37 @@
|
||||
XEN_ROOT = ../../../
|
||||
include $(XEN_ROOT)/tools/Rules.mk
|
||||
|
||||
# OS-independent hotplug scripts go in this directory
|
||||
|
||||
# Xen configuration dir and configs to go there.
|
||||
XEN_CONFIG_DIR = /etc/xen
|
||||
|
||||
# Xen script dir and scripts to go there.
|
||||
XEN_SCRIPT_DIR = /etc/xen/scripts
|
||||
XEN_SCRIPTS =
|
||||
XEN_SCRIPT_DATA =
|
||||
|
||||
.PHONY: all
|
||||
all:
|
||||
|
||||
.PHONY: build
|
||||
build:
|
||||
|
||||
.PHONY: install
|
||||
install: all install-scripts
|
||||
|
||||
.PHONY: install-scripts
|
||||
install-scripts:
|
||||
[ -d $(DESTDIR)$(XEN_SCRIPT_DIR) ] || \
|
||||
$(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
|
||||
set -e; for i in $(XEN_SCRIPTS); \
|
||||
do \
|
||||
$(INSTALL_PROG) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \
|
||||
done
|
||||
set -e; for i in $(XEN_SCRIPT_DATA); \
|
||||
do \
|
||||
$(INSTALL_DATA) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \
|
||||
done
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||