Guest User

Untitled

a guest
Jul 7th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.89 KB | None | 0 0
  1. from twisted.internet.defer import inlineCallbacks
  2. from twisted.internet import reactor, task
  3. from twisted.internet.protocol import ClientCreator
  4. from twisted.python import log
  5. from txamqp.protocol import AMQClient
  6. from txamqp.client import TwistedDelegate
  7. from txamqp.content import Content
  8. import txamqp.spec
  9.  
  10.  
  11. EXCHANGE = "non.existent.exchange"
  12.  
  13.  
  14. @inlineCallbacks
  15. def gotConnection(conn, username, password):
  16.     print "Connected to broker."
  17.     #yield conn.authenticate(username, password) # see bug #949874
  18.     yield conn.start({"LOGIN": username, "PASSWORD": password})
  19.     chan = yield conn.channel(1)
  20.     yield chan.channel_open()
  21.     msg = Content("dummy")
  22.     msg["delivery mode"] = 2
  23.     print "Sending message to non-existent exchange"
  24.     yield chan.basic_publish(exchange=EXCHANGE, content=msg)
  25.  
  26.     @inlineCallbacks
  27.     def quit():
  28.         try:
  29.             yield chan.channel_close()
  30.             chan0 = yield conn.channel(0)
  31.             yield chan0.connection_close()
  32.         finally:
  33.             reactor.stop()
  34.     reactor.callLater(3, quit)
  35.  
  36.  
  37.  
  38. if __name__ == "__main__":
  39.     import sys
  40.     if len(sys.argv) < 8:
  41.         print "%s host port vhost username password path_to_spec" % sys.argv[0]
  42.         print "e.g. %s localhost 5672 / guest guest ../../specs/standard/amqp0-8.stripped.xml" % sys.argv[0]
  43.         sys.exit(1)
  44.  
  45.     host = sys.argv[1]
  46.     port = int(sys.argv[2])
  47.     vhost = sys.argv[3]
  48.     username = sys.argv[4]
  49.     password = sys.argv[5]
  50.  
  51.     spec = txamqp.spec.load(sys.argv[6])
  52.  
  53.     delegate = TwistedDelegate()
  54.  
  55.     d = ClientCreator(reactor, AMQClient, delegate=delegate, vhost=vhost,
  56.         spec=spec).connectTCP(host, port)
  57.  
  58.     d.addCallback(gotConnection, username, password)
  59.  
  60.     def whoops(err):
  61.         if reactor.running:
  62.             log.err(err)
  63.             reactor.stop()
  64.    
  65.     d.addErrback(whoops)
  66.    
  67.     reactor.run()
Add Comment
Please, Sign In to add comment