Beispiel #1
0
 def add_user(self, name, password, save_config=True):
     Logger.info('AppManager: %s adding user' % (dround(self.uptime)))
     if not name in self.users:
         self.users[name] = User(name, password)
         if save_config:
             self.save_config()
         return True
Beispiel #2
0
 def remove_user(self, name, save_config=True):
     Logger.info('AppManager: %s removing user' % (dround(self.uptime)))
     if name in self.users:
         del self.users[name]
         if save_config:
             self.save_config()
         return True
Beispiel #3
0
 def __cycle0(self):
     # self.time += 1
     self.model.tick(self.time)
     self.__send_data()
     self.__receive_data()
     Logger.info("Tick complete")
     time.sleep(1)
     os.system("clear")
Beispiel #4
0
 def __cycle0(self):
     # self.time += 1
     self.model.tick(self.time)
     self.__send_data()
     self.__receive_data()
     Logger.info("Tick complete")
     time.sleep(1)
     os.system("clear")
Beispiel #5
0
    def __log_parameters(self, params):
        """
        Zapisuje parametry do logów.
        """

        current_time, current_temp, previous_temp, water_temp = params
        current_time = "time=" + str(current_time)
        current_temp = "current_temp=" + str(current_temp) + " st. C"
        previous_temp = "previous_temp=" + str(previous_temp) + " st. C"
        water_temp = "water_temp=" + str(water_temp) + " st. C"
        msg = current_time + " " + current_temp + " " + previous_temp + " " + water_temp
        Logger.info(msg)
Beispiel #6
0
    def __log_parameters(self, params):
        """
        Zapisuje parametry do logów.
        """

        current_time, current_temp, previous_temp, water_temp = params
        current_time = "time="+str(current_time)
        current_temp = "current_temp="+str(current_temp)+" st. C"
        previous_temp = "previous_temp="+str(previous_temp)+" st. C"
        water_temp = "water_temp="+str(water_temp)+" st. C"
        msg = current_time+" "+current_temp+" "+previous_temp+" "+water_temp
        Logger.info(msg)
Beispiel #7
0
def start():
    global manager, app, login_manager
    manager = app_manager.AppManager(app, login_manager)
    login_manager.init_app(app)
    app.jinja_env.globals['manager'] = manager

    server = pywsgi.WSGIServer(
        ('0.0.0.0', 7114),
        app,
        # log=GeventLoggerInfo(), error_log=GeventLoggerError()
        log=None)
    Logger.info('Server: %s init' % (round(time() - app_manager.TIME0, 2)))
    server.serve_forever()
Beispiel #8
0
    def __init__(self, model):
        Logger.info("Created communication")

        self.host = Configuration.get_hostname()
        self.port = Configuration.get_port()
        self.socket = None
        self.model = model
        self.communication_tries = 20
        self.time = 10

        self.role = Configuration.get_role()
        self.json_builder = JsonBuilder(self.role)

        self.prepare_connection()
Beispiel #9
0
    def __init__(self, model):
        Logger.info("Created communication")

        self.host = Configuration.get_hostname()
        self.port = Configuration.get_port()
        self.socket = None
        self.model = model
        self.communication_tries = 20
        self.time = 10

        self.role = Configuration.get_role()
        self.json_builder = JsonBuilder(self.role)

        self.prepare_connection()
Beispiel #10
0
    def run(self):
        if self.socket is None:
            Logger.error("Socket does not exists, aborting!")
            return

        self.__send_init()
        js = self.__receive_init()

        try:
            self.time = js[Communication.TIME_KEY]
        except:
            Logger.info('Using default value of time ' + str(self.time))
            self.time = 10
        while True:
            self.__cycle0()
Beispiel #11
0
    def run(self):
        if self.socket is None:
            Logger.error("Socket does not exists, aborting!")
            return

        self.__send_init()
        js = self.__receive_init()

        try:
            self.time = js[Communication.TIME_KEY]
        except:
            Logger.info("Using default value of time " + str(self.time))
            self.time = 10
        while True:
            self.__cycle0()
Beispiel #12
0
    def __send(self, msg):
        Logger.debug("Sending msg=%s to server." % msg)
        if self.socket is None:
            Logger.warning("Will not send message, socket does not exist.")
            return

        for t in range(self.communication_tries):
            try:
                Logger.info("Trying to send msg.")
                self.socket.sendall(bytes(msg, "utf-8"))
                Logger.debug("Msg sent.")
                break
            except Exception as e:
                Logger.warning("Exception caught. " + str(e))
                time.sleep(0.5)
        else:
            Logger.error("Failed to send message.")
