def delete_all_services(user_name, project_name): prj_id = Db.exec_one("select id from projects " "where name='%s' and userID = (select id from user where name = '%s')", (project_name, user_name)) if prj_id is None: raise Exception("Project does not exist for %s, %s" % (user_name, project_name)) Db.exec_cmd("delete from services where projectID = '%s'", prj_id)
def delete(user_id, password, project_name): # todo: 删除容器考虑在上层实现? srv_list = DBModel.Service.get_list(user_id, password, project_name) if len(srv_list) != 0: for service_name in srv_list: ip = DBModel.Service.get_host_ip(user_id, project_name, service_name) if ip == '-': continue else: # rm this container # cli = Client(base_url=url, version=config.c_version) # full_name = username + config.split_mark + project_name + config.split_mark + service_name # if container_exists(cli, full_name): # logs = logs + full_name + '\n' + cli.logs(container=full_name) + '\n' # cli.stop(container=full_name) # cli.remove_container(container=full_name) pass Db.exec_cmd("delete from service where project='%s'", project_name) Db.exec_cmd("delete from project where name='%s'", project_name)
def delete_user_and_projects(user_name): """ 删除用户及该用户的所有项目和所属服务 """ # todo: 删除所有项目和所属服务是否有上层负责,或以事务方式执行? # todo: 合并下面的多条sql cmds? user_id = Db.exec_one("select id from user where name='%s'", user_name) Db.exec_cmd("delete from services where projectID in " "(select id from projects where userID='%s')", user_id) Db.exec_cmd("delete from projects where userID='%s'", user_id) Db.exec_cmd("delete from user where name='%s'", user_id)
def create(user_name, service_name, machine_ip, project_name): prj_id = Db.exec_one("select id from projects " "where name='%s' and userID in (select id from user where name = '%s')", (project_name, user_name)) Db.exec_cmd("insert into services(name, projectID, IP) values('%s', %s, '%s')", (service_name, prj_id, machine_ip))
def create(user_id, volume_path): Db.exec_cmd("insert into info(volume) values('%s') where name='%s'", (user_id, volume_path))
def create(user_id, net_id): Db.exec_cmd("insert into info(net) values('%s') where name='%s'", (net_id, user_id)) # todo: check tuple usage
def add_machine_list(ip_list): for ip in ip_list: Db.exec_cmd("insert into machine(ip) values('%s')", ip)
def get(user_id): data = Db.exec_cmd("select net from info where name='%s'", user_id) # todo: check tuple usage return data[0]
def add_user(user_name, email): Db.exec_cmd("insert into user(name, email) values('%s', '%s')", (user_name, email))
def delete(user_id, project_name): Db.exec_cmd("delete from projects where name ='%s' and userID='%s'", (project_name, user_id))
def create(user_id, project_name, url): Db.exec_cmd("insert into projects(name, userID, url) values('%s', '%s', '%s')", (project_name, user_id, url))