Beispiel #1
0
 def get_region(self, params):
     region = params.get('region', None)
     if isinstance(region, basestring):
         region = fcu_boto.ec2.get_region(region)
         params['region'] = region
     if not region:
         prop = self.cls.find_property('region_name')
         params['region'] = propget.get(prop, choices=fcu_boto.ec2.regions)
     self.ec2 = params['region'].connect()
Beispiel #2
0
 def get_key(self, params):
     keypair = params.get('keypair', None)
     if isinstance(keypair, basestring):
         key_list = self.ec2.get_all_key_pairs()
         for k in key_list:
             if k.name == keypair:
                 keypair = k.name
                 params['keypair'] = k.name
     if not keypair:
         prop = StringProperty(name='keypair',
                               verbose_name='EC2 KeyPair',
                               choices=self.ec2.get_all_key_pairs)
         params['keypair'] = propget.get(prop).name
Beispiel #3
0
 def get_group(self, params):
     group = params.get('group', None)
     if isinstance(group, basestring):
         group_list = self.ec2.get_all_security_groups()
         for g in group_list:
             if g.name == group:
                 group = g
                 params['group'] = g
     if not group:
         prop = StringProperty(name='group',
                               verbose_name='EC2 Security Group',
                               choices=self.ec2.get_all_security_groups)
         params['group'] = propget.get(prop)
Beispiel #4
0
 def get_ami_id(self, params):
     valid = False
     while not valid:
         ami = params.get('ami', None)
         if not ami:
             prop = StringProperty(name='ami', verbose_name='AMI')
             ami = propget.get(prop)
         try:
             rs = self.ec2.get_all_images([ami])
             if len(rs) == 1:
                 valid = True
                 params['ami'] = rs[0]
         except EC2ResponseError:
             pass
Beispiel #5
0
 def get_device(self, params):
     if not params.get('device', None):
         prop = self.cls.find_property('device')
         params['device'] = propget.get(prop)
Beispiel #6
0
 def get_mount_point(self, params):
     if not params.get('mount_point', None):
         prop = self.cls.find_property('mount_point')
         params['mount_point'] = propget.get(prop)
Beispiel #7
0
 def get_size(self, params):
     if not params.get('size', None):
         prop = IntegerProperty(name='size', verbose_name='Size (GB)')
         params['size'] = propget.get(prop)
Beispiel #8
0
 def get_name(self, params):
     if not params.get('name', None):
         prop = self.cls.find_property('name')
         params['name'] = propget.get(prop)
Beispiel #9
0
 def get_zone(self, params):
     if not params.get('zone', None):
         prop = StringProperty(name='zone',
                               verbose_name='EC2 Availability Zone',
                               choices=self.ec2.get_all_zones)
         params['zone'] = propget.get(prop)
Beispiel #10
0
 def get_region(self, params):
     if not params.get('region', None):
         prop = self.cls.find_property('region_name')
         params['region'] = propget.get(prop, choices=fcu_boto.ec2.regions)
Beispiel #11
0
 def get_quantity(self, params):
     if not params.get('quantity', None):
         prop = IntegerProperty(name='quantity',
                                verbose_name='Number of Instances')
         params['quantity'] = propget.get(prop)
Beispiel #12
0
 def get_instance_type(self, params):
     if not params.get('instance_type', None):
         prop = StringProperty(name='instance_type',
                               verbose_name='Instance Type',
                               choices=InstanceTypes)
         params['instance_type'] = propget.get(prop)
Beispiel #13
0
 def get_region(self, params):
     if not params.get('region', None):
         prop = StringProperty(name='region',
                               verbose_name='EC2 Region',
                               choices=fcu_boto.ec2.regions)
         params['region'] = propget.get(prop, choices=fcu_boto.ec2.regions)
Beispiel #14
0
        self.get_quantity(params)


if __name__ == "__main__":
    obj = BuyReservation()
    params = {}
    obj.get(params)
    offerings = obj.ec2.get_all_reserved_instances_offerings(
        instance_type=params['instance_type'],
        availability_zone=params['zone'].name)
    print('\nThe following Reserved Instances Offerings are available:\n')
    for offering in offerings:
        offering.describe()
    prop = StringProperty(name='offering',
                          verbose_name='Offering',
                          choices=offerings)
    offering = propget.get(prop)
    print('\nYou have chosen this offering:')
    offering.describe()
    unit_price = float(offering.fixed_price)
    total_price = unit_price * params['quantity']
    print(
        '!!! You are about to purchase %d of these offerings for a total of $%.2f !!!'
        % (params['quantity'], total_price))
    answer = six.moves.input(
        'Are you sure you want to do this?  If so, enter YES: ')
    if answer.strip().lower() == 'yes':
        offering.purchase(params['quantity'])
    else:
        print('Purchase cancelled')
Beispiel #15
0
 def get_description(self, params):
     if not params.get('description', None):
         prop = self.cls.find_property('description')
         params['description'] = propget.get(prop)