Skip to content

Commit

Permalink
fixed #40; restructured directory for #30
Browse files Browse the repository at this point in the history
  • Loading branch information
dcvan24 committed Jun 12, 2018
1 parent f069930 commit 6e53f5a
Show file tree
Hide file tree
Showing 13 changed files with 36 additions and 25 deletions.
6 changes: 3 additions & 3 deletions appliance/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
import importlib

from config import config
from commons import MotorClient, AutonomousMonitor
from commons import MongoClient, AutonomousMonitor
from commons import Manager, APIManager
from appliance.base import Appliance
from container.manager import ContainerManager
from scheduler.manager import ApplianceDAGDBManager
from scheduler.appliance.manager import ApplianceDAGDBManager


def get_scheduler():
Expand Down Expand Up @@ -120,7 +120,7 @@ async def deprovision_appliance(self, app_id):
class ApplianceDBManager(Manager):

def __init__(self):
self.__app_col = MotorClient().requester.appliance
self.__app_col = MongoClient()[config.db.name].appliance

async def get_appliances(self, **filters):
return 200, [Appliance(**app) async for app in self.__app_col.find(filters)], None
Expand Down
Empty file removed appliance/ui/__init__.py
Empty file.
6 changes: 3 additions & 3 deletions cluster/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from config import config
from cluster.base import Master, Agent, AgentResources
from commons import MotorClient, AutonomousMonitor
from commons import MongoClient, AutonomousMonitor
from commons import APIManager, Manager


Expand Down Expand Up @@ -178,7 +178,7 @@ async def find_chronos(self):
class MasterDBManager(Manager):

def __init__(self):
self.__master_col = MotorClient().requester.master
self.__master_col = MongoClient()[config.db.name].master

async def get_masters(self):
return [Master(**m) async for m in self.__master_col.find()]
Expand All @@ -195,7 +195,7 @@ async def update_master(self, master):
class AgentDBManager(Manager):

def __init__(self):
self.__agent_col = MotorClient().requester.agent
self.__agent_col = MongoClient()[config.db.name].agent

async def get_all_agents(self):
return [Agent(**a, resources=AgentResources(**a.pop('resources', None)))
Expand Down
12 changes: 7 additions & 5 deletions commons.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
import sys
import json
import motor
import logging
import tornado

from abc import ABCMeta, abstractmethod
from tornado.httpclient import AsyncHTTPClient, HTTPError
from tornado.ioloop import PeriodicCallback
from motor.motor_tornado import MotorClient, MotorDatabase

from util import error, dirname
from config import config


class Singleton(type):

_instances = {}

def __call__(cls, *args, **kwargs):
if cls not in cls._instances:
cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
return cls._instances[cls]


Expand All @@ -38,10 +40,10 @@ def logger(self):
return logger


class MotorClient(motor.motor_tornado.MotorClient, metaclass=Singleton):
class MongoClient(MotorClient, metaclass=Singleton):

def __init__(self, *args, **kargs):
super(MotorClient, self).__init__(config.db.host, config.db.port, *args, **kargs)
def __init__(self, *args, **kwargs):
super(MongoClient, self).__init__(config.db.host, config.db.port, *args, **kwargs)


class AsyncHttpClientWrapper(Loggable):
Expand Down
11 changes: 8 additions & 3 deletions config.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ def __init__(self, port=0, *args, **kwargs):
class GeneralConfig:

def __init__(self, master, port=9090, n_parallel=1,
scheduler='scheduler.DefaultApplianceScheduler', ha=False,
*args, **kwargs):
scheduler='scheduler.appliance.DefaultApplianceScheduler',
ha=False, *args, **kwargs):
self.__master = master
self.__port = port
self.__n_parallel = n_parallel
Expand Down Expand Up @@ -105,9 +105,10 @@ def ha(self):

class DatabaseConfig:

def __init__(self, host, port, *args, **kwargs):
def __init__(self, host, port, name, *args, **kwargs):
self.__host = host
self.__port = port
self.__name = name

@property
def host(self):
Expand All @@ -117,6 +118,10 @@ def host(self):
def port(self):
return self.__port

