def create_customer(data): is_completed = False try: if isinstance(data, unicode): data = get_json(data) print_msg("Create Customer", data.get("P_USER_NAME")) validate_request["create_customer"](data) # Create new customecreate_new_siter document customer = frappe.new_doc('Customer') customer.customer_name = data.get('P_CUST_NAME') customer.customer_type = 'Company' customer.customer_group = 'Commercial' customer.territory = 'All Territories' customer.cpr_cr = data.get("P_CPR_CR") customer.is_active = 0 customer.domain_name = data.get("P_USER_NAME") customer.save(ignore_permissions=True) # create new contact create_contact(customer, data) # create new site {deactivated} admin_pwd = create_new_site(data, customer.name) notify_user("create_customer", data) create_request_log("02", "Success", "create_customer", data) is_completed = True except Exception, e: frappe.db.rollback() error = "%s\n%s"%(e, traceback.format_exc()) print error create_request_log("01", str(e), "create_customer", data, error)
def delete_customer(args): is_completed = False try: if isinstance(args, unicode): args = get_json(args) print_msg("Delete Customer", args.get("P_USER_NAME")) validate_request["delete_customer"](args) domain_name = args.get("P_USER_NAME") site = frappe.get_doc("Sites", domain_name) if site.customer: if not site.is_active: # drop-site cmd = { "../../bin/bench drop-site --root-password {0} {1}".format(get_mariadb_root_pwd(), domain_name): "Deleting Site - {0}".format(domain_name) } exec_cmd(cmd, cwd=get_target_banch(), trxn_no=args.get("P_TRXN_NO")) notify_user("delete_customer", args) # delete customer and site frappe.delete_doc("Sites", site.name, ignore_permissions=True) frappe.delete_doc("Customer", site.customer, ignore_permissions=True) create_request_log("02", "Success", "delete_customer", args) else: raise Exception("Can not delete the Customer, Please first deactivate the site : %s"%(site.name)) else: raise Exception("Unable to find site customer, Please contact Administrator") is_completed = True except Exception, e: import traceback frappe.db.rollback() error = "%s\n%s"%(e, traceback.format_exc()) print error create_request_log("01", str(e), "delete_customer", args, error)
def restart_service(args, parent_service=None): # update customer master, is_active is_completed = False domain = args.get("P_USER_NAME") try: if isinstance(args, unicode): args = get_json(args) cmd = "restart_service" if not parent_service else parent_service print_msg(cmd.upper(), args.get("P_USER_NAME")) validate_request[cmd](args) if is_site_already_exists(domain): if not frappe.db.get_value("Sites", domain, "is_active"): configure_site(domain, is_disabled=False, trxn_no=args.get("P_TRXN_NO")) update_sites_doc(domain, is_active=True) update_customer_domain_details(domain, is_active=True) notify_user("restart_service", args) create_request_log("02", "Success", "restart_service", args) else: frappe.throw("Requested site (%s) is already active"%(domain)) else: frappe.throw("Requested site (%s) does not exists"%(domain)) is_completed = True except Exception, e: frappe.db.rollback() error = "%s\n%s"%(e, traceback.format_exc()) print error create_request_log("01", str(e), "restart_service", args, error)
def disconnect_service(args, parent_service=None): # update customer master, is_active is_completed = False try: if isinstance(args, unicode): args = get_json(args) cmd = "disconnect_service" if not parent_service else parent_service print_msg(cmd.upper(), args.get("P_USER_NAME")) validate_request[cmd](args) if is_site_already_exists(args.get("P_USER_NAME")): if frappe.db.get_value("Sites", args.get("P_USER_NAME"),"is_active"): configure_site(args.get("P_USER_NAME"), is_disabled=True, trxn_no=args.get("P_TRXN_NO")) update_sites_doc(args.get("P_USER_NAME"), is_active=False) update_customer_domain_details(args.get("P_USER_NAME"), is_active=False) # check if any site is linked with package if not then update is_assigned value of package if not frappe.db.get_value("Sites",{"package_id":args.get("P_PACKAGE_ID")},"name"): frappe.db.set_value("Packages", args.get("P_PACKAGE_ID"), "is_assigned", 0) notify_user("disconnect_service", args) create_request_log("02", "Success", "disconnect_service", args) else: frappe.throw("Requested site (%s) is already disconnected"%(args.get("P_USER_NAME"))) else: frappe.throw("Requested site (%s) does not exists"%(args.get("P_USER_NAME"))) is_completed = True except Exception, e: frappe.db.rollback() error = "%s\n%s"%(e, traceback.format_exc()) print error create_request_log("01", str(e), "disconnect_service", args, error)
def create_new_site(args, customer): """Create new site, create site doc""" if isinstance(args, unicode): args = get_json(args) if not is_site_already_exists(args.get("P_USER_NAME")): pwd = generate_random_password() create_site(args.get("P_USER_NAME"), args.get("P_AUTHENTICATE"), pwd, args.get("P_TRXN_NO"), is_active=False) create_sites_doc(args, customer, pwd) return pwd else: raise Exception("Requested site (%s) already exist"%(args.get("P_USER_NAME")))
def create_service(args): """Activate newly created service""" # update customer master - is_active and CPR CR, current package id is_completed = False try: if isinstance(args, unicode): args = get_json(args) print_msg("Create Service", args.get("P_USER_NAME")) validate_request["create_service"](args) if is_site_already_exists(args.get("P_USER_NAME")): result = {} if frappe.db.get_value("Sites", args.get("P_USER_NAME"),"is_active"): result = update_client_instance_package_details(args, is_active=True) else: configure_site(args.get("P_USER_NAME"), is_disabled=False, trxn_no=args.get("P_TRXN_NO")) update_sites_doc(args.get("P_USER_NAME"), is_active=True) # Allowing the supervisor and nginx to reload import time time.sleep(10) result = update_client_instance_package_details(args, is_active=True) if result.get("X_ERROR_CODE") == "02": update_customer_package_details(args) notify_user("create_service", args, password=get_admin_pwd(args.get("P_USER_NAME"))) create_request_log("02", "Success", "create_service", args) else: configure_site(args.get("P_USER_NAME"), is_disabled=True) update_sites_doc(args.get("P_USER_NAME"), is_active=False) raise Exception("Error : ", result.get("X_ERROR_DESC")) else: raise Exception("Requested site (%s) does not exist"%(args.get("P_USER_NAME"))) is_completed = True except Exception, e: frappe.db.rollback() print e error = "%s\n%s"%(e, traceback.format_exc()) print error create_request_log("01", str(e), "create_service", args, error)
def control_action(args): args = get_json(args) if args.get("P_CREDIT_ACTION") in ["TOS","SUSPEND"]: return disconnect_service(args, parent_service="control_action"); else: return restart_service(args, parent_service="control_action")