in footmark/ecs/instance.py [0:0]
def __getattr__(self, name):
if name == 'id':
return self.instance_id
if name == 'name':
return self.instance_name
if name == 'state':
return self.status
if name == 'public_ip_address':
if not self.public_ip_address:
eip = getattr(self, 'eip_address', None)
if eip and eip["ip_address"]:
return eip["ip_address"]
# instance private ip contains private_ip_address and inner_ip_address(Classic)
if name == 'private_ip_address':
if self.vpc_attributes['private_ip_address']['ip_address']:
return self.vpc_attributes['private_ip_address']['ip_address'][0]
return getattr(self, 'inner_ip_address', '')
if name in ('vswitch_id', 'subnet_id'):
return self.vpc_attributes['vswitch_id']
if name == 'vpc_id':
return self.vpc_attributes['vpc_id']
if name in ('group_id', 'security_group_id'):
return self.security_group_id
if name in ('group_name', 'security_group_name') and self.security_groups:
return self.security_groups[0].security_group_name
if name == 'groups':
return self.security_groups
if name in ('key_name', 'keypair', 'key_pair'):
return getattr(self, 'key_pair_name', '')
raise AttributeError("Object {0} does not have attribute {1}".format(self.__repr__(), name))