blob: 287b944068a0c96145473099e9706df54a7bc434 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
# Copyright (c) 2008 - OpenSLX GmbH
#
# This program is free software distributed under the GPL version 2.
# See http://openslx.org/COPYING
#
# If you have any feedback please consult http://openslx.org/feedback and
# send your suggestions, praise, or complaints to feedback@openslx.org
#
# General information about OpenSLX can be found at http://openslx.org/
# -----------------------------------------------------------------------------
# vmware/OpenSLX/Distro/Gentoo.pm
# - provides Gentoo-specific overrides of the Distro API for the vmware
# plugin.
# -----------------------------------------------------------------------------
package vmware::OpenSLX::Distro::Gentoo;
use strict;
use warnings;
use base qw(vmware::OpenSLX::Distro::Base);
use OpenSLX::Basics;
################################################################################
### interface methods
################################################################################
sub fillRunlevelScript
{
my $self = shift;
my $location = shift;
my $script = unshiftHereDoc(<<" End-of-Here");
#!/sbin/runscript
# Gentoo compatible (hopefully) start/stop script, generated via stage1 'vmware'
# plugin installation
#
# inspiration taken from vmware start script:
# Copyright 1998-2007 VMware, Inc. All rights reserved.
#
# This script manages the services needed to run VMware software
# dependency definitions
depend() {
# use syslog
# need ...
}
# helper functions
load_modules() {
# to be filled in via the stage1 configuration script
modprobe -qa vmmon vmnet vmblock 2>/dev/null || return 1
# most probably nobody wants to run the parallel port driver ...
#modprobe vm...
}
unload_modules() {
# to be filled with the proper list within via the stage1 configuration
# script
rmmod vmmon vmblock vmnet 2>/dev/null
}
# the bridged interface
setup_vmnet0() {
if [ -n "\$vmnet0" ] ; then
# the path might be directly point to the plugin dir
$location/vmnet-bridge -d /var/run/vmnet-bridge-0.pid /dev/vmnet0 eth0
fi
}
# we definately prefer the hostonly interface for NATed operation too
# distinction is made via enabled forwarding
setup_vmnet1() {
if [ -n "\$vmnet1" ] ; then
#test -c /dev/vmnet1 || mknod c 119 1 /dev/vmnet1
# the path might be directly point to the plugin dir
$location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet1.pid \\
/dev/vmnet1 vmnet1
dhcpif="\$dhcpif vmnet1"
ip addr add \$vmnet1 dev vmnet1
if [ -n "\$vmnet1nat" ] ; then
# needs refinement interface name for eth0 is known in stage3 already
echo "1" > /proc/sys/net/ipv4/conf/vmnet1/forwarding 2>/dev/null
echo "1" > /proc/sys/net/ipv4/conf/eth0/forwarding 2>/dev/null
#iptables -A -s vmnet1 -d eth0
fi
fi
}
# incomplete ...
setup_vmnet8() {
if [ -n "\$vmnet8" ] ; then
#test -c /dev/vmnet8 || mknod c 119 8 /dev/vmnet8
$location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet8.pid \\
/dev/vmnet8 vmnet8
# /etc/vmware/vmnet-natd-8.mac simply contains a mac like 00:50:56:F1:30:50
$location/vmnet-natd -d /var/run/vmnet-natd-8.pid \\
-m /etc/vmware/vmnet-natd-8.mac -c /etc/vmware/nat.conf
dhcpif="\$dhcpif vmnet8"
ip addr add \$vmnet8 dev vmnet8
fi
}
runvmdhcpd() {
if [ -n "\$dhcpif" ] ; then
# the path might be directly point to the plugin dir
$location/vmnet-dhcpd -cf /etc/vmware/dhcpd.conf -lf \\
/var/run/vmware/dhcpd.leases -pf /var/run/vmnet-dhcpd-vmnet8.pid \$dhcpif
fi
}
# start/stop functions
start() {
ebegin "Starting vmware background services ..."
# load the configuration file
. /etc/vmware/slxvmconfig
load_modules || eerror "The loading of vmware modules failed"
setup_vmnet0 || eerror "Problems setting up vmnet0 interface"
setup_vmnet1 || eerror "Problems setting up vmnet1 interface"
setup_vmnet8 || eerror "Problems setting up vmnet8 interface"
runvmdhcpd
eend $?
}
stop() {
# message output should match the given vendor-os
ebegin "Stopping vmware background services ..."
killall vmnet-netifup vmnet-natd vmnet-bridge vmware vmplayer \\
vmware-tray vmnet-dhcpd 2>/dev/null
# wait for shutting down of interfaces
usleep 50000
unload_modules
eend $?
}
End-of-Here
return $script;
}
1;
|