Exemplo n.º 1
0
def resend(db, args, **kwargs):
    l.debug("Load queque")
    l.debug(args)
    if 'id' not in args:
        l.error("Id for queque not found")
        return 1
        
    q = sql3.entity.Queque(db.getConnection())
    q.fetch(args['id'])
    
    if 'id' not in q.data:
        l.error("Queque does not exists")
        return 2 
        
    u = cmailer.load(q.get('path'))
    
    acc = sql3.entity.EmailAccount(db.getConnection())
    acc.data = acc.fetchBy('email', u['from'])
    
    if 'id' not in acc.data:
        l.error("Unable to find email %s" % u['from'])
    try :
        cmailer.sendEmail(u, acc, q)
    except Exception, e:
        l.error("Error in queque")
        l.error(str(e))
Exemplo n.º 2
0
def stop(server):
    l.info("Stoping server instance...")
    l.info("ID:    %s" % server.get('id'))
    l.info("Host:  %s" % server.get('ip'))
    l.info("Port:  %s" % server.get('port'))
    l.info("User:  %s" % server.get('uid'))
    l.info("Group: %s" % server.get('gid'))
    l.info("Pid:   %s" % server.get('pid'))

    pid = int(server.get('pid'))

    if pid > 0:
        try:
            os.kill(pid, 0)
        except:
            l.error("Process %d does not exists" % pid)
            return False

        os.kill(pid, 9)
        server.set('pid', 0)
        server.update()
        return True
    else:
        l.warning("Service not runing")
    return False
Exemplo n.º 3
0
def sendwaiting(db, **kwargs):
    l.debug("Send waiting emails in queque")
    
    q = sql3.entity.Queque(db.getConnection())
    
    for i in q.allWaitingWithLimit():
        tmpq = sql3.entity.Queque(db.getConnection())
        tmpq.fetch(i['id'])
        
        if 'id' not in tmpq.data:
            l.error("Unable to find queque")
            l.error(str(i))
            continue 
        
        u = cmailer.load(tmpq.get('path'))
        acc = sql3.entity.EmailAccount(db.getConnection())
        acc.data = acc.fetchBy('email', u['from'])
        
        if 'id' not in acc.data:
            l.error("Unable to find email %s" % u['from'])
            
        try :
            l.debug("Send email ")
            l.debug(str(i))
            cmailer.sendEmail(u, acc, tmpq)
        except Exception, e:
            l.error("Error in queque")
            l.error(str(e))
Exemplo n.º 4
0
def remove(db, args, **kwargs):
    l.debug("Remove user")
    l.debug(args)
    if 'id' not in args:
        l.error("Id for user not found")
        return 1
    user = sql3.entity.User(db.getConnection())
    user.delete()
Exemplo n.º 5
0
def remove(db, args, **kwargs):
    l.debug("Remove queque")
    l.debug(args)
    if 'id' not in args:
        l.error("Id for queque not found")
        return 1
    q = sql3.entity.Queque(db.getConnection());
    q.fetch(args['id'])
    q.delete()
Exemplo n.º 6
0
def remove(db, args, **kwargs):
    l.debug("Remove server")
    l.debug(args)

    if __is_valid_iser__():
        l.error("User %s does not have permission" % getpass.getuser())
        return 1

    if 'id' not in args:
        l.error("Id for user not found")
        return 1
    user = sql3.entity.Server(db.getConnection())
    user.delete()
Exemplo n.º 7
0
def removeemail(db, args, **kwargs):
    l.debug("Remove email from server ")

    if 'email' not in args:
        l.error("Email id not provided")
        return 1

    if 'server' not in args:
        l.error("Server id not provided")
        return 1

    user = sql3.entity.EmailAccount(db.getConnection())
    user.fetch(args['email'])

    if 'id' not in user.data:
        l.error("User %s not found" % args['user'])
        return 1

    server = sql3.entity.Server(db.getConnection())
    server.fetch(args['server'])

    if 'id' not in server.data:
        l.error("Server %s not found" % args['server'])
        return 1

    server.removeEmailAccount(user.get('id'))
