#!/usr/bin/env python
mtn_epochs = [
("org.openembedded.dev","epoch"),
("org.openembedded.oz354x", "epoch"),
("org.openembedded.documentation", "epoch"),
("org.openembedded.oz354fam083", "epoch")
]
known_revs = [
]
def backup_db(dbname):
"""
Create a backup
"""
print "Creating a backup of %s" % dbname
os.system("cp %s monotone_025_data_backup.mtn")
os.system("cp % rosterify_base.mtn")
return "rosterify_base.mtn"
def verify_db(dbname):
"""
Verify that the db is uptodate with the published one
"""
pass
def rosterify(basedb):
"""
Rosterify the db now
"""
os.system("mtn --db %s db migrate", basedb)
os.system("mtn --db %s db rosterify", basedb)
def find_private(dbname):
"""
Find the private revisions of the db
"""
return []
def kill_common(dbname):
"""
Kill common revs from the DB
"""
for rev in known_revs:
os.system("""mtn --db %s db execute "DELETE FROM revision_certs WHERE id = '%s'""" % (dbname,rev) )
def verify_new(dbname,private):
"""
Check that only private data survived
"""
pass
def update_epochs(dbname):
"""
Update the epochs in the database
"""
for (branch,epoch) in mtn_epochs:
os.system("mtn --db %s db set_epoch %s %s" % (dbname,branch,epoch) )
if __name__ == "__main__":
if len(sys.argv) != 2:
print "Error not enough commands: call with base database"
return
base_db = backup_db(sys.argv[1])
verify_db(base_db)
privates = find_private(base_db)
rosterify(base_db)
kill_common(base_db)
verify_new(base_db,privates)
update_epochs(base_db)