comparison env/lib/python3.9/site-packages/boto/vpc/vpc_peering_connection.py @ 0:4f3585e2f14b draft default tip

"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author shellac
date Mon, 22 Mar 2021 18:12:50 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4f3585e2f14b
1 # Copyright (c) 2014 Skytap http://skytap.com/
2 #
3 # Permission is hereby granted, free of charge, to any person obtaining a
4 # copy of this software and associated documentation files (the
5 # "Software"), to deal in the Software without restriction, including
6 # without limitation the rights to use, copy, modify, merge, publish, dis-
7 # tribute, sublicense, and/or sell copies of the Software, and to permit
8 # persons to whom the Software is furnished to do so, subject to the fol-
9 # lowing conditions:
10 #
11 # The above copyright notice and this permission notice shall be included
12 # in all copies or substantial portions of the Software.
13 #
14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
16 # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
17 # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
18 # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20 # IN THE SOFTWARE.
21
22 """
23 Represents a VPC Peering Connection.
24 """
25
26 from boto.ec2.ec2object import TaggedEC2Object
27
28 class VpcInfo(object):
29 def __init__(self):
30 """
31 Information on peer Vpc.
32
33 :ivar id: The unique ID of peer Vpc.
34 :ivar owner_id: Owner of peer Vpc.
35 :ivar cidr_block: CIDR Block of peer Vpc.
36 """
37
38 self.vpc_id = None
39 self.owner_id = None
40 self.cidr_block = None
41
42 def __repr__(self):
43 return 'VpcInfo:%s' % self.vpc_id
44
45 def startElement(self, name, attrs, connection):
46 pass
47
48 def endElement(self, name, value, connection):
49 if name == 'vpcId':
50 self.vpc_id = value
51 elif name == 'ownerId':
52 self.owner_id = value
53 elif name == 'cidrBlock':
54 self.cidr_block = value
55 else:
56 setattr(self, name, value)
57
58 class VpcPeeringConnectionStatus(object):
59 """
60 The status of VPC peering connection.
61
62 :ivar code: The status of the VPC peering connection. Valid values are:
63
64 * pending-acceptance
65 * failed
66 * expired
67 * provisioning
68 * active
69 * deleted
70 * rejected
71
72 :ivar message: A message that provides more information about the status of the VPC peering connection, if applicable.
73 """
74 def __init__(self, code=0, message=None):
75 self.code = code
76 self.message = message
77
78 def __repr__(self):
79 return '%s(%d)' % (self.code, self.message)
80
81 def startElement(self, name, attrs, connection):
82 pass
83
84 def endElement(self, name, value, connection):
85 if name == 'code':
86 self.code = value
87 elif name == 'message':
88 self.message = value
89 else:
90 setattr(self, name, value)
91
92
93
94 class VpcPeeringConnection(TaggedEC2Object):
95
96 def __init__(self, connection=None):
97 """
98 Represents a VPC peering connection.
99
100 :ivar id: The unique ID of the VPC peering connection.
101 :ivar accepter_vpc_info: Information on peer Vpc.
102 :ivar requester_vpc_info: Information on requester Vpc.
103 :ivar expiration_time: The expiration date and time for the VPC peering connection.
104 :ivar status_code: The status of the VPC peering connection.
105 :ivar status_message: A message that provides more information about the status of the VPC peering connection, if applicable.
106 """
107 super(VpcPeeringConnection, self).__init__(connection)
108 self.id = None
109 self.accepter_vpc_info = VpcInfo()
110 self.requester_vpc_info = VpcInfo()
111 self.expiration_time = None
112 self._status = VpcPeeringConnectionStatus()
113
114 @property
115 def status_code(self):
116 return self._status.code
117
118 @property
119 def status_message(self):
120 return self._status.message
121
122 def __repr__(self):
123 return 'VpcPeeringConnection:%s' % self.id
124
125 def startElement(self, name, attrs, connection):
126 retval = super(VpcPeeringConnection, self).startElement(name, attrs, connection)
127 if retval is not None:
128 return retval
129
130 if name == 'requesterVpcInfo':
131 return self.requester_vpc_info
132 elif name == 'accepterVpcInfo':
133 return self.accepter_vpc_info
134 elif name == 'status':
135 return self._status
136
137 return None
138
139 def endElement(self, name, value, connection):
140 if name == 'vpcPeeringConnectionId':
141 self.id = value
142 elif name == 'expirationTime':
143 self.expiration_time = value
144 else:
145 setattr(self, name, value)
146
147 def delete(self):
148 return self.connection.delete_vpc_peering_connection(self.id)
149
150 def _update(self, updated):
151 self.__dict__.update(updated.__dict__)
152
153 def update(self, validate=False, dry_run=False):
154 vpc_peering_connection_list = self.connection.get_all_vpc_peering_connections(
155 [self.id],
156 dry_run=dry_run
157 )
158 if len(vpc_peering_connection_list):
159 updated_vpc_peering_connection = vpc_peering_connection_list[0]
160 self._update(updated_vpc_peering_connection)
161 elif validate:
162 raise ValueError('%s is not a valid VpcPeeringConnection ID' % (self.id,))
163 return self.status_code