Exemplo n.º 8
0
def adduser(db, args, **kwargs):
    l.debug("Add user to server")

    if 'user' not in args:
        l.error("User id not provided")
        return 1

    if 'server' not in args:
        l.error("Server id not provided")
        return 1

    user = sql3.entity.User(db.getConnection())
    user.fetch(args['user'])

    if 'id' not in user.data:
        l.error("User %s not found" % args['user'])
        return 1

    server = sql3.entity.Server(db.getConnection())
    server.fetch(args['server'])

    if 'id' not in server.data:
        l.error("Server %s not found" % args['server'])
        return 1

    server.addUser(user.get('id'))
Exemplo n.º 9
0
def start(db, db_file, args, config, **kwargs):
    l.debug("Start server instance")
    l.debug(args)

    if __is_valid_iser__():
        l.error("User %s does not have permission" % getpass.getuser())
        return 1

    if 'id' not in args:
        l.error("Please provide server id")
        return 1

    server = sql3.entity.Server(db.getConnection())
    server.fetch(args['id'])

    if 'id' not in server.data:
        l.error("Server Instance not found")
        return 2

    if int(server.get('pid')) > 0:
        l.error("Server already running PID=%s" % server.get('pid'))
        return 3

    pid = os.fork()

    if pid == 0:
        from .server import run
        run(server, db_file, config['storage_folder'])

    return 0
Exemplo n.º 10
0
def update(db, args, **kwargs):
    l.debug("Update queque")
    l.debug(args)
    if 'id' not in args:
        l.error("Id for queque not found")
        return 1
    q = sql3.entity.Queque(db.getConnection())
    q.fetch(args['id'])
    
    if 'id' not in user.data:
        l.error("Queque does not exists")
        return 2
        
    for key, val in args.items():
        q.set(key, val);
        
    q.update()
Exemplo n.º 11
0
def update(db, args, **kwargs):
    l.debug("Update user")
    l.debug(args)
    if 'id' not in args:
        l.error("Id for user not found")
        return 1
    user = sql3.entity.User(db.getConnection())
    user.fetch(args['id'])

    if 'id' not in user.data:
        print "User does not exists"
        return 2

    for key, val in args.items():
        user.set(key, val)

    user.update()
Exemplo n.º 12
0
def add(db, args, **kwargs):
    l.debug("Add server")
    l.debug(args)

    if __is_valid_iser__():
        l.error("User %s does not have permission" % getpass.getuser())
        return 1

    if len(args) == 0:
        l.error("No arguments.")
        return 0

    user = sql3.entity.Server(db.getConnection())

    for key, val in args.items():
        user.set(key, val)

    user.save()
    return 0
Exemplo n.º 13
0
def load(args, db, config, **kwargs):
    if not os.path.isdir("%s/custom" % config['storage_folder']):
        os.makedirs("%s/custom" % config['storage_folder'])

    if not os.path.isdir("%s/custom" % config['storage_folder']):
        l.error("Directory does not exists")
        return 1

    if ('file' in args) and (os.path.isfile(args['file'])):
        validator = None
        ejson = None
        with open(args['file']) as f:
            ejson = json.load(f)
            validator = cmailer.validateJSON(ejson)

        if validator is None:
            l.error("Unable to load json from file")
            return 1

        try:
            l.debug("validate check")
            validator.doCheck()

            newfile = "%s/custom/%s.json" % (config['storage_folder'],
                                             str(uuid.uuid4()))

            with open(newfile, 'w') as fw:
                fw.write(json.dumps(ejson))

                q = sql3.entity.Queque(db.getConnection())
                q.set('path', newfile)
                q.save()

        except Exception, e:
            l.error(str(e))
Exemplo n.º 14
0
def restart(db, db_file, args, config, **kwargs):
    l.debug("Restart server instance ")
    l.debug(args)

    if __is_valid_iser__():
        l.error("User %s does not have permission" % getpass.getuser())
        return 1

    server = sql3.entity.Server(db.getConnection())
    server.fetch(args['id'])

    if 'id' not in server.data:
        l.error("Server Instance not found")
        return 2

    if int(server.get('pid')) <= 0:
        l.error("Server not running.")
        return 3

    import server as s
    s.restart(server, db_file)

    s.stop(server)
    time.sleep(3)

    pid = os.fork()

    if pid == 0:
        s.run(server, db_file, config['storage_folder'])
Exemplo n.º 15
0
def stop(db, args, **kwargs):
    l.debug("Stop server instance")
    l.debug(args)

    if __is_valid_iser__():
        l.error("User %s does not have permission" % getpass.getuser())
        return 1

    server = sql3.entity.Server(db.getConnection())
    server.fetch(args['id'])

    if 'id' not in server.data:
        l.error("Server Instance not found")
        return 2

    if int(server.get('pid')) <= 0:
        l.error("Server not running.")
        return 3

    from .server import stop
    stop(server)
