Ejemplo n.º 1
0
    def _get_model_parameters(self):
        for params_file in glob.glob(self.params_prefix + "*" +
                                     self.params_suffix):
            parameters = dict()
            load_parameters(parameters, params_file)
        self.parameters = parameters

        # The active parts of the solvers
        self.enable_NS = self.parameters[enable_NS]
        self.enable_PF = self.parameters[enable_PF]
        self.enable_EC = self.parameters[enable_EC]

        # Extracting important parameters
        self.Lx = self.parameters["Lx"]
        self.Ly = self.parameters["Ly"]

        self.temperatur = 1
        self.k_b = 1
        self.varcum_permittivity = 1
        self.q_e = 1

        if self.enable_PF:
            self.interface_thickness = self.parameters["interface_thickness"]
            self.pf_mobility_coeff = self.parameters["pf_mobility_coeff"]
            self.surface_tension = self.parameters["surface_tension"]

        if self.enable_EC:
            self.permittivity = self.parameters["permittivity"]
            self.solutes = self.parameters["solutes"]

        if self.enable_NS:
            self.density = self.parameters["density"]
            self.viscosity = self.parameters["viscosity"]
        '''
Ejemplo n.º 2
0
def main(**args):
    # Command method
    method = sys.argv[1]

    if method == "version":
        message = "Duplicati client version "
        message += config.APPLICATION_VERSION
        return common.log_output(message, True)

    # Default values
    data = {
        "last_login": None,
        "parameters_file": None,
        "server": {
            "port": "",
            "protocol": "http",
            "url": "localhost",
            "verify": True
        },
        'token': None,
        'token_expires': None,
        'verbose': False,
        'precise': False,
        'authorization': ''
    }

    # Detect home dir for config file
    config.CONFIG_FILE = compatibility.get_config_location()

    # Load configuration
    overwrite = args.get("overwrite", False)
    data = load_config(data, overwrite)

    param_file = args.get("param-file", None)
    # Set parameters file
    if method == "params":
        data = set_parameters_file(data, args, param_file)

    # Load parameters file
    args = common.load_parameters(data, args)

    # Show parameters
    if method == "params":
        if args.get("show", False) or param_file is None:
            display_parameters(data)
        return

    # Toggle verbosity
    if method == "verbose":
        mode = args.get("mode", None)
        data = toggle_verbose(data, mode)
        return

    # Toggle precise time
    if method == "precise":
        mode = args.get("mode", None)
        data = toggle_precise(data, mode)
        return

    # Write verbosity setting to config variable
    config.VERBOSE = data.get("verbose", False)

    # Display the config if requested
    if method == "config":
        display_config(data)
        return

    # Display the status if requested
    if method == "status":
        display_status(data)
        return

    # Login
    if method == "login":
        url = args.get("url", None)
        password = args.get("password", None)
        basic_user = args.get("basic_user", None)
        basic_pass = args.get("basic_pass", None)
        certfile = args.get("certfile", None)
        insecure = args.get("insecure", False)
        verify = auth.determine_ssl_validation(data, certfile, insecure)
        interactive = args.get("script", False)
        data = auth.login(data, url, password, verify, interactive, basic_user,
                          basic_pass)
        return

    # Logout
    if method == "logout":
        data = auth.logout(data)
        return

    # List resources
    if method == "list":
        resource_type = args.get("type", None)
        output_type = args.get("output", None)
        list_resources(data, resource_type, output_type)
        return

    # Get resources
    if method == "get":
        resource_type = args.get("type", None)
        resource_ids = args.get("id", None)
        output_type = args.get("output", None)
        get_resources(data, resource_type, resource_ids, output_type)
        return

    # Describe resources
    if method == "describe":
        resource_type = args.get("type", None)
        resource_ids = args.get("id", None)
        output_type = args.get("output", None)
        describe_resources(data, resource_type, resource_ids, output_type)
        return

    # Set resource values
    if method == "set":
        resource = sys.argv[2]
        if resource == "password":
            password = args.get("password", None)
            disable_login = args.get("disable", False)
            interactive = args.get("script", False)
            auth.set_password(data, password, disable_login, interactive)
        return

    # Repair a database
    if method == "repair":
        backup_id = args.get("id", None)
        repair_database(data, backup_id)
        return

    # Vacuum a database
    if method == "vacuum":
        backup_id = args.get("id", None)
        vacuum_database(data, backup_id)
        return

    # Verify remote data files
    if method == "verify":
        backup_id = args.get("id", None)
        verify_remote_files(data, backup_id)
        return

    # Compact remote data
    if method == "compact":
        backup_id = args.get("id", None)
        compact_remote_files(data, backup_id)
        return

    # Dismiss notifications
    if method == "dismiss":
        resource_id = args.get("id", "all")
        if not resource_id.isdigit() and resource_id != "all":
            common.log_output("Invalid id: " + resource_id, True)
            return
        dismiss_notifications(data, resource_id)
        return

    # Show logs
    if method == "logs":
        log_type = args.get("type", None)
        backup_id = args.get("id", None)
        remote = args.get("remote", False)
        follow = args.get("follow", False)
        lines = args.get("lines", 10)
        show_all = args.get("all", False)
        output_type = args.get("output", None)
        get_logs(data, log_type, backup_id, remote, follow, lines, show_all,
                 output_type)
        return

    # Run backup
    if method == "run":
        backup_id = args.get("id", None)
        run_backup(data, backup_id)
        return

    # Abort backup
    if method == "abort":
        backup_id = args.get("id", None)
        abort_task(data, backup_id)
        return

    # Create method
    if method == "create":
        import_type = args.get("type", None)
        import_file = args.get("import-file", None)
        import_meta = args.get("import_metadata", None)

        import_resource(data, import_type, import_file, None, import_meta)
        return

    # Update method
    if method == "update":
        import_type = args.get("type", None)
        import_id = args.get("id", None)
        import_file = args.get("import-file", None)
        # import-metadata is the inverse of strip-metadata
        import_meta = not args.get("strip_metadata", False)

        import_resource(data, import_type, import_file, import_id, import_meta)
        return

    # Delete a resource
    if method == "delete":
        resource_id = args.get("id", None)
        resource_type = args.get("type", None)
        delete_db = args.get("delete_db", False)
        confirm = args.get("confirm", False)
        recreate = args.get("recreate", False)
        delete_resource(data, resource_type, resource_id, confirm, delete_db,
                        recreate)
        return

    # Export method
    if method == "export":
        resource_id = args.get("id", None)
        output_type = args.get("output", None)
        path = args.get("output_path", None)
        export_passwords = args.get("no_passwords", True)
        all_ids = args.get("all", False)
        timestamp = args.get("timestamp", False)
        print(export_passwords)
        confirm = args.get("confirm", False)
        export_backup(data, resource_id, output_type, path, export_passwords,
                      all_ids, timestamp, confirm)
        return

    # Pause
    if method == "pause":
        time = args.get("duration", "xxx")
        pause(data, time)
        return

    # Resume
    if method == "resume":
        resume(data)
        return
Ejemplo n.º 3
0
def main(**args):
    # Command method
    method = sys.argv[1]

    if method == "version":
        message = "Duplicati client version "
        message += config.APPLICATION_VERSION
        return common.log_output(message, True)

    # Default values
    data = {
        "last_login": None,
        "parameters_file": None,
        "server": {
            "port": "8200",
            "protocol": "http",
            "url": "localhost",
            "verify": True
        },
        'token': None,
        'token_expires': None,
        'verbose': False,
        'authorization': ''
    }

    # Detect home dir for config file
    config.CONFIG_FILE = compatibility.get_config_location()

    # Load configuration
    overwrite = args.get("overwrite", False)
    data = load_config(data, overwrite)

    param_file = args.get("param-file", None)
    # Set parameters file
    if method == "params":
        data = set_parameters_file(data, args, param_file)

    # Load parameters file
    args = common.load_parameters(data, args)

    # Show parameters
    if method == "params" and (args.get("show", False) or param_file is None):
        display_parameters(data)

    # Toggle verbosity
    if method == "verbose":
        mode = args.get("mode", None)
        data = toggle_verbose(data, mode)

    # Write verbosity setting to config variable
    config.VERBOSE = data.get("verbose", False)

    # Display the config if requested
    if method == "config":
        display_config(data)

    # Display the status if requested
    if method == "status":
        display_status(data)

    # Login
    if method == "login":
        url = args.get("url", None)
        password = args.get("password", None)
        basic_user = args.get("basic_user", None)
        basic_pass = args.get("basic_pass", None)
        certfile = args.get("certfile", None)
        insecure = args.get("insecure", False)
        verify = auth.determine_ssl_validation(data, certfile, insecure)
        interactive = args.get("script", True)
        data = auth.login(data, url, password, verify, interactive, basic_user,
                          basic_pass)

    # Logout
    if method == "logout":
        data = auth.logout(data)

    # List resources
    if method == "list":
        resource_type = args.get("type", None)
        list_resources(data, resource_type)

    # Get resources
    if method == "get":
        resource_type = args.get("type", None)
        resource_id = args.get("id", None)
        get_resources(data, resource_type, resource_id)

    # Get resources
    if method == "describe":
        resource_type = args.get("type", None)
        resource_id = args.get("id", None)
        describe_resource(data, resource_type, resource_id)

    # Dismiss notifications
    if method == "dismiss":
        resource_id = args.get("id", "all")
        if not resource_id.isdigit() and resource_id != "all":
            common.log_output("Invalid id: " + resource_id, True)
            return
        dismiss_notifications(data, resource_id)

    # Show logs
    if method == "logs":
        log_type = args.get("type", None)
        backup_id = args.get("id", None)
        remote = args.get("remote", False)
        follow = args.get("follow", False)
        lines = args.get("lines", 10)
        show_all = args.get("all", False)
        get_logs(data, log_type, backup_id, remote, follow, lines, show_all)

    # Run backup
    if method == "run":
        backup_id = args.get("id", None)
        run_backup(data, backup_id)

    # Abort backup
    if method == "abort":
        backup_id = args.get("id", None)
        abort_task(data, backup_id)

    # Create method
    if method == "create":
        import_type = args.get("type", None)
        import_file = args.get("import-file", None)
        import_meta = args.get("import_metadata", None)

        import_resource(data, import_type, import_file, None, import_meta)

    # Update method
    if method == "update":
        import_type = args.get("type", None)
        import_id = args.get("id", None)
        import_file = args.get("import-file", None)
        # import-metadata is the inverse of strip-metadata
        import_meta = not args.get("strip_metadata", False)

        import_resource(data, import_type, import_file, import_id, import_meta)

    # Delete a resource
    if method == "delete":
        resource_id = args.get("id", None)
        resource_type = args.get("type", None)
        delete_db = args.get("delete_db", False)
        confirm = args.get("confirm", False)
        delete_resource(data, resource_type, resource_id, confirm, delete_db)

    # Import method
    if method == "import":
        message = "DEPRECATED: Consider using Create or Update instead"
        common.log_output(message, True)
        import_type = args.get("type", None)
        import_file = args.get("import-file", None)
        import_id = args.get("id", None)
        import_meta = args.get("import_metadata", None)
        strip_meta = args.get("strip_metadata", False)
        # Strip meta data is only valid when import_id is specified
        if import_id is not None and not strip_meta:
            import_meta = True

        import_resource(data, import_type, import_file, import_id, import_meta)

    # Export method
    if method == "export":
        resource_type = args.get("type", None)
        resource_id = args.get("id", None)
        output_type = args.get("output", None)
        path = args.get("output_path", None)
        export_resource(data, resource_type, resource_id, output_type, path)
Ejemplo n.º 4
0
    def _load_timeseries(self, sought_fields=None):
        if bool(os.path.exists(self.settings_folder) and
                os.path.exists(self.timeseries_folder)):
            info_split("Opening folder:", self.folder)
        else:
            info_on_red("Folder does not contain "
                        "Settings or Timeseries folders.")
            exit()

        data = dict()
        for params_file in glob.glob(
                self.params_prefix + "*" + self.params_suffix):
            parameters = dict()
            from_tstep = int(get_middle(params_file,
                                        self.params_prefix,
                                        self.params_suffix))

            load_parameters(parameters, params_file)

            t_0 = float(parameters["t_0"])

            self.parameters[t_0] = parameters

            from_tstep_suffix = "_from_tstep_" + str(from_tstep) + ".h5"
            from_tstep_xml_suffix = "_from_tstep_" + str(from_tstep) + ".xdmf"
            for xml_file in glob.glob(os.path.join(
                    self.timeseries_folder, "*" + from_tstep_xml_suffix)):

                data_file = xml_file[:-4] + "h5"
                field = get_middle(data_file,
                                   self.timeseries_folder + "/",
                                   from_tstep_suffix)

                if bool(sought_fields is None or
                        field in sought_fields):
                    if bool(field not in data):
                        data[field] = dict()

                    dsets, topology_address, geometry_address \
                        = parse_xdmf(xml_file, get_mesh_address=True)

                    if self.elems is None:
                        with h5py.File(topology_address[0], "r") as h5f:
                            self.elems = np.array(h5f[topology_address[1]])

                    if self.nodes is None:
                        with h5py.File(geometry_address[0], "r") as h5f:
                            self.nodes = np.array(h5f[geometry_address[1]])

                    with h5py.File(data_file, "r") as h5f:
                        for time, dset_address in dsets:
                            # If in memory saving mode, only store
                            # address for later use.
                            if self.memory_modest:
                                data[field][time] = (data_file, dset_address)
                            else:
                                data[field][time] = np.array(h5f[dset_address])

        for i, field in enumerate(data.keys()):
            tmps = sorted(data[field].items())
            if i == 0:
                self.times = [tmp[0] for tmp in tmps]
            self[field] = [tmp[1] for tmp in tmps]
        self.parameters = sorted(self.parameters.items())
        self.fields = self.datasets.keys()
Ejemplo n.º 5
0
            gevent.sleep(ARI_RECONNECT_TIMEOUT)
            continue



def get_odoo_connection():
    while True:
        try:
            odoo = odoorpc.ODOO(ODOO_HOST, port=ODOO_PORT)
            odoo.login(ODOO_DB, ODOO_USER, ODOO_PASSWORD)
            logger.info('Connected to Odoo.')
            return odoo
        except urllib2.URLError as e:
            if 'Errno 61' in str(e):  # Connection refused
                logger.error('Cannot connect to Odoo, trying again.')
                gevent.sleep(ODOO_RECONNECT_TIMEOUT)
            else:
                raise



if __name__ == '__main__':
    logger.info('Barrier stasis app has been started.')
    odoo = get_odoo_connection()
    conf = load_parameters(odoo, conf_parameters)
    ari_handle = gevent.spawn(always_connect_ari, conf)
    try:
        gevent.joinall([ari_handle])
    except (KeyboardInterrupt, SystemExit):
        logger.info('Terminating.')