示例#1
0
class ModHandler:

    def __init__(self, url=None, password=None, sessionfile=None):

        self.sessions = Sessions(url, password, sessionfile)

        self.set_url_pwd()

        self.interpreter = None
        self.modules_names_by_group = {}
        self.modules_classes = {}
        self.modules = {}

        self._guess_modules_path()
        self._load_modules_tree()

        self.verbosity = [3]
        self._last_warns = ''

    def set_url_pwd(self):
        self.url = self.sessions.get_session()['global']['url']
        self.password = self.sessions.get_session()['global']['password']

    def _guess_modules_path(self):
        try:
            current_path = os.path.realpath(__file__)
            root_path = os.sep.join(current_path.split(os.sep)[:-2]) + os.sep
            self.modules_path = root_path + 'modules'
        except Exception, e:
            raise Exception('Error finding module path: %s' % str(e))

        if not os.path.exists(self.modules_path):
            raise Exception("No module directory %s found." %
                            self.modules_path)
示例#2
0
    def __init__(self, url=None, password=None, sessionfile=None):

        self.sessions = Sessions(url, password, sessionfile)

        self.set_url_pwd()

        self.interpreter = None
        self.modules_names_by_group = {}
        self.modules_classes = {}
        self.modules = {}

        self._guess_modules_path()
        self._load_modules_tree()

        self.verbosity = [3]
        self._last_warns = ''
示例#3
0
    def __init__(self, *args, **kwargs):
        from core.db import Database, DatabaseQueueWorker
        from core.sessions import Sessions

        super(Vmmaster, self).__init__(*args, **kwargs)
        self.running = True
        self.json_encoder = JSONEncoder

        self.database = Database()
        self.database_task_queue = deque()
        self.database_task_worker = DatabaseQueueWorker(
            self.database_task_queue)
        self.database_task_worker.start()

        self.sessions = Sessions(self.database, self.app_context)
        self.sessions.start_workers()
示例#4
0
    def __init__(self, *args, **kwargs):
        from core.db import Database
        from core.sessions import Sessions
        from vmpool.virtual_machines_pool import VirtualMachinesPool

        super(Provider, self).__init__(*args, **kwargs)
        self.running = True
        self.json_encoder = JSONEncoder
        self.database = Database()
        self.sessions = Sessions(self.database, self.app_context)
        self.pool = VirtualMachinesPool(app=self, name=config.PROVIDER_NAME)
        self.pool.start_workers()
示例#5
0
    def __init__(self, *args, **kwargs):
        from core.db import Database
        from core.sessions import Sessions
        from vmpool.virtual_machines_pool import VirtualMachinesPool

        super(Vmmaster, self).__init__(*args, **kwargs)
        self.running = True
        self.uuid = str(uuid1())
        self.database = Database()
        self.pool = VirtualMachinesPool(self)
        self.sessions = Sessions(self)
        self.json_encoder = JSONEncoder
        self.register()
示例#6
0
    def validar(self):
        user_hash = get_hash("sha256", get_form_value("username"))
        pass_hash = get_hash("sha512", get_form_value("password"))
        user_id = get_hash("sha384", get_form_value("username"))
        user_id = get_hash("md5", user_id)
        salt_username = get_form_value("username")[0:2]
        salt_password = get_form_value("password")[1:]
        salt = get_hash("sha224", "{}{}".format(salt_username, salt_password))
        credential = get_hash("sha1", "{}{}{}".format(salt, user_hash, pass_hash))
        filename = "{}/.{}".format(CREDENTIAL_PATH, credential)

        #print(HTTP_HTML, "\n")
        #print(filename); exit()

        if isfile(filename):
            #sess_file = Sessions.get_all()
            variable = Sessions.create()
            print(HTTP_HTML, "\n")
            print(variable); exit() 
            Sessions.set("USER_ID", user_id)
            redirect("cliente/listar")
        else:
            redirect("user/login")
示例#7
0
class ModHandler:


    def __init__(self, url = None, password = None, sessionfile=None):

        self.sessions = Sessions(url, password, sessionfile)

        self.set_url_pwd()

        self.interpreter = None
        self.modules_names_by_group = {}
        self.modules_classes = {}
        self.modules = {}

        self._guess_modules_path()
        self._load_modules_tree()

        self.verbosity=[ 3 ]
        
        self._last_warns = ''
        
    def set_url_pwd(self):
        self.url = self.sessions.get_session()['global']['url']
        self.password = self.sessions.get_session()['global']['password']        

    def _guess_modules_path(self):
    
    	try:
    		current_path = os.path.realpath( __file__ )
    		root_path = os.sep.join(current_path.split(os.sep)[:-2]) + os.sep
    		self.modules_path = root_path + 'modules'
    	except Exception, e :
    		raise Exception('Error finding module path: %s' % str(e))
    
        if not os.path.exists(self.modules_path):
            raise Exception( "No module directory %s found." % self.modules_path )
示例#8
0
    def __init__(self, url = None, password = None, sessionfile=None):

        self.sessions = Sessions(url, password, sessionfile)

        self.set_url_pwd()

        self.interpreter = None
        self.modules_names_by_group = {}
        self.modules_classes = {}
        self.modules = {}

        self._guess_modules_path()
        self._load_modules_tree()

        self.verbosity=[ 3 ]
        
        self._last_warns = ''