Beispiel #13
0
    def __send(self, msg):
        Logger.debug('Sending msg=%s to server.' % msg)
        if self.socket is None:
            Logger.warning("Will not send message, socket does not exist.")
            return

        for t in range(self.communication_tries):
            try:
                Logger.info('Trying to send msg.')
                self.socket.sendall(bytes(msg, 'utf-8'))
                Logger.debug('Msg sent.')
                break
            except Exception as e:
                Logger.warning('Exception caught. ' + str(e))
                time.sleep(0.5)
        else:
            Logger.error("Failed to send message.")
Beispiel #14
0
 def _read_config_file(self):
     try:
         if os.path.exists(app_globals.CONF_PATH):
             try:
                 Logger.info('AppManager: %s Loading config' %
                             (dround(self.uptime)))
                 with open(app_globals.CONF_PATH, 'r') as f:
                     conf = json.load(f)
                 return conf
             except json.JSONDecodeError:
                 self._write_default_config_json()
         else:
             self._write_default_config_json()
         if not os.path.exists(self.dir_file_share):
             os.makedirs(self.dir_file_share)
     except:
         Logger.critical('AppManager: Failed to load config')
         raise
Beispiel #15
0
 def save_config(self):
     Logger.info('AppManager: %s save_config' % (dround(self.uptime)))
     with open(app_globals.CONF_PATH, 'w') as f:
         sdict = copy(app_globals.DEFAULT_CONFIG)
         users = {}
         for k, v in self.users.items():
             users[k] = {
                 'id': v.id,
                 'name': v.name,
                 'password': v.passwd
             }
         appm = [('app_name', self.app_name), ('root', self.root),
                 ('dir_file_share', self.dir_file_share),
                 ('upload_extensions', self.upload_extensions),
                 ('uploaded_files', self.uploaded_files),
                 ('users', users)]
         for a, b in appm:
             sdict['AppManager'][a] = b
         json.dump(sdict, f, indent=4)
Beispiel #16
0
    def start(self, **kwargs):
        for k, v in kwargs.items():
            setattr(self, k, v)
        dir_path = os.path.dirname(os.path.realpath(__file__))
        last_modification_time = os.path.getmtime(dir_path)
        try:
            while True:
                self._get_queued_messages()
                if self.process_state != self.P_RUNNING:
                    self.restarted_times += 1
                    if self.process_state in (self.P_STOPPED, self.P_CRASHED):
                        if self.restarted_times is 0:
                            tt = 'HotLoader: %s restarting process' % (
                                self.timer)
                        else:
                            tt = 'HotLoader: %s restarting process (%s)' % (
                                self.timer, self.restarted_times)
                        Logger.info(tt)
                    if self.process_state == self.P_CRASHED:
                        sleep(self.sleep_timer)
                    self.process_state = self.P_RUNNING
                    t = Thread(target=self._start_process)
                    t.start()
                    sleep(self.sleep_timer)

                new_modification_time = os.path.getmtime(dir_path)
                for x in self.monitor_paths:
                    try:
                        mod = os.path.getmtime(x)
                        if mod > new_modification_time:
                            new_modification_time = mod
                    except FileNotFoundError:
                        pass

                if new_modification_time > last_modification_time:
                    self.write_log('new modifications')
                    last_modification_time = new_modification_time + 1.0
                    if self.P_RUNNING:
                        self._stop_process()
                sleep(self.sleep_timer)
        except KeyboardInterrupt:
            pass
def main(args):
    coco_dataloader = CocoDataLoader(args)
    trainloader = coco_dataloader.get_trainloader(args)

    yolov2 = DarkNet19()
    optimizer = Optimizer(yolov2.parameters(), args.lr)
    criterion = Loss()

    logger = Logger()
    logger.info('----- Starting training -----')

    for epoch in range(args.epochs):

        for i,data in enumerate(trainloader):
            images, targets = data

            optimizer.zero_grad()

            outputs = yolov2(images)
            total_loss = criterion.get_total_loss(outputs, targets, args)

            total_loss.backward()
            optimizer.step()

            logger.info(f'Epoch: {epoch+1}/{args.epochs}, Step: {i+1}, Loss: {loss.data}')

    logger.info('----- Training done! -----')
