footmark/dns/group.py (38 lines of code) (raw):
from footmark.dns.dnsobject import TaggedDNSObject
class Group(TaggedDNSObject):
def __init__(self, connection=None):
super(Group, self).__init__(connection)
def __repr__(self):
return 'Group:%s' % self.id
def __getattr__(self, name):
if name == 'id':
return self.id
if name == 'name':
return self.group_name
if name == 'domain_count':
return self.count
raise AttributeError
def __setattr__(self, name, value):
if name == 'group_id':
self.id = value
if name == 'domain_count':
self.count = value
super(TaggedDNSObject, self).__setattr__(name, value)
def get(self):
return self.connection.describe_domain_group(group_id=self.id, group_name=self.name)
def read(self):
group = {}
for name, value in list(self.__dict__.items()):
if name in ["connection", "region_id", "region"]:
continue
if name == 'group_id':
group['id'] = value
group[name] = value
return group
def update_domain_group(self, new_group_name=None, group_name=None):
group_id = self.connection.describe_domain_group(group_name=group_name).id
if new_group_name and group_name:
return self.connection.update_domain_group(group_id=group_id, group_name=new_group_name)
return False
def delete(self):
return self.connection.delete_domain_group(group_id=self.id)