Пример #1
0
def init(dbs=[], services={}, templates=False):
	"""Initialise

	Starts up most of the modules needed to support REST and Services

	Arguments:
		dbs (str[]): List of DBs to start up
		services (dict): Dictionary of service name to instance being managed
			by the caller

	Returns:
		REST.Config
	"""

	# Load the config
	Conf.load('config.json')
	sConfOverride = 'config.%s.json' % platform.node()
	if os.path.isfile(sConfOverride):
		Conf.load_merge(sConfOverride)

	# Add the global prepend
	Record_Base.dbPrepend(Conf.get(("mysql", "prepend"), ''))

	# Go through the list of DBs requested
	for s in dbs:
		Record_MySQL.addHost(s, Conf.get(("mysql", "hosts", s)))

	# Init the Sesh module
	Sesh.init(Conf.get(("redis", "primary")))

	# Create the REST config instance
	oRestConf = REST.Config(Conf.get("rest"))

	# Set verbose mode if requested
	if 'VERBOSE' in os.environ and os.environ['VERBOSE'] == '1':
		Services.verbose()

	# Get all the services
	dServices = {k:None for k in Conf.get(('rest', 'services'))}

	# Overwrite those passed in
	for n,o in services.items():
		dServices[n] = o

	# Register all services
	Services.register(dServices, oRestConf, Conf.get(('services', 'salt')))

	# Init Templates
	if templates:
		Templates.init(templates)

	# Return the REST config
	return oRestConf
Пример #2
0
sVer = sys.argv[1].replace('.', '_')

# Load the config
Conf.load('../config.json')
sConfOverride = '../config.%s.json' % platform.node()
if os.path.isfile(sConfOverride):
	Conf.load_merge(sConfOverride)

# Add the global prepend and primary host to rethinkdb
Record_Base.dbPrepend(Conf.get(("rethinkdb", "prepend"), ''))
Record_ReDB.addHost('primary', Conf.get(("rethinkdb", "hosts", "primary")))

# Register all services
Services.register(
	{k:None for k in Conf.get(('rest', 'services'))},
	REST.Config(Conf.get("rest")),
	Conf.get(('services', 'salt'))
)

# Try to import the version
try:
	oVer = importlib.import_module('upgrades.%s' % sVer)
except ImportError as e:
	print('The given version "%s" is invalid.' % sVer)
	print(e)
	sys.exit(1)

# Load or create the version file
oLogFile = UpgradeLog('upgrades/%s/_upgrade.log' % sVer)

# Run the version files
Пример #3
0
if os.path.isfile(sConfOverride):
    Conf.load_merge(sConfOverride)

# Init the Sesh module
Sesh.init(Conf.get(("redis", "session")))

# Create the REST config instance
oRestConf = REST.Config(Conf.get("rest"))

# Set verbose mode if requested
if 'AXE_VERBOSE' in os.environ and os.environ['AXE_VERBOSE'] == '1':
    Services.verbose()

# Register all necessary services
Services.register({
    "auth": None,
    "webpoll": WebPoll()
}, oRestConf, Conf.get(('services', 'salt')))

