Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: mod_backhand: Wackamole
Perl script bug?
 

Index | Next | Previous | View Flat


iane at sussex

Jul 7, 2006, 6:22 AM


Views: 1715
Permalink
Perl script bug?

I have a wackamole configuration as shown in full below.

I have two hosts, two VIFS and two IP addresses in each VIF. I need to
start and stop services as IP addresses are acquired and lost.

I've written a perl library, with functions onup, ondown, postup and
postdown - but the postup and postdown functions do nothing at the moment.

My problem is this. When I test wackamole with wackatrl -f and wackatrl -s,
the IP addresses come up and down as expected. But, whether I say "wackatrl
-f" or "wackatrl -s", BOTH onup() and ondown() get executed. So, my
services get started and stopped at the same time.

I notice that in config_gram.y, this section appears:

| W_RUNDYNAMIC W_STRING W_ACTION_TYPE
{ char *path = $2.string;
if(strstr(path, "::") || !strchr(path, ':')) {
#ifdef USE_EMBEDDED_PERL
register_perl(path, DLFUNCS_TYPE_ON_UP);
^^^^^^^^^^^^^^^^^^
#else
wack_alarm(EXIT, "RunDynamic with perl-style
parameter, without embedded perl interpreter");
#endif
} else {
char *func = strchr(path, ':');
if(func) { *(func++) = '\0'; }
register_shared(path, func, $3.number);
}
}

Should that DLFUNCS_TYPE_ON_UP read $3.number instead? Doesn't seem to work
well, though. It seems when I do this then my 'on down' script gets called
repeatedly - every 5 seconds.

--
Ian Eiloart
IT Services, University of Sussex

# The Spread daemon we are going to connect to. It should be on the local
box
Spread = 4803
SpreadRetryInterval = 5s
# The group name
Group = mail1
# Named socket for online control
Control = /var/run/wack.it
### Where is our perl library
PerlUseLib /opt/local/etc/
### What is the name of the library
PerlUse wackamole
### What is the name of the script
RunDynamic wackamole::onup on up
RunDynamic wackamole::ondown on down
RunDynamic wackamole::postup post up
RunDynamic wackamole::postdown post down
#RunDynamic wackamole::onup post up
### This is for loading C libraries
#RunDynamic funcs:killhup on up

# if we expressed a preference, we'd have to maintain more than
# one version of this file. There's little to be gained, so we won't bother
Prefer none

# List all the virtual interfaces (ALL of them)
VirtualInterfaces {
# every VIF must include an IMAP IP address
# to ensure loads are properly balanced for process counts
# and should also include MX, MSA, and DNS addresses
{ en0:139.184.132.85/32 en0:139.184.132.240/32}
{ en0:139.184.132.84/32 en0:139.184.132.241/32}
}

# Collect and broadcast the IPs in our ARP table every so often
Arp-Cache = 90s

# List who we will notify
# Here the netblock (/24 or /28) can be deceptive. It is NOT a
netmask
# for a single IP. It is how one will describe that they want to
# notify ALL IPs in a segment.
Notify {
# Let's notify our router:
en0:139.184.132.1/32
en0:139.184.133.255/23
en0:139.184.132.6/32
# Wackamole shares arp-cache across machines, this says to
# notify every IP address in the aggregate shared arp-cache.
arp-cache
}
balance {
# This field is the maximum number of IP addresses that will move
# from one wackamole to another during a round of balancing.
AcquisitionsPerRound = all
# Time interval in each balancing round.
interval = 4s
}
# How long it takes us to mature
mature = 5s


_______________________________________________
wackamole-users mailing list
wackamole-users[at]lists.backhand.org
http://lists.backhand.org/mailman/listinfo/wackamole-users

Subject User Time
Perl script bug? iane at sussex Jul 7, 2006, 6:22 AM
    Re: Perl script bug? iane at sussex Jul 7, 2006, 8:32 AM
    Re: Perl script bug? jesus at omniti Jul 7, 2006, 8:37 AM
        Re: Perl script bug? iane at sussex Jul 7, 2006, 10:11 AM

  Index | Next | Previous | View Flat
 
 


Interested in having your list archived? Contact lists@gossamer-threads.com
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.