#!/usr/bin/env python # (c)2010-2012 the Boeing Company # author: Jeff Ahrenholz # # List and stop CORE sessions from the command line. # import optparse import socket from core.api import coreapi from core.enumerations import MessageFlags, SessionTlvs, CORE_API_PORT def main(): parser = optparse.OptionParser(usage="usage: %prog [-l] ") parser.add_option("-l", "--list", dest="list", action="store_true", help="list running sessions") (options, args) = parser.parse_args() if options.list is True: num = '0' flags = MessageFlags.STRING.value else: num = args[0] flags = MessageFlags.DELETE.value tlvdata = coreapi.CoreSessionTlv.pack(SessionTlvs.NUMBER.value, num) message = coreapi.CoreSessionMessage.pack(flags, tlvdata) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect(('localhost', CORE_API_PORT)) sock.send(message) # receive and print a session list if options.list is True: hdr = sock.recv(coreapi.CoreMessage.header_len) msgtype, msgflags, msglen = coreapi.CoreMessage.unpack_header(hdr) data = "" if msglen: data = sock.recv(msglen) message = coreapi.CoreMessage(msgflags, hdr, data) sessions = message.get_tlv(coreapi.SessionTlvs.NUMBER.value) print "sessions:", sessions sock.close() if __name__ == "__main__": main()