comparison env/lib/python3.7/site-packages/boto/cloudfront/origin.py @ 5:9b1c78e6ba9c draft default tip

"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author shellac
date Mon, 01 Jun 2020 08:59:25 -0400
parents 79f47841a781
children
comparison
equal deleted inserted replaced
4:79f47841a781 5:9b1c78e6ba9c
1 # Copyright (c) 2006-2010 Mitch Garnaat http://garnaat.org/
2 # Copyright (c) 2010, Eucalyptus Systems, Inc.
3 #
4 # Permission is hereby granted, free of charge, to any person obtaining a
5 # copy of this software and associated documentation files (the
6 # "Software"), to deal in the Software without restriction, including
7 # without limitation the rights to use, copy, modify, merge, publish, dis-
8 # tribute, sublicense, and/or sell copies of the Software, and to permit
9 # persons to whom the Software is furnished to do so, subject to the fol-
10 # lowing conditions:
11 #
12 # The above copyright notice and this permission notice shall be included
13 # in all copies or substantial portions of the Software.
14 #
15 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
16 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
17 # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
18 # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
19 # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21 # IN THE SOFTWARE.
22
23 from boto.cloudfront.identity import OriginAccessIdentity
24
25 def get_oai_value(origin_access_identity):
26 if isinstance(origin_access_identity, OriginAccessIdentity):
27 return origin_access_identity.uri()
28 else:
29 return origin_access_identity
30
31 class S3Origin(object):
32 """
33 Origin information to associate with the distribution.
34 If your distribution will use an Amazon S3 origin,
35 then you use the S3Origin element.
36 """
37
38 def __init__(self, dns_name=None, origin_access_identity=None):
39 """
40 :param dns_name: The DNS name of your Amazon S3 bucket to
41 associate with the distribution.
42 For example: mybucket.s3.amazonaws.com.
43 :type dns_name: str
44
45 :param origin_access_identity: The CloudFront origin access
46 identity to associate with the
47 distribution. If you want the
48 distribution to serve private content,
49 include this element; if you want the
50 distribution to serve public content,
51 remove this element.
52 :type origin_access_identity: str
53
54 """
55 self.dns_name = dns_name
56 self.origin_access_identity = origin_access_identity
57
58 def __repr__(self):
59 return '<S3Origin: %s>' % self.dns_name
60
61 def startElement(self, name, attrs, connection):
62 return None
63
64 def endElement(self, name, value, connection):
65 if name == 'DNSName':
66 self.dns_name = value
67 elif name == 'OriginAccessIdentity':
68 self.origin_access_identity = value
69 else:
70 setattr(self, name, value)
71
72 def to_xml(self):
73 s = ' <S3Origin>\n'
74 s += ' <DNSName>%s</DNSName>\n' % self.dns_name
75 if self.origin_access_identity:
76 val = get_oai_value(self.origin_access_identity)
77 s += ' <OriginAccessIdentity>%s</OriginAccessIdentity>\n' % val
78 s += ' </S3Origin>\n'
79 return s
80
81 class CustomOrigin(object):
82 """
83 Origin information to associate with the distribution.
84 If your distribution will use a non-Amazon S3 origin,
85 then you use the CustomOrigin element.
86 """
87
88 def __init__(self, dns_name=None, http_port=80, https_port=443,
89 origin_protocol_policy=None):
90 """
91 :param dns_name: The DNS name of your Amazon S3 bucket to
92 associate with the distribution.
93 For example: mybucket.s3.amazonaws.com.
94 :type dns_name: str
95
96 :param http_port: The HTTP port the custom origin listens on.
97 :type http_port: int
98
99 :param https_port: The HTTPS port the custom origin listens on.
100 :type http_port: int
101
102 :param origin_protocol_policy: The origin protocol policy to
103 apply to your origin. If you
104 specify http-only, CloudFront
105 will use HTTP only to access the origin.
106 If you specify match-viewer, CloudFront
107 will fetch from your origin using HTTP
108 or HTTPS, based on the protocol of the
109 viewer request.
110 :type origin_protocol_policy: str
111
112 """
113 self.dns_name = dns_name
114 self.http_port = http_port
115 self.https_port = https_port
116 self.origin_protocol_policy = origin_protocol_policy
117
118 def __repr__(self):
119 return '<CustomOrigin: %s>' % self.dns_name
120
121 def startElement(self, name, attrs, connection):
122 return None
123
124 def endElement(self, name, value, connection):
125 if name == 'DNSName':
126 self.dns_name = value
127 elif name == 'HTTPPort':
128 try:
129 self.http_port = int(value)
130 except ValueError:
131 self.http_port = value
132 elif name == 'HTTPSPort':
133 try:
134 self.https_port = int(value)
135 except ValueError:
136 self.https_port = value
137 elif name == 'OriginProtocolPolicy':
138 self.origin_protocol_policy = value
139 else:
140 setattr(self, name, value)
141
142 def to_xml(self):
143 s = ' <CustomOrigin>\n'
144 s += ' <DNSName>%s</DNSName>\n' % self.dns_name
145 s += ' <HTTPPort>%d</HTTPPort>\n' % self.http_port
146 s += ' <HTTPSPort>%d</HTTPSPort>\n' % self.https_port
147 s += ' <OriginProtocolPolicy>%s</OriginProtocolPolicy>\n' % self.origin_protocol_policy
148 s += ' </CustomOrigin>\n'
149 return s
150