def __getattr__()

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))