示例#9
0
    def __init__(self):
        self.name = 'main'
        self.prompt_session = PromptSession(
            'ST ≫ ',
            bottom_toolbar=bottom_toolbar,
            auto_suggest=AutoSuggestFromHistory(),
            enable_history_search=True,
            # rprompt=get_rprompt,
            style=rprompt_style
        )

        self.contexts = [
            Listeners(self.prompt_session),
            Sessions(self.prompt_session),
            Modules(self.prompt_session),
            Stagers(self.prompt_session)
        ]

        self.prompt_session.completer = WordCompleter([ctx.name for ctx in self.contexts] + ['exit'], ignore_case=True)
        self.prompt_session.contexts = self.contexts

        self.current_context = self
示例#10
0
    def __init__(self):
        self.name = 'main'
        self.completer = WordCompleter(
            ['listeners', 'sessions', 'modules', 'stagers', 'exit'],
            ignore_case=True)
        self.prompt_session = PromptSession(
            'ST ≫ ',
            bottom_toolbar=bottom_toolbar,
            completer=self.completer,
            auto_suggest=AutoSuggestFromHistory()
            #rprompt=get_rprompt,
            #style=rprompt_style
        )

        self.contexts = [
            Listeners(self.prompt_session),
            Sessions(self.prompt_session),
            Modules(self.prompt_session),
            Stagers(self.prompt_session)
        ]

        self.current_context = self
示例#11
0
文件: main.py 项目: uve/shiva
    logging.info('"%s"' % config.SHIVA_USER_AGENT)
    logging.info('Tornado version: %s' % tornado.version)
    logging.info('WMS Server started [port %s]' % (config.SHIVA_PORT))

    logging.info('Oracle connection: %s:%s' % (RC_IP, RC_PORT))

    app = Application(handlers=urls.handlers,
                      **{
                          'static_path': config.STATIC_DIR,
                          'default_handler': MissingHandler,
                          'debug': False,
                          'gzip': True,
                          'ssl_options': {
                              "certfile": os.path.join("certs/server.crt"),
                              "keyfile": os.path.join("certs/server.key"),
                          },
                      })

    app.sessions = Sessions()
    # кэш имен файлов паспортов качества - {'имя':None} 33
    app.passport_cash = {}

    http_server = tornado.httpserver.HTTPServer(app, xheaders=True)
    #http_server.listen(config.SHIVA_PORT)

    http_server.bind(config.SHIVA_PORT)

    http_server.start(
        MAX_SESSIONS)  # autodetect number of cores and fork a process for each
    IOLoop.instance().start()
示例#12
0
 def listar(self):
     Sessions.check()
     c = Collector()
     c.get("Cliente")
     self.view.listar(c.coleccion)
示例#13
0
 def logout(self):
     Sessions.destroy()
     redirect("user/login")
示例#14
0
 def login(self):
     Sessions.start()
     self.view.login()
示例#15
0
class Vmmaster(Flask):
    balance_lock = threading.Lock()

    def __init__(self, *args, **kwargs):
        from core.db import Database, DatabaseQueueWorker
        from core.sessions import Sessions

        super(Vmmaster, self).__init__(*args, **kwargs)
        self.running = True
        self.json_encoder = JSONEncoder

        self.database = Database()
        self.database_task_queue = deque()
        self.database_task_worker = DatabaseQueueWorker(
            self.database_task_queue)
        self.database_task_worker.start()

        self.sessions = Sessions(self.database, self.app_context)
        self.sessions.start_workers()

    def cleanup(self):
        log.info("Cleanup...")
        try:
            self.database_task_worker.stop()
            self.sessions.stop_workers()
            log.info("Cleanup done")
        except:
            log.exception("Cleanup was finished with errors")

    @property
    def providers(self):
        return self.database.get_active_providers()

    def stop(self):
        self.running = False

    def get_matched_platforms(self, dc):
        from vmmaster.matcher import SeleniumMatcher, PlatformsBasedMatcher
        providers_platforms, limits = {}, {}

        with self.balance_lock:
            for provider in self.providers:
                platforms = self.database.get_platforms(provider.id)
                matcher = SeleniumMatcher(
                    platforms=provider.config,
                    fallback_matcher=PlatformsBasedMatcher(platforms))
                matched_platforms = matcher.get_matched_platforms(dc)
                if matched_platforms and provider.max_limit:
                    providers_platforms[provider.id] = matched_platforms
                    limits[provider.id] = provider.max_limit

            if not providers_platforms:
                return None, None

            provider_id = self.get_provider_id(limits)
            if provider_id:
                return providers_platforms[provider_id][0], provider_id

        return None, None

    def get_provider_id(self, limits):
        availables = {}

        for provider_id, limit in limits.items():
            sessions = self.sessions.active(provider_id=provider_id)
            availables[provider_id] = limit - len(sessions)

        if availables:
            max_value = max(availables.values())
            return availables.keys()[availables.values().index(max_value)]
示例#16
0
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
from os.path import isfile

from core.sessions import Sessions
from settings import MODULE_PATH, PACKAGE, CONTROLLER, RESOURCE, HTTP_404,\
    HTTP_HTML, SHOW_ERROR_404, HTTP_REDIRECT, MODULE


Sessions.update()

error_module = error_resource = True

if isfile(MODULE_PATH):
    modulo = __import__(PACKAGE, fromlist=[CONTROLLER])
    controller = getattr(modulo, CONTROLLER)()
    error_module = False

if not error_module and hasattr(controller, RESOURCE):
    getattr(controller, RESOURCE)()
    error_resource = False

if error_module or error_resource:
    error_header = "{}\n{}\n{}".format(HTTP_HTML, HTTP_404, "")
    location_header = "{}\n\n".format(HTTP_REDIRECT)
    print(error_header if SHOW_ERROR_404 else location_header)