def get_active(self): master_list = [] try: mm = MasterInstance() masters = mm.scan() for m in masters: if m.status == 'LAUNCH' and m.ipaddr != u'no-ip-yet': master_list.append(m) except Exception, e: raise
def get_terminated(self): master_list = [] try: mm = MasterInstance() masters = mm.scan() for m in masters: if m.status == 'TERMINATE': master_list.append(m) except Exception, e: raise
def create_or_update_master(self, instanceid, modified, ipaddr, status): '''Attempt to retrieve the item update and save it, failing that create it and save it''' # no default value for instanceid, has be supplied if not instanceid: raise try: r = ddb.MasterInstance.get(instanceid) #print "Master entry exists for instanceid %s" % instanceid if modified: r.modified = modified if ipaddr: r.ipaddr = unicode(ipaddr) if status: r.status = unicode(status) r.save(raise_on_conflict=True) #except ConflictError: --- add this in later, design saves us from issue for now # # giving a second try to save the data # time.sleep(2) # self.create_or_update_master(instanceid, modified, ipaddr, status) except boto.exception.BotoClientError: #print "Minion entry does not exist for instanceid %s, creating one." % instanceid mm = MasterInstance() mm.instanceid = instanceid if modified: mm.modified = modified if ipaddr: mm.ipaddr = unicode(ipaddr) if status: mm.status = unicode(status) mm.save() except Exception, e: print "unhandled exception: %s" % e raise