コード例 #1
0
ファイル: balancer.py プロジェクト: vkap/mastermind
# encoding: utf-8

from cocaine.context import Log, manifest
import msgpack

import traceback
import sys
import copy

import elliptics
import balancelogicadapter as bla
import balancelogic

logging = Log()

logging.info("balancer.py")

symmetric_groups_key = "metabalancer\0symmetric_groups"

def get_groups(n):
    return bla.all_group_ids()

def get_symmetric_groups(n):
    if manifest().get("symmetric_groups", False):
        (good_symm_groups, bad_symm_groups) = bla.filter_symm_groups()
        result = list(good_symm_groups)
        logging.info("good_symm_groups: " + str(result))
        return result
    else:
        return None
コード例 #2
0
ファイル: __init__.py プロジェクト: vkap/mastermind
from time import sleep

import traceback
import sys

sys.path.append("/usr/lib")

import elliptics

import msgpack, json
import balancer
import balancelogicadapter
import node_info_updater

logging = Log()

with open(manifest()["config"], "r") as config_file:
    config = json.load(config_file)

log = elliptics.Logger(str(config["dnet_log"]), config["dnet_log_mask"])
n = elliptics.Node(log)

for host in config["elliptics_nodes"]:
    try:
        logging.info("host: " + str(host))
        n.add_remote(str(host[0]), host[1])
    except Exception as e:
        logging.error("Error: " + str(e) + "\n" + traceback.format_exc())

meta_node = elliptics.Node(log)
# coding: utf-8

from cocaine.context import Log, Dispatch
from cocaine.http import http

from hashlib import sha512

log = Log()
dispatch = Dispatch()


@http
def hash_headers(request, response):
    def process():
        result = "<html><head>Hash</head>%s</html>\r\n" % sha512(
            str(request.headers)).hexdigest()

        response.writeHead(200, {'Content-Type': 'text/plain'})

        response.write(result)
        response.close()

    request.on("request", process)


dispatch.on("hash", hash_headers)