Beispiel #18
0
    def prepare_connection(self):
        Logger.info("Initializing communication")
        Logger.info("Creating connection to %s:%s" % (self.host, self.port))
        self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        if self.socket is None:
            Logger.error("Failed to create socket.")

        for t in range(self.communication_tries):
            try:
                self.socket.connect((self.host, self.port))
                Logger.info("Successfully connected to host.")
                break
            except (ConnectionRefusedError, socket.timeout) as e:
                Logger.error("Failed to connect to host. %s" % e)
            time.sleep(0.5)
        else:
            self.socket = None
Beispiel #19
0
    def prepare_connection(self):
        Logger.info("Initializing communication")
        Logger.info("Creating connection to %s:%s" % (self.host, self.port))
        self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        if self.socket is None:
            Logger.error("Failed to create socket.")

        for t in range(self.communication_tries):
            try:
                self.socket.connect((self.host, self.port))
                Logger.info("Successfully connected to host.")
                break
            except (ConnectionRefusedError, socket.timeout) as e:
                Logger.error("Failed to connect to host. %s" % e)
            time.sleep(0.5)
        else:
            self.socket = None
Beispiel #20
0
 def write_log(self, message, level='info'):
     if level[0] == 'i':
         Logger.info('HotLoader: %s %s' % (self.timer, message))
     elif level[0] == 'e':
         Logger.error('HotLoader: %s %s' % (self.timer, message))
Beispiel #21
0
 def __receive_time(self):
     js = self.json_builder.deserialize(self.__receive())
     self.time = js['time']
     Logger.info("Received time value %f" % self.time)
Beispiel #22
0
 def __receive_init(self):
     js = self.json_builder.deserialize(self.__receive())
     Logger.info('Init msg received. ' + str(js))
     return js
Beispiel #23
0
 def __del__(self):
     if self.socket is not None:
         self.socket.close()
         Logger.info("Killing socket on exit.")
Beispiel #24
0
 def _write_default_config_json(self):
     with open(app_globals.CONF_PATH, 'w') as f:
         json.dump(app_globals.DEFAULT_CONFIG, f, indent=4)
         Logger.info('AppManager: wrote default config to file')
Beispiel #25
0
 def __receive_time(self):
     js = self.json_builder.deserialize(self.__receive())
     self.time = js["time"]
     Logger.info("Received time value %f" % self.time)
Beispiel #26
0
        def load_config(self):
            _ignored = ('default_user', 'users')
            conf = self._read_config_file().get('AppManager', None)
            if conf:
                # Add missing cofigs from defaults
                save_config = False
                for x in self.DEFAULTS:
                    if x not in conf:
                        save_config = True
                        conf[x] = self.DEFAULTS[x]

                # Set manager attributes from config items
                for k, v in conf.items():
                    if k not in _ignored:
                        setattr(self, k, v)
                self.login_manager.login_view = self.url('/login')

                self.app.config['APPLICATION_ROOT'] = self.root
                if save_config:
                    self.save_config()

                # Remove missing files from uploaded_files dict
                fdel_list = []
                for x in self.uploaded_files:
                    x_path = self.uploaded_files[x]['path']
                    if os.path.exists(x_path):
                        x_id = self.uploaded_files[x]['id']
                        self.uploaded_file_paths[x_path] = x_id
                    else:
                        fdel_list.append(x)
                for x in fdel_list:
                    del self.uploaded_files[x]
                    Logger.info(
                        ('AppManager: removed file with nonexistent path: '
                         ' %s' % (x)))

                # Initialise user objects from config
                if conf['users']:
                    cnt = 0
                    for k, v in conf['users'].items():
                        self.add_user(v['id'],
                                      v['password'],
                                      save_config=False)
                        cnt += 1

                if self.users:
                    Logger.info('AppManager: loaded %s users' % (cnt))

                else:
                    usr = conf['default_user']
                    self.add_user(usr[0], usr[1], save_config=False)
                    Logger.info(('AppManager: No users in config, added '
                                 'default user "%s" with password "%s"') %
                                (usr[0], usr[1]))
            else:
                Logger.info('AppManager: No config, using defaults')
                self.using_default_user = True

            udef = self.DEFAULTS['default_user']
            if udef[0] in self.users:
                if self.users[udef[0]].passwd == udef[1]:
                    self.using_default_user = True
                    Logger.info('AppManager: Using default user')
Beispiel #27
0
 def __receive_init(self):
     js = self.json_builder.deserialize(self.__receive())
     Logger.info("Init msg received. " + str(js))
     return js
Beispiel #28
0
 def __del__(self):
     if self.socket is not None:
         self.socket.close()
         Logger.info("Killing socket on exit.")