1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 """
17 Contains custom QPID transport classes.
18 """
19
20 from pulp.messaging.broker import Broker
21 from ssl import wrap_socket, CERT_NONE, CERT_REQUIRED
22 from qpid.messaging.transports import connect, TRANSPORTS, tls
23 from logging import getLogger
24
25 log = getLogger(__name__)
26
27
29 """
30 SSL Transport.
31 """
32
34 """
35 @param broker: An amqp broker.
36 @type broker: L{Broker}
37 """
38 url = broker.url
39 self.socket = connect(url.host, url.port)
40 if broker.cacert:
41 reqcert = CERT_REQUIRED
42 else:
43 reqcert = CERT_NONE
44 self.tls = wrap_socket(
45 self.socket,
46 cert_reqs=reqcert,
47 ca_certs = broker.cacert,
48 certfile = broker.clientcert)
49 self.socket.setblocking(0)
50 self.state = None
51
52
54 """
55 Factory used to create a transport.
56 """
57
69
70
71
72
73 TRANSPORTS['ssl'] = SSLFactory()
74