Exemplo n.º 16
0
def update(db, args, **kwargs):
    l.debug("Update user")
    l.debug(args)

    if __is_valid_iser__():
        l.error("User %s does not have permission" % getpass.getuser())
        return 1

    if 'id' not in args:
        l.error("Id for user not found")
        return 1
    user = sql3.entity.Server(db.getConnection())
    user.fetch(args['id'])

    if 'id' not in user.data:
        l.error("User does not exists")
        return 2

    for key, val in args.items():
        user.set(key, val)

    user.update()
Exemplo n.º 17
0
def list(db, args, **kwargs):
    l.debug("List Servers")

    if __is_valid_iser__():
        l.error("User %s does not have permission" % getpass.getuser())
        return 1

    srv = sql3.entity.Server(db.getConnection())

    if 'users' in args and 'id' in args:
        l.debug("List users for server %s" % args['id'])
        srv.fetch(args['id'])

        if 'id' not in srv.data:
            l.error("Server %s not found" % str(args['id']))
            return 1

        for i in srv.getUsers():
            user = sql3.entity.User(db.getConnection())
            print user.fetch(i)

        return 1

    if 'emails' in args and 'id' in args:
        l.debug("List email accounts for server %s" % args['id'])
        srv.fetch(args['id'])

        if 'id' not in srv.data:
            l.error("Server %s not found" % str(args['id']))
            return 1

        for i in srv.getEmailAccounts():
            ea = sql3.entity.EmailAccount(db.getConnection())
            print ea.fetch(i)

        return 1

    for i in srv.all():
        print i
Exemplo n.º 18
0
        return json.dumps({"success": True, "msg": quid})

    @requires_auth
    def all():
        pass

    try:
        l.info("Starting new instance of server ID = %s " % server.get('id'))
        server.set('pid', os.getpid())
        server.update()
        app.run(threaded=False,
                host=server.get('ip'),
                port=int(server.get('port')))
    except Exception:
        l.error("Error with server %s" % server.get('id'))
        raise


def stop(server):
    l.info("Stoping server instance...")
    l.info("ID:    %s" % server.get('id'))
    l.info("Host:  %s" % server.get('ip'))
    l.info("Port:  %s" % server.get('port'))
    l.info("User:  %s" % server.get('uid'))
    l.info("Group: %s" % server.get('gid'))
    l.info("Pid:   %s" % server.get('pid'))

    pid = int(server.get('pid'))

    if pid > 0:
Exemplo n.º 19
0
        "app_dir": app_dir,
        "app_file": os.path.basename(app_file),
        "_app_file": app_file,
        "module": args.module,
        "config": conf,
        "log": logging,
        "db_file": conf['sqlite3']['database'],
        "db": sql3.connection.Connection(conf['sqlite3']['database']),
        "args": app_modules.parse_custom_arguments(args.carg)
        if len(args.carg) > 0 else {},
    }

    sql3.create_tables(conf['sqlite3']['database'])

    if not app_modules.module_exists("%s/modules/%s" % (app_dir, args.module)):
        l.error("Module %s does not exists" % args.module)
        quit()

    mod = app_modules.load_module(args.module)

    if hasattr(mod, args.action):
        method = getattr(mod, args.action)
        v = method(**options)

        if v is None:
            v = 0

        sys.exit(int(v))
        try:
            options['db'].close()
        except:
Exemplo n.º 20
0
    if ('file' in args) and (os.path.isfile(args['file'])):
        validator = None
        ejson = None
        with open(args['file']) as f:
            ejson = json.load(f)
            validator = cmailer.validateJSON(ejson)

        if validator is None:
            l.error("Unable to load json from file")
            return 1

        try:
            l.debug("validate check")
            validator.doCheck()

            newfile = "%s/custom/%s.json" % (config['storage_folder'],
                                             str(uuid.uuid4()))

            with open(newfile, 'w') as fw:
                fw.write(json.dumps(ejson))

                q = sql3.entity.Queque(db.getConnection())
                q.set('path', newfile)
                q.save()

        except Exception, e:
            l.error(str(e))
    else:
        l.error("Please pass correct path ")
        return 1