tbsend.py.in 2.53 KB
Newer Older
1
#! /usr/local/bin/python
Mike Hibler's avatar
Mike Hibler committed
2 3
#
# Copyright (c) 2002-2004 University of Utah and the Flux Group.
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
# 
# {{{EMULAB-LICENSE
# 
# This file is part of the Emulab network testbed software.
# 
# This file is free software: you can redistribute it and/or modify it
# under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or (at
# your option) any later version.
# 
# This file 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 Affero General Public
# License for more details.
# 
# You should have received a copy of the GNU Affero General Public License
# along with this file.  If not, see <http://www.gnu.org/licenses/>.
# 
# }}}
Mike Hibler's avatar
Mike Hibler committed
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

import sys
import getopt

sys.path.append("@prefix@/lib")

from tbevent import *

# Usage message
usage = """Example python testbed event sender.
Usage: tbsend.py [-h] [-s server] [-p port] <event>

Optional arguments:
  -h       Print this message.
  -s name  The host name where the elvin event server is located.
           (Default: boss)
  -p port  The port the elvin event server is listening on.

Example:
  $ tbsend.py FOO
"""

# Default values
server = "boss"
port = ""

# Process command line arguments
try:
    opts, args = getopt.getopt(sys.argv[1:],
                               "hs:p:",
                               [ "help",
                                 "server=",
                                 "port=" ])
    for opt, val in opts:
        if opt in ("-h", "--help"):
            sys.stderr.write(usage)
            sys.exit()
            pass
        elif opt in ("-s", "--server"):
            server = val
            pass
        elif opt in ("-p", "--port"):
            port = val
            pass
        else:
            sys.stderr.write("Unhandled option: " + opt + "\n")
            pass
        pass
    if len(args) == 0:
        sys.stderr.write(usage)
        sys.exit(2)
        pass
    pass
except getopt.error:
    sys.stderr.write(usage)
    sys.exit(2)
    pass

#
# Allocate and initialize an address tuple like any other python object, there
# is no need to use address_tuple_alloc().
#
at = address_tuple()
at.host = ADDRESSTUPLE_ALL
at.objtype = "TBEXAMPLE"
at.eventtype = sys.argv[1].upper() # XXX Uppercase everything...

# Construct a regular client,
ec = EventClient(server=server, port=port)
# ... create our notification, and
en = ec.create_notification(at)
# ... send it off.
ec.notify(en)