def takeSnapshot(postVars): global couchdbServer templateVars = dict(saved = False) try: db = couchdbServer.create("snapshots") except: db = couchdbServer["snapshots"] try: snapshotName = postVars["snapshotName"].value.decode("utf-8") snapshot = Snapshot() snapshot.description = snapshotName snapshot.takeSnapshot() snapshot.store(db) except: pass templateVars['snapshots'] = [] for snapshotId in db: templateVars['snapshots'].append(Snapshot.load(db,snapshotId)) templateVars['snapshots'] = sorted(templateVars['snapshots'], reverse = True, key=lambda snapshot: snapshot["date"]) return output_template("takeSnapshot.html", templateVars)
def testSnapshots(self): server = Server() try: db = server.create("players") except: db = server["players"] bolivar = Player() bolivar.setName("Bolivar") bolivar.setPhoto("images/bolivar.jpg") bolivar.setKarma(288) bolivar.store(db) indio = Player() indio.setName("Indio") indio.setPhoto("images/indio.jpg") indio.setKarma(388) indio.store(db) ss = Snapshot() ss.description = "Teste de snapshot" self.assertEqual(ss.takeSnapshot(), True), "Error taking snapshot" try: server.delete("snapshots") except: pass try: db = server.create("snapshots") except: db = server["snapshots"] ss.store(db) ss = Snapshot.load(db,ss.id) server.delete(ss.name) server.delete("snapshots")
for m_volume_fetched in m_volumes_fetched['Volumes']: m_volume_id = m_volume_fetched['VolumeId'] m_volume = Volume( m_volume_id, m_managed_volume_db.get_backup_set(m_volume_id), m_client_ec2, m_profile_name ) m_volumes.append(m_volume) m_volume_index.update({m_volume.id: m_volume}) for m_snapshot_fetched in m_snapshots_fetched['Snapshots']: m_volume_id = m_snapshot_fetched['VolumeId'] m_snapshot = Snapshot( m_snapshot_fetched['SnapshotId'], m_volume_id, m_snapshot_fetched['StartTime'], m_client_ec2 ) m_snapshots.append(m_snapshot) m_snapshot_index.update({m_snapshot.id: m_snapshot}) if m_volume_id in m_volume_index: m_volume_index[m_volume_id].add_snapshot(m_snapshot) m_snapshot.set_has_volume_flag(True) else: m_snapshot.set_has_volume_flag(False) m_snapshot.set_waived(m_managed_volume_db.is_snapshot_waived(m_volume_id)) m_results = m_client_ec2.describe_snapshots( OwnerIds=['self'], Filters=[ { 'Name': 'tag-key', 'Values': [ 'SnapSchedule', ] }, ], ) for s in m_results['Snapshots']: m_snapshot_index[s['SnapshotId']].set_snapschedule_tag_flag(True)
def viewRanking(postVars): global couchdbServer players = [] try: db = couchdbServer.create("players") except: db = couchdbServer["players"] for playerId in db: players.append(Player.load(db,playerId)) sortedPlayers = sorted(players, reverse=True, key=lambda player: player.karma) playersNames = [] playersKarmas = [] for player in sortedPlayers: playersKarmas.append(str(player.karma)) playersNames.append("\"%s\"" % player.name) try: db = couchdbServer.create("snapshots") except: db = couchdbServer["snapshots"] snapshots = [] lastOpponent = None for snapshotId in db: snapshot = Snapshot.load(db,snapshotId) snapData = {} snapData["decription"] = snapshot.description snapData["opponent"] = snapshot.game.opponent snapData["idx"] = "%d%d%d%d%d%d" % (snapshot.date.year, snapshot.date.month, snapshot.date.day, snapshot.date.hour, snapshot.date.minute, snapshot.date.second ) snapshotLabel = "%d/%d/%d" % (snapshot.date.day, snapshot.date.month, snapshot.date.year ) if snapshot.game.opponent != lastOpponent: lastOpponent = snapshot.game.opponent snapshotLabel = "%s %s" % (snapshot.game.opponent, snapshotLabel) snapData["label"] = snapshotLabel snapData["players"] = {} for player in snapshot.players: snapData["players"][player.name]= player.karma snapshots.append(snapData) sortedSnapshots = sorted(snapshots, key=lambda snapshot: snapshot["idx"]) templateVars = {} templateVars["playersKarmas"] = ",".join(playersKarmas) templateVars["playersNames"] = ",".join(playersNames) templateVars["jsonSnapshots"] = json.dumps(sortedSnapshots) return output_template("viewRanking.html", templateVars)