def customerModify(params): """ Modify customer's record """ try: srv = zones.write_zone(params['id']) if not srv['local']: return jsonrpc.result({ 'status':'redirect', 'server': srv['server'] }) if len(params) == 1: return jsonrpc.result({ 'status':'ok' }) if 'state' in params: v = customers.constants.import_state(params['state']) if v == None or v == customers.constants.STATE_DELETED: return jsonrpc.result_error('InvalidRequest', {'status':'error', 'message':'Wrong state: ' + str(params['state'])}) params['state'] = v if 'wallet_mode' in params: v = customers.constants.import_wallet_mode(params['wallet_mode']) if v == None: return jsonrpc.result_error('InvalidRequest', {'status':'error', 'message':'Wrong wallet_mode: ' + str(params['wallet_mode'])}) params['wallet_mode'] = v customers.modify('id', params['id'], params) except Exception, e: LOG.error(e) return jsonrpc.result_error('ServerError', { 'status': 'error', 'message': 'Unable to modify customer' })
def rateAdd(params): """ Adds new rate """ try: srv = zones.write_zone(params["tariff_id"]) if not srv["local"]: return jsonrpc.result({"status": "redirect", "server": srv["server"]}) if "currency" in params: v = rates.constants.import_currency(params["currency"]) w = rates.constants.import_state(params["state"]) if v == None: return jsonrpc.result_error( "InvalidRequest", {"status": "error", "message": "Wrong currency: " + str(params["currency"])} ) if w == None: return jsonrpc.result_error( "InvalidRequest", {"status": "error", "message": "Wrong state: " + str(params["state"])} ) params["currency"] = v params["state"] = w o = rates.Rate(params) rates.add(o) except Exception, e: LOG.error(e) return jsonrpc.result_error("ServerError", {"status": "error", "message": "Unable to add new rate"})
def rateModify(params): """ Modify rate """ try: srv = zones.write_zone(params["tariff_id"]) if not srv["local"]: return jsonrpc.result({"status": "redirect", "server": srv["server"]}) if len(params) <= 2: return jsonrpc.result_error("InvalidRequest", {"status": "error", "message": "More arguments required"}) if "currency" in params: v = rates.constants.import_currency(params["currency"]) if v == None: return jsonrpc.result_error( "InvalidRequest", {"status": "error", "message": "Wrong currency: " + str(params["currency"])} ) params["currency"] = v tid, mid = params["tariff_id"], params["metric_id"] del params["tariff_id"], params["metric_id"] rates.modify(tid, mid, params) except Exception, e: LOG.error(e) return jsonrpc.result_error("ServerError", {"status": "error", "message": "Unable to modify rate"})
def rateRemove(params): try: srv = zones.write_zone(params["tariff_id"]) if not srv["local"]: return jsonrpc.result({"status": "redirect", "server": srv["server"]}) rates.remove(params["tariff_id"], params["metric_id"]) except Exception, e: LOG.error(e) return jsonrpc.result_error("ServerError", {"status": "error", "message": "Unable to remove rate"})
def tariffRemove(params): try: srv = zones.write_zone(params['id']) if not srv['local']: return jsonrpc.result({ 'status':'redirect', 'server': srv['server'] }) tariffs.remove('id', params['id']) except Exception, e: LOG.error(e) return jsonrpc.result_error('ServerError', { 'status': 'error', 'message': 'Unable to remove tariff' })
def tariffAdd(params): try: srv = zones.write_zone(params['id']) if not srv['local']: return jsonrpc.result({ 'status':'redirect', 'server': srv['server'] }) c = tariffs.Tariff(params) tariffs.add(c) except Exception, e: LOG.error(e) return jsonrpc.result_error('ServerError', { 'status': 'error', 'message': 'Unable to add new tariff' })
def rateGet(params): try: ret = rates.get_by_metric(params["tariff_id"], params["metric_id"]) if not ret: srv = zones.write_zone(params["tariff_id"]) if not srv["local"]: return jsonrpc.result({"status": "redirect", "server": srv["server"]}) return jsonrpc.result_error("InvalidRequest", {"status": "error", "message": "Rate not found"}) except Exception, e: LOG.error(e) return jsonrpc.result_error("ServerError", {"status": "error", "message": "Unable to obtain rate list"})
def customerRemove(params): """ Remove customer by name """ try: srv = zones.write_zone(params['id']) if not srv['local']: return jsonrpc.result({ 'status':'redirect', 'server': srv['server'] }) c = customers.remove('id', params['id']) except Exception, e: LOG.error(e) return jsonrpc.result_error('ServerError', { 'status': 'error', 'message': 'Unable to remove customer' })
def tariffModify(params): try: srv = zones.write_zone(params['id']) if not srv['local']: return jsonrpc.result({ 'status':'redirect', 'server': srv['server'] }) if len(params) == 1: return jsonrpc.result({ 'status':'ok' }) if 'state' in params: v = tariffs.constants.import_state(params['state']) if v == None or v == tariffs.constants.STATE_DELETED: return jsonrpc.result_error('InvalidRequest', { 'status':'error', 'message':'Wrong state: ' + str(params['state'])}) params['state'] = v tariffs.modify('id', params['id'], params) except Exception, e: LOG.error(e) return jsonrpc.result_error('ServerError', { 'status': 'error', 'message': 'Unable to modify tariff' })
def customerDeposit(params): """ Make deposit to customer """ try: srv = zones.write_zone(params['id']) if not srv['local']: return jsonrpc.result({ 'status':'redirect', 'server': srv['server'] }) if params['value'] != 0: customers.deposit(params['id'], params['value']) except Exception, e: LOG.error(e) return jsonrpc.result_error('ServerError', { 'status': 'error', 'message': 'Unable to make a deposit' })
def tariffGet(params): try: ret = tariffs.get(params['id']) if not ret: srv = zones.write_zone(params['id']) if not srv['local']: return jsonrpc.result({ 'status':'redirect', 'server': srv['server'] }) return jsonrpc.result_error('InvalidRequest', { 'status': 'error', 'message': 'Tariff not found' }) except Exception, e: LOG.error(e) return jsonrpc.result_error('ServerError', { 'status': 'error', 'message': 'Unable to obtain tariff' })
def customerAdd(params): """ Adds new customer account """ try: srv = zones.write_zone(params['id']) if not srv['local']: return jsonrpc.result({ 'status':'redirect', 'server': srv['server'] }) wallet_mode = customers.constants.import_wallet_mode(params['wallet_mode']) if wallet_mode == None: return jsonrpc.result_error('InvalidRequest', {'status':'error', 'message':'Wrong wallet_mode: ' + str(params['wallet_mode'])}) params['wallet_mode'] = wallet_mode c = customers.Customer(params) customers.add(c) except Exception, e: LOG.error(e) return jsonrpc.result_error('ServerError', { 'status': 'error', 'message': 'Unable to add new customer' })
'time_create': request['time-create'], 'time_check': request['time-create'], 'time_destroy': request['time-destroy'], 'target_user': request['user'], 'target_uuid': request['uuid'], 'target_descr': request['descr'], }) tasks.add(t) except Exception, e: LOG.exception("Unable to add new task: %s", e) return jsonrpc.result_error('ServerError', { 'status': 'error', 'message': 'Unable to add new task' }) return jsonrpc.result({'status':'ok', 'id':t.base_id}) @jsonrpc.method( validate = V({ 'id': V(basestring, min=36, max=36), 'value': V(int), 'user': V(basestring, min=1, max=64), 'uuid': V(basestring, min=36, max=36), 'descr': V(basestring), 'time': V(int, default=0), }), auth = True) def taskModify(request): try: tasks.update(request['id'],
from bc import zones LOG = log.logger("wapi.tariffs") @jsonrpc.method(validate=False, auth=True) def tariffList(params): try: ret = map(lambda c: c.values, tariffs.get_all()) except Exception, e: LOG.error(e) return jsonrpc.result_error('ServerError', { 'status': 'error', 'message': 'Unable to obtain tariff list' }) return jsonrpc.result({ 'status':'ok', 'tariffs': ret }) @jsonrpc.method( validate = V({ 'id': V(basestring, min=36, max=36) }), auth = True) def tariffGet(params): try: ret = tariffs.get(params['id']) if not ret: srv = zones.write_zone(params['id']) if not srv['local']: return jsonrpc.result({ 'status':'redirect', 'server': srv['server'] }) return jsonrpc.result_error('InvalidRequest',
def test(params): return jsonrpc.result({'status':'ok'})
LOG = log.logger("wapi.metrics") @jsonrpc.method(validate = False, auth = True) def metricList(request): """ Returns a list of all registered metrics """ try: ret = map(lambda m: m.values, metrics.get_all()) except Exception, e: LOG.error(e) return jsonrpc.result_error('ServerError', { 'status': 'error', 'message': 'Unable to obtain metric list' }) return jsonrpc.result({ 'status': 'ok', 'metrics': ret }) @jsonrpc.method( validate = V({ 'id': V(basestring, min=1, max=128), 'type': V(basestring, min=1, max=32), 'formula': V(basestring, min=1, max=32), 'aggregate': V(int), }), auth = True) def metricAdd(request): """ Adds new billing metric """ try: m = metrics.Metric(request)
@jsonrpc.method( validate = V({ 'table': V(basestring, min=3, max=36), 'record': V(dict), }), auth = True) def sync(params): try: bc_sync.record(params['table'], params['record']) except Exception, e: LOG.error(e) return jsonrpc.result_error('ServerError', { 'status': 'error', 'message': 'Unable to sync object' }) return jsonrpc.result({ 'status':'ok' }) @jsonrpc.method( validate = V({ 'table': V(basestring, min=3, max=36), 'list': V(list), }), auth = True) def syncList(params): try: for r in params['list']: bc_sync.record(params['table'], r) except Exception, e: LOG.error(e)
@jsonrpc.method(validate=V({"tariff_id": V(basestring, required=False, min=36, max=36)}, drop_optional=True), auth=True) def rateList(params): try: if len(params) == 0: ret = map(lambda c: c.values, rates.get_all()) elif len(params) == 1: ret = map(lambda c: c.values, rates.get_by_tariff(params["tariff_id"])) except Exception, e: LOG.error(e) return jsonrpc.result_error("ServerError", {"status": "error", "message": "Unable to obtain rate list"}) return jsonrpc.result({"status": "ok", "rates": ret}) @jsonrpc.method( validate=V( { "metric_id": V(basestring, required=True, min=1, max=128), "tariff_id": V(basestring, required=True, min=36, max=36), } ), auth=True, ) def rateGet(params): try: ret = rates.get_by_metric(params["tariff_id"], params["metric_id"]) if not ret:
LOG = log.logger("wapi.customers") @jsonrpc.method(validate = False, auth = True) def customerList(request): """ Returns a list of all registered customers """ try: ret = map(lambda c: c.values, customers.get_all()) except Exception, e: LOG.error(e) return jsonrpc.result_error('ServerError', { 'status': 'error', 'message': 'Unable to obtain customer list' }) return jsonrpc.result({ 'status':'ok', 'customers': ret }) @jsonrpc.method( validate = V({ 'id': V(basestring, min=36, max=36) }), auth = True) def customerGet(params): try: ret = customers.get(params['id'], 'id') if not ret: srv = zones.write_zone(params['id']) if not srv['local']: return jsonrpc.result({ 'status':'redirect', 'server': srv['server'] }) return jsonrpc.result_error('InvalidRequest',