@property
def name(self):
return self.__name


class Configuration:

Expand Down
3 changes: 2 additions & 1 deletion config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@ pivot:
master: m1.dcos
port: 9090
n_parallel: 8
scheduler: scheduler.plugin.location.LocationAwareApplianceScheduler
scheduler: scheduler.appliance.plugin.location.LocationAwareApplianceScheduler
ha: false
db:
host: localhost
port: 27017
name: pivot
mesos:
port: 5050
marathon:
Expand Down
4 changes: 2 additions & 2 deletions container/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from datetime import timedelta

from commons import MotorClient
from commons import MongoClient
from commons import APIManager, Manager
from container.base import Container, ContainerType, ContainerState, Endpoint, Deployment
from cluster.manager import AgentDBManager
Expand Down Expand Up @@ -271,7 +271,7 @@ async def delete_job(self, contr):
class ContainerDBManager(Manager):

def __init__(self):
self.__contr_col = MotorClient().requester.container
self.__contr_col = MongoClient()[config.db.name].container

async def get_container_by_virtual_ip_address(self, ip_addr):
return await self._get_container(**{'deployment.ip_addresses': ip_addr})
Expand Down
4 changes: 3 additions & 1 deletion docker/pivot/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ def parse_args():
help='MongoDB host')
parser.add_argument('--db_port', dest='db_port', type=int, default=27017,
help='MongoDB listen port')
parser.add_argument('--db_name', dest='db_name', type=str, default='pivot',
help='Database name')
parser.add_argument('--ha', action='store_true', help='Turn on HA mode')
parser.add_argument('--irods_api_host', dest='irods_api_host',
type=str, help='iRODS API host')
Expand All @@ -38,7 +40,7 @@ def create_pivot_config(args):
pivot_cfg = yaml.load(open(pivot_cfg_f))
pivot_cfg['pivot'].update(master=args.master, port=args.port,
n_parallel=args.n_parallel, ha=args.ha)
pivot_cfg['db'] = dict(host=args.db_host, port=args.db_port)
pivot_cfg['db'] = dict(host=args.db_host, port=args.db_port, name=args.db_name)
if args.irods_api_host and args.irods_api_port:
pivot_cfg['irods'] = dict(host=args.irods_api_host, port=args.irods_api_port)
yaml.dump(pivot_cfg, open(pivot_cfg_f, 'w'), default_flow_style=False)
Expand Down
Empty file removed index/__init__.py
Empty file.
4 changes: 2 additions & 2 deletions scheduler/__init__.py → scheduler/appliance/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from abc import ABCMeta, abstractmethod

from scheduler.base import ApplianceDAG, SchedulePlan
from scheduler.manager import SchedulerManager
from scheduler.appliance.base import ApplianceDAG, SchedulePlan
from scheduler.appliance.manager import SchedulerManager

from commons import AutonomousMonitor

Expand Down
File renamed without changes.
7 changes: 4 additions & 3 deletions scheduler/manager.py → scheduler/appliance/manager.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
from scheduler.base import ApplianceDAG
from scheduler.appliance.base import ApplianceDAG
from appliance.base import Appliance
from container.manager import ContainerDBManager
from commons import Manager, MotorClient
from commons import Manager, MongoClient
from config import config


class SchedulerManager(Manager):
Expand All @@ -28,7 +29,7 @@ async def update_appliance_dag(self, dag, upsert=False):
class ApplianceDAGDBManager(Manager):

def __init__(self):
self.__dag_col = MotorClient().requester.dag
self.__dag_col = MongoClient()[config.db.name].dag

async def get_appliance_dag(self, app_id):
dag = await self.__dag_col.find_one(dict(appliance=app_id))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from tornado.escape import url_escape

from scheduler import DefaultApplianceScheduler
from scheduler.base import SchedulePlan
from scheduler.appliance import DefaultApplianceScheduler
from scheduler.appliance.base import SchedulePlan
from cluster.manager import ClusterManager
from container.manager import ContainerDBManager
from commons import APIManager
Expand Down

0 comments on commit 6e53f5a

Please sign in to comment.