# Create the HTTP server and map requests to service
REST.Server(
    {
        "/clear": {
            "methods": REST.UPDATE,
            "session": True
        },
        "/join": {
            "methods": REST.CREATE,
            "session": True
        },
        "/leave": {
            "methods": REST.CREATE,
Пример #4
0
Record_Base.dbPrepend(Conf.get(("rethinkdb", "prepend"), ''))
Record_ReDB.addHost('primary', Conf.get(("rethinkdb", "hosts", "primary")))

# Init the Sesh module
Sesh.init(Conf.get(("redis", "session")))

# Create the REST config instance
oRestConf = REST.Config(Conf.get("rest"))

# Set verbose mode if requested
if 'AXE_VERBOSE' in os.environ and os.environ['AXE_VERBOSE'] == '1':
	Services.verbose()

# Register all necessary services
Services.register({
	"auth": None,
	"watl": Watl()
}, oRestConf, Conf.get(('services', 'salt')))

# Create the HTTP server and map requests to service
REST.Server({
	"/match": {"methods": REST.CREATE | REST.DELETE | REST.READ, "session": True},
	"/match/overtime": {"methods": REST.UPDATE, "session": True},
	"/match/finish/overtime": {"methods": REST.UPDATE, "session": True},
	"/match/finish/game": {"methods": REST.UPDATE, "session": True},
	"/match/game": {"methods": REST.UPDATE, "session": True},
	"/match/stats": {"methods": REST.READ, "session": True},
	"/match/unfinished": {"methods": REST.READ, "session": True},

	"/practice": {"methods": REST.CREATE, "session": True},
	"/practice/data": {"methods": REST.READ, "session": True},
	"/practice/pattern": {"methods": REST.CREATE | REST.DELETE | REST.UPDATE, "session": True},
Пример #5
0
Record_Base.dbPrepend(Conf.get(("rethinkdb", "prepend"), ''))
Record_ReDB.addHost('primary', Conf.get(("rethinkdb", "hosts", "primary")))

# Init the Sesh module
Sesh.init(Conf.get(("redis", "session")))

# Create the REST config instance
oRestConf = REST.Config(Conf.get("rest"))

# Set verbose mode if requested
if 'AXE_VERBOSE' in os.environ and os.environ['AXE_VERBOSE'] == '1':
    Services.verbose()

# Register all necessary services
Services.register({
    "auth": None,
    "natf": Natf()
}, oRestConf, Conf.get(('services', 'salt')))

# Create the HTTP server and map requests to service
REST.Server(
    {
        "/match": {
            "methods": REST.CREATE | REST.DELETE | REST.READ,
            "session": True
        },
        "/match/bigaxe/points": {
            "methods": REST.UPDATE,
            "session": True
        },
        "/match/bigaxe/target": {
            "methods": REST.UPDATE,
Пример #6
0
Conf.load('../config.json')
sConfOverride = '../config.%s.json' % platform.node()
if os.path.isfile(sConfOverride):
	Conf.load_merge(sConfOverride)

# Create the REST config instance
oRestConf = REST.Config(Conf.get("rest"))

# Set verbose mode if requested
_bVerbose = False
if 'AXE_VERBOSE' in os.environ and os.environ['AXE_VERBOSE'] == '1':
	_bVerbose = True

# Register the Services that will be accessible
Services.register({
	"auth": None,
	"communications": None
}, oRestConf, Conf.get(('services', 'salt')))

def emailEffect(effect, info):
	"""Email Effect

	Sends the effect to a developer so they are aware of the error

	Arguments:
		effect {Services.Effect} -- The effect to send
		info {dict} -- Info about the request

	Returns:
		None
	"""
Пример #7
0
# Load the config
Conf.load('../config.json')
sConfOverride = '../config.%s.json' % platform.node()
if os.path.isfile(sConfOverride):
	Conf.load_merge(sConfOverride)

# Init the SMTP module
SMTP.init(**Conf.get(('email', 'smtp')))

# Create the REST config instance
oRestConf = REST.Config(Conf.get("rest"))

# Set verbose mode if requested
if 'AXE_VERBOSE' in os.environ and os.environ['AXE_VERBOSE'] == '1':
	Services.verbose()

# Register the Services that will be accessible
Services.register({
	"communications": Communications()
}, oRestConf, Conf.get(('services', 'salt')))

# Create the HTTP server and map requests to service
REST.Server({
	"/email": {"methods": REST.POST},
	"/sms": {"methods": REST.POST},
}, 'communications').run(
	host=oRestConf['communications']['host'],
	port=oRestConf['communications']['port'],
	workers=oRestConf['communications']['workers']
)
Пример #8
0
# Init the Sesh module
Sesh.init(Conf.get(("redis", "session")))

# Create the REST config instance
oRestConf = REST.Config(Conf.get("rest"))

# Set verbose mode if requested
if 'AXE_VERBOSE' in os.environ and os.environ['AXE_VERBOSE'] == '1':
    Services.verbose()

# Get all the services
dServices = {k: None for k in Conf.get(('rest', 'services'))}
dServices['auth'] = Auth()

# Register all services
Services.register(dServices, oRestConf, Conf.get(('services', 'salt')))

# Init Templates
Templates.init('../templates')

# Create the HTTP server and map requests to service
REST.Server(
    {
        "/favourite": {
            "method": REST.CREATE | REST.DELETE,
            "session": True
        },
        "/favourites": {
            "method": REST.READ,
            "session": True
        },