1# Copyright (c) 2009-2010 Reza Lotun http://reza.lotun.name/ 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 23from datetime import datetime 24 25 26class ScheduledUpdateGroupAction(object): 27 def __init__(self, connection=None): 28 self.connection = connection 29 self.name = None 30 self.action_arn = None 31 self.as_group = None 32 self.time = None 33 self.start_time = None 34 self.end_time = None 35 self.recurrence = None 36 self.desired_capacity = None 37 self.max_size = None 38 self.min_size = None 39 40 def __repr__(self): 41 return 'ScheduledUpdateGroupAction:%s' % self.name 42 43 def startElement(self, name, attrs, connection): 44 return None 45 46 def endElement(self, name, value, connection): 47 if name == 'DesiredCapacity': 48 self.desired_capacity = value 49 elif name == 'ScheduledActionName': 50 self.name = value 51 elif name == 'AutoScalingGroupName': 52 self.as_group = value 53 elif name == 'MaxSize': 54 self.max_size = int(value) 55 elif name == 'MinSize': 56 self.min_size = int(value) 57 elif name == 'ScheduledActionARN': 58 self.action_arn = value 59 elif name == 'Recurrence': 60 self.recurrence = value 61 elif name == 'Time': 62 try: 63 self.time = datetime.strptime(value, '%Y-%m-%dT%H:%M:%S.%fZ') 64 except ValueError: 65 self.time = datetime.strptime(value, '%Y-%m-%dT%H:%M:%SZ') 66 elif name == 'StartTime': 67 try: 68 self.start_time = datetime.strptime(value, '%Y-%m-%dT%H:%M:%S.%fZ') 69 except ValueError: 70 self.start_time = datetime.strptime(value, '%Y-%m-%dT%H:%M:%SZ') 71 elif name == 'EndTime': 72 try: 73 self.end_time = datetime.strptime(value, '%Y-%m-%dT%H:%M:%S.%fZ') 74 except ValueError: 75 self.end_time = datetime.strptime(value, '%Y-%m-%dT%H:%M:%SZ') 76 else: 77 setattr(self, name, value) 78