Esempio n. 1
0
from bson.objectid import ObjectId
from datetime import datetime,timedelta
from flask import session, jsonify, abort, request, Response
import uuid

from hpit.server.app import ServerApp
app_instance = ServerApp.get_instance()
app = app_instance.app
mongo = app_instance.mongo
db = app_instance.db
csrf = app_instance.csrf

from hpit.server.models import Plugin, Tutor, Subscription, MessageAuth, ResourceAuth

from hpit.management.settings_manager import SettingsManager
settings = SettingsManager.get_server_settings()

import random

def _map_mongo_document(document):
    mapped_doc = {}

    for k, v in document.items():
        if k == '_id':
            v = str(v)
        elif k == 'message_id':
            v = str(v)
        elif isinstance(v, datetime):
            v = v.isoformat()

        mapped_doc[k] = v
from hpitclient import Plugin

from pymongo import MongoClient
from bson.objectid import ObjectId
import bson

from couchbase import Couchbase
import couchbase

import requests
import json

from hpit.management.settings_manager import SettingsManager
settings = SettingsManager.get_plugin_settings()

class SkillManagementPlugin(Plugin):
    def __init__(self, entity_id, api_key, logger, args = None):
        super().__init__(entity_id, api_key)
        self.logger = logger
        self.mongo = MongoClient(settings.MONGODB_URI)
        self.db = self.mongo[settings.MONGO_DBNAME].hpit_skills
        self.db.ensure_index("skill_name")
        
        if args:
            try:
                self.args = json.loads(args[1:-1])
                self.transaction_manager_id = self.args["transaction_management"]
            except KeyError:
                raise Exception("Failed to initialize; invalid transaction_management")
        else:
            raise Exception("Failed to initialize; invalid transaction_management")
Esempio n. 3
0
import os
from hpit.server.app import ServerApp
from pymongo import MongoClient
app_instance = ServerApp.get_instance()
app = app_instance.app
db = app_instance.db
mongo = app_instance.mongo

from hpit.management.settings_manager import SettingsManager
settings = SettingsManager.get_server_settings()
plugin_settings = SettingsManager.get_plugin_settings()


class Command:
    description = "Indexes the Mongo Database."
    
    def __init__(self, manager, parser):
        self.manager = manager

    def run(self, arguments, configuration):
        self.arguments = arguments
        self.configuration = configuration

        #server dbs
        with app.app_context():
            mongo.db.plugin_messages.create_index('receiver_entity_id')
            mongo.db.plugin_transactions.create_index('receiver_entity_id')

            mongo.db.sent_messages_and_transactions.create_index('time_received')
            #mongo.db.sent_responses.create_index('time_response_received')
Esempio n. 4
0
import argparse
import logging
from logging.handlers import RotatingFileHandler
import os
import random
import signal
import uuid
from datetime import datetime

import platform

from hpit.management.settings_manager import SettingsManager

try:
    settings_manager = SettingsManager.init_instance(os.environ['HPIT_ENV'])
except KeyError:
    settings_manager = SettingsManager.init_instance('debug')

plugin_settings = SettingsManager.get_plugin_settings()

#import tutors and plugins
from hpit.tutors import *
from hpit.plugins import *

random.seed(datetime.now())

tutor_types = [
    'example', 'knowledge_tracing', 'replay', 'data_connector',
    'problem_generator', 'student_model', 'load_testing'
]
Esempio n. 5
0
 def __init__(self):
     self.settings = SettingsManager.get_server_settings()
     self.app_instance = ServerApp.get_instance()
     self.app_instance.bootstrap_user()
Esempio n. 6
0
import unittest
from mock import *
from pymongo import MongoClient
from pymongo.collection import Collection

from hpit.plugins import DataStoragePlugin

from hpit.management.settings_manager import SettingsManager
settings = SettingsManager.get_plugin_settings()


class TestDataStoragePlugin(unittest.TestCase):
    def setUp(self):
        self.test_subject = DataStoragePlugin(1234, 5678, None)
        self.test_subject.send_response = MagicMock()

    def tearDown(self):
        client = MongoClient()
        client.drop_database(settings.MONGO_DBNAME)

        self.test_subject = None

    def test_constructor(self):
        """
        DataStoragePlugin.__init__() Test plan:
            -make sure self.mongo is a mongo client
            -make sure self.db is the hpit_data_storage collection
            -make sure logger set correctly
        """
        ds = DataStoragePlugin(1234, 5678, None)
        ds.logger.should.equal(None)
Esempio n. 7
0
import argparse
import logging
from logging.handlers import RotatingFileHandler
import os
import random
import signal
import uuid
from datetime import datetime

import platform

from hpit.management.settings_manager import SettingsManager

try:
    settings_manager = SettingsManager.init_instance(os.environ['HPIT_ENV'])
except KeyError:
    settings_manager = SettingsManager.init_instance('debug')

plugin_settings = SettingsManager.get_plugin_settings()

#import tutors and plugins
from hpit.tutors import *
from hpit.plugins import *

random.seed(datetime.now())

tutor_types = [
    'example', 
    'knowledge_tracing',
    'replay',
    'data_connector',
Esempio n. 8
0
import os
import markdown
import requests

from hpit.management.settings_manager import SettingsManager
settings = SettingsManager.get_server_settings()


class Command:
    description = "Copy's the root project README.md to the server assets folder."

    def __init__(self, manager, parser):
        self.manager = manager

    def run(self, args, configuration):
        self.args = args
        self.configuration = configuration

        doc_md = ""
        with open(os.path.join(settings.PROJECT_DIR, 'README.md'), 'r') as f:
            doc_md = f.read()

        doc_html = markdown.markdown(doc_md, extensions=['tables'])

        with open(
                os.path.join(settings.PROJECT_DIR,
                             'hpit/server/templates/_docs_md.html'), 'w') as f:
            f.write(doc_html)

        #Build Client Side Docs
        response = requests.get(
Esempio n. 9
0
import platform
import os

from hpit.management.settings_manager import SettingsManager

try:
    settings = SettingsManager.init_instance(os.environ['HPIT_ENV'])
except KeyError:
    settings = SettingsManager.init_instance('debug')

from hpit.management.entity_manager import EntityManager
manager = EntityManager()

import hpit.server.views.api
import hpit.server.views.dashboard
import hpit.server.models

if manager:
    manager.run_manager()
Esempio n. 10
0
 def __init__(self):
     self.settings = SettingsManager.get_server_settings()
     self.app_instance = ServerApp.get_instance()
     self.app_instance.bootstrap_user()