def create_grains(minion_list, product_id, user): salt_api = salt_api_for_product(product_id) if isinstance(salt_api, dict): return salt_api, 500 db = DB() for minion in minion_list: select_status, select_result = db.select( "grains", "where data -> '$.id'='%s' and data -> " "'$.product_id'='%s'" % (minion, product_id)) grains = salt_api.grains(minion) grains[minion].update({"product_id": product_id}) if select_status is True: if len(select_result) > 1: for m in select_result: db.delete_by_id("grains", m["id"]) insert_status, insert_result = db.insert( "grains", json.dumps(grains[minion], ensure_ascii=False)) if insert_status is not True: logger.error("Add Grains error: %s" % insert_result) elif len(select_result) == 1: update_status, update_result = db.update_by_id( "grains", json.dumps(grains[minion], ensure_ascii=False), select_result[0]["id"]) if update_status is not True: logger.error("Update Grains error: %s" % update_result) else: insert_status, insert_result = db.insert( "grains", json.dumps(grains[minion], ensure_ascii=False)) if insert_status is not True: logger.error("Add Grains error: %s" % insert_result) db.close_mysql()
def delete(self, groups_id): db = DB() # 首先获得所需项目 status, result = db.select_by_id("groups", groups_id) if status: group = result else: return {"status": False, "message": str(result)}, 500 # 执行删除 status, result = db.delete_by_id("groups", groups_id) if status is not True: return {"status": False, "message": result}, 500 if result is 0: return { "status": False, "message": "%s does not exist" % groups_id }, 404 # 完成数据的统一,将project中的组类别删除 project_list = group['projects'] for project_name in project_list: status, result = db.select( 'projects', "where data -> '$.name'='%s'" % project_name) project_origion = dict(result[0]) group_list = list(project_origion['groups']) group_list.remove(groups_id) project_origion['groups'] = group_list db.update_by_id("projects", json.dumps(project_origion, ensure_ascii=False), result[0]['id']) db.close_mysql() return {"status": True, "message": ""}, 200
def delete(self, period_id): user = g.user_info["username"] db = DB() select_status, select_result = db.select_by_id("period_task", period_id) if select_status is not True: db.close_mysql() logger.error("Modify period_task error: %s" % select_result) return {"status": False, "message": select_result}, 500 # 删除定期任务的时候删除对应的调度 if select_result["scheduler"] == "period": scheduler_result = scheduler_delete(period_id) if scheduler_result.get("status") is not True: # 假如不是job不存在,才返回 if "'No job" not in scheduler_result.get("message"): return { "status": False, "message": scheduler_result.get("message") }, 500 status, result = db.delete_by_id("period_task", period_id) if status is not True: logger.error("Delete period_task error: %s" % result) return {"status": False, "message": result}, 500 if result is 0: return { "status": False, "message": "%s does not exist" % period_id }, 404 period_result_status, period_result_result = db.delete_by_id( "period_result", period_id) if period_result_status is not True: logger.error("Delete period_result error: %s" % period_result_result) return {"status": False, "message": result}, 500 period_audit_status, period_audit_result = db.delete_by_id( "period_audit", period_id) if period_audit_status is not True: logger.error("Delete period_result error: %s" % period_audit_result) return {"status": False, "message": result}, 500 db.close_mysql() audit_log(user, period_id, "", "period_task", "delete") return {"status": True, "message": ""}, 200
def delete(self, host_id): user = g.user_info["username"] db = DB() status, result = db.delete_by_id("host", host_id) db.close_mysql() if status is not True: logger.error("Delete host error: %s" % result) return {"status": False, "message": result}, 500 if result is 0: return {"status": False, "message": "%s does not exist" % host_id}, 404 audit_log(user, host_id, "", "host", "delete") return {"status": True, "message": ""}, 200
def delete(self, target_id): db = DB() status, result = db.delete_by_id("target", target_id) db.close_mysql() logger.info('delete:' + str(result)) if status is not True: logger.error("Delete product error: %s" % result) return {"status": False, "message": result}, 500 if result is 0: return { "status": False, "message": "%s does not exist" % target_id }, 404 return {"status": True, "message": ""}, 200
def delete(self, groups_id): user = g.user_info["username"] db = DB() status, result = db.delete_by_id("groups", groups_id) db.close_mysql() if status is not True: logger.error("Delete groups error: %s" % result) return {"status": False, "message": result}, 500 if result is 0: return {"status": False, "message": "%s does not exist" % groups_id}, 404 audit_log(user, groups_id, "", "groups", "delete") info = update_user_privilege("groups", groups_id) if info["status"] is False: return {"status": False, "message": info["message"]}, 500 return {"status": True, "message": ""}, 204
def delete_host(minion_list, product_id, user): db = DB() group_status, group_result = db.select( "groups", "where data -> '$.product_id'='%s'" % product_id) if group_status is False: logger.error("Delete %s host error: %s" % (minion_list, group_status)) for minion_id in minion_list: try: # 组里面删除主机 for group in group_result: for minion in group.get("minion"): if minion == minion_id: group.get("minion").remove(minion_id) status, result = db.update_by_id( "groups", json.dumps(group, ensure_ascii=False), group.get("id")) if status is not True: logger.error("Modify group error: %s" % result) except Exception as e: logger.error("Delete %s host error: %s" % (minion_id, e)) select_status, select_result = db.select( "host", "where data -> '$.minion_id'='%s' " "and data -> '$.product_id'='%s'" % (minion_id, product_id)) if select_status is False: logger.error("Delete % host error: %s" % (minion_id, select_result)) if select_result: for host in select_result: try: status, result = db.delete_by_id("host", host["id"]) if status is False: logger.error("Delete %s host error: %s" % (minion_id, result)) else: audit_log(user, host["id"], product_id, "host", "delete") except Exception as e: logger.error("Delete %s host error: %s" % (minion_id, e)) else: logger.error("Select %s host does not exist" % minion_id) db.close_mysql()
def delete(self, project_id): db = DB() try: status, message = update_group_for_delete_project(project_id) except Exception as e: logger.info('Exception:' + str(e)) if status is not True: return {"status": False, "message": message}, 500 status, result = db.delete_by_id("projects", project_id) db.close_mysql() if status is not True: logger.error("Delete projects error: %s" % result) return {"status": False, "message": result}, 500 if result is 0: return { "status": False, "message": "%s does not exist" % project_id }, 404 return {"status": True, "message": ""}, 200
def delete(self, product_id): user = g.user_info["username"] db = DB() status, result = db.delete_by_id("product", product_id) db.close_mysql() if status is not True: logger.error("Delete product error: %s" % result) return {"status": False, "message": result}, 500 if result is 0: return { "status": False, "message": "%s does not exist" % product_id }, 404 audit_log(user, product_id, product_id, "product", "delete") info = update_user_privilege("product", product_id) if info["status"] is False: return {"status": False, "message": info["message"]}, 500 # 更新Rsync配置 rsync_config() return {"status": True, "message": ""}, 200
def delete_host(minion_list, product_id, user): db = DB() for minion_id in minion_list: select_status, select_result = db.select("host", "where data -> '$.minion_id'='%s'" % minion_id) if select_status is False: logger.error("Delete % host error: %s" % (minion_id, select_result)) if select_result: for i in select_result: try: host = eval(i[0]) status, result = db.delete_by_id("host", host["id"]) if status is False: logger.error("Delete % host error: %s" % (minion_id, result)) else: audit_log(user, host["id"], product_id, "host", "delete") except Exception as e: logger.error("Delete % host error: %s" % (minion_id, e)) else: logger.error("Select %s host does not exist" % minion_id) db.close_mysql()
def delete_grains(minion_list, product_id, user): db = DB() for minion in minion_list: db.delete_by_id("grains", minion) audit_log(user, minion, product_id, "grains", "delete") db.close_mysql()
def delete_sls(path): db = DB() status, result = db.select("sls", "where data -> '$.path'='%s'" % path) if status is True and result: for sls in result: db.delete_by_id("sls", sls.get("id"))