Пример #1
0
def maybe_run_cnf(cnf, func):
    """
    Runs a function on a configuration, unless results already exist
    or a lock file indicates that training is already running in
    another process. Creates a lock file if the function is executed.
    """
    # If results already exist for this configuration, then return them.
    res_flp = get_partial_results_flp(cnf)
    if path.exists(res_flp):
        print(f"Results already exist: {res_flp}")
        with np.load(res_flp) as fil:
            return fil[RESULTS_KEY]
    # If a lock file exists for this configuration, then skip it.
    out_dir = cnf["out_dir"]
    if utils.check_lock_file(out_dir):
        print(f"Configuration running somewhere else: {out_dir}")
        return None
    # Otherwise, create a lock file and process the configuration.
    utils.create_lock_file(out_dir)
    return func(cnf)
Пример #2
0
    def run(self):
        _program = 'migasfree upload'
        parser = optparse.OptionParser(
            description=_program,
            prog=self.CMD,
            version=self.release,
            usage='%prog options'
        )

        print(_('%(program)s version: %(version)s') % {
            'program': _program,
            'version': self.release
        })

        # migasfree-upload {-f file [--regular-file] | -d dir [-n name]}
        #  [[-u user] [-p pwd] [--main-project project] [-s store] [--no-create-repo]]

        parser.add_option(
            "--file", "-f", action="store",
            help=_('File to upload at server')
        )
        parser.add_option(
            "--regular-file", "-r", action="store_true",
            help=_('File is not a software package')
        )

        parser.add_option(
            "--dir", "-d", action="store",
            help=_('Directory with files to upload at server')
        )
        parser.add_option(
            "--name", "-n", action="store",
            help=_('Name of the directory at server')
        )

        parser.add_option(
            "--user", "-u", action="store",
            help=_('Authorized user to upload at server')
        )
        parser.add_option(
            "--pwd", "-p", action="store",
            help=_('User password')
        )
        parser.add_option(
            "--main-project", "-m", action="store",
            help=_('Project to upload files')
        )
        parser.add_option(
            "--store", "-s", action="store",
            help=_('Store to upload files at server')
        )
        parser.add_option(
            "--no-create-repo", "-c", action="store_true",
            help=_('No create repository after upload file at server')
        )

        options, arguments = parser.parse_args()

        # check restrictions
        if not options.file and not options.dir:
            self._usage_examples()
            parser.error(_('File or Dir options are mandatory!!!'))
        if options.file and options.dir:
            self._usage_examples()
            parser.error(_('File and Dir options are exclusive!!!'))
        if options.regular_file and options.dir:
            self._usage_examples()
            parser.error(_('This option does not apply with Dir option!!!'))
        if options.name and options.file:
            self._usage_examples()
            parser.error(_('This option does not apply with File option!!!'))

        utils.check_lock_file(self.CMD, self.LOCK_FILE)

        # assign config options
        if options.user:
            self.packager_user = options.user
        if options.pwd:
            self.packager_pwd = options.pwd
        if options.main_project:
            self.packager_project = options.main_project
        if options.store:
            self.packager_store = options.store

        if options.no_create_repo:
            self._create_repo = not options.no_create_repo

        # actions dispatcher
        if options.file:
            self._file = options.file
            self._is_regular_file = (options.regular_file is True)
            if self._is_regular_file:
                self._create_repo = False
        elif options.dir:
            self._directory = options.dir
            if options.name:
                self._server_directory = options.name
            else:
                self._server_directory = options.dir
        else:
            parser.print_help()
            self._usage_examples()

        self._left_parameters()
        self.auto_register_user = self.packager_user
        self.auto_register_password = self.packager_pwd
        self.auto_register_command = 'get_key_packager'

        self._show_running_options()

        if self._file:
            self._upload_file()
        else:
            self._upload_set()

        utils.remove_file(self.LOCK_FILE)

        sys.exit(os.EX_OK)  # no error
Пример #3
0
    def run(self):
        _program = 'migasfree client'
        parser = optparse.OptionParser(
            description=_program,
            prog=self.CMD,
            version=__version__,
            usage='%prog options'
        )

        print(_('%(program)s version: %(version)s') % {
            'program': _program,
            'version': __version__
        })

        parser.add_option("--register", "-g", action="store_true",
            help=_('Register computer at server'))
        parser.add_option("--update", "-u", action="store_true",
            help=_('Update system from repositories'))
        parser.add_option("--search", "-s", action="store",
            help=_('Search package in repositories'))
        parser.add_option(
            "--install", "-i",
            action="store_true",
            #help=_('Install package or device')
            help=_('Install package')
        )
        parser.add_option(
            "--remove", "-r",
            action="store_true",
            #help=_('Remove package or device')
            help=_('Remove package')
        )
        parser.add_option("--package", "-p", action="store",
            help=_('Package to install or remove'))
        #parser.add_option("--device", "-d", action = "store",
        #    help = _('Device to install or remove'))

        options, arguments = parser.parse_args()

        # check restrictions
        if options.register and \
        (options.install or options.remove or options.update or options.search):
            self._usage_examples()
            parser.error(_('Register option is exclusive!!!'))
        if options.update and \
        (options.install or options.remove or options.search):
            self._usage_examples()
            parser.error(_('Update option is exclusive!!!'))
        if options.search and (options.install or options.remove):
            self._usage_examples()
            parser.error(_('Search option is exclusive!!!'))
        if options.install and options.remove:
            parser.print_help()
            self._usage_examples()
            parser.error(_('Install and remove are exclusive!!!'))
        if options.install and not (options.package or options.device):
            self._usage_examples()
            #parser.error(_('Install needs package or device!!!'))
            parser.error(_('Install needs a package!!!'))
        if options.remove and not (options.package or options.device):
            self._usage_examples()
            #parser.error(_('Remove needs package or device!!!'))
            parser.error(_('Remove needs a package!!!'))

        utils.check_lock_file(self.CMD, self.LOCK_FILE)

        self._show_running_options()

        # actions dispatcher
        if options.update:
            self._update_system()
        elif options.register:
            self._register_computer()
        elif options.search:
            self._search(options.search)
        elif options.install and options.package:
            self._install_package(options.package)
        elif options.install and options.device:
            self._install_device(options.device)
        elif options.remove and options.package:
            self._remove_package(options.package)
        elif options.remove and options.device:
            self._remove_device(options.device)
        else:
            parser.print_help()
            self._usage_examples()

        utils.remove_file(self.LOCK_FILE)

        sys.exit(os.EX_OK)  # no error
Пример #4
0
    def run(self):
        _program = 'migasfree upload'
        parser = optparse.OptionParser(
            description=_program,
            prog=self.CMD,
            version=self.release,
            usage='%prog options'
        )

        print(_('%(program)s version: %(version)s') % {
            'program': _program,
            'version': self.release
        })

        # migasfree-upload {-f file [--regular-file] | -d dir [-n name]}
        #  [[-u user] [-p pwd] [--main-project project] [-s store] [--no-create-repo]]

        parser.add_option(
            "--file", "-f", action="store",
            help=_('File to upload at server')
        )
        parser.add_option(
            "--regular-file", "-r", action="store_true",
            help=_('File is not a software package')
        )

        parser.add_option(
            "--dir", "-d", action="store",
            help=_('Directory with files to upload at server')
        )
        parser.add_option(
            "--name", "-n", action="store",
            help=_('Name of the directory at server')
        )

        parser.add_option(
            "--user", "-u", action="store",
            help=_('Authorized user to upload at server')
        )
        parser.add_option(
            "--pwd", "-p", action="store",
            help=_('User password')
        )
        parser.add_option(
            "--main-project", "-m", action="store",
            help=_('Project to upload files')
        )
        parser.add_option(
            "--store", "-s", action="store",
            help=_('Store to upload files at server')
        )
        parser.add_option(
            "--no-create-repo", "-c", action="store_true",
            help=_('No create repository after upload file at server')
        )

        options, arguments = parser.parse_args()

        # check restrictions
        if not options.file and not options.dir:
            self._usage_examples()
            parser.error(_('File or Dir options are mandatory!!!'))
        if options.file and options.dir:
            self._usage_examples()
            parser.error(_('File and Dir options are exclusive!!!'))
        if options.regular_file and options.dir:
            self._usage_examples()
            parser.error(_('This option does not apply with Dir option!!!'))
        if options.name and options.file:
            self._usage_examples()
            parser.error(_('This option does not apply with File option!!!'))

        utils.check_lock_file(self.CMD, self.LOCK_FILE)

        # assign config options
        if options.user:
            self.packager_user = options.user
        if options.pwd:
            self.packager_pwd = options.pwd
        if options.main_project:
            self.packager_project = options.main_project
        if options.store:
            self.packager_store = options.store

        if options.no_create_repo:
            self._create_repo = not options.no_create_repo

        # actions dispatcher
        if options.file:
            self._file = options.file
            self._is_regular_file = (options.regular_file is True)
            if self._is_regular_file:
                self._create_repo = False
        elif options.dir:
            self._directory = options.dir
            if options.name:
                self._server_directory = options.name
            else:
                self._server_directory = options.dir
        else:
            parser.print_help()
            self._usage_examples()

        self._left_parameters()
        self.auto_register_user = self.packager_user
        self.auto_register_password = self.packager_pwd
        self.auto_register_command = 'get_key_packager'

        self._show_running_options()

        if self._file:
            self._upload_file()
        else:
            self._upload_set()

        utils.remove_file(self.LOCK_FILE)

        sys.exit(os.EX_OK)  # no error
Пример #5
0
    def run(self):
        _program = 'migasfree client'
        parser = optparse.OptionParser(description=_program,
                                       prog=self.CMD,
                                       version=__version__,
                                       usage='%prog options')

        print(
            _('%(program)s version: %(version)s') % {
                'program': _program,
                'version': __version__
            })

        parser.add_option("--register",
                          "-g",
                          action="store_true",
                          help=_('Register computer at server'))
        parser.add_option("--update",
                          "-u",
                          action="store_true",
                          help=_('Update system from repositories'))
        parser.add_option("--search",
                          "-s",
                          action="store",
                          help=_('Search package in repositories'))
        parser.add_option(
            "--install",
            "-i",
            action="store_true",
            #help=_('Install package or device')
            help=_('Install package'))
        parser.add_option(
            "--remove",
            "-r",
            action="store_true",
            #help=_('Remove package or device')
            help=_('Remove package'))
        parser.add_option("--package",
                          "-p",
                          action="store",
                          help=_('Package to install or remove'))
        #parser.add_option("--device", "-d", action = "store",
        #    help = _('Device to install or remove'))

        options, arguments = parser.parse_args()

        # check restrictions
        if options.register and \
        (options.install or options.remove or options.update or options.search):
            self._usage_examples()
            parser.error(_('Register option is exclusive!!!'))
        if options.update and \
        (options.install or options.remove or options.search):
            self._usage_examples()
            parser.error(_('Update option is exclusive!!!'))
        if options.search and (options.install or options.remove):
            self._usage_examples()
            parser.error(_('Search option is exclusive!!!'))
        if options.install and options.remove:
            parser.print_help()
            self._usage_examples()
            parser.error(_('Install and remove are exclusive!!!'))
        if options.install and not (options.package or options.device):
            self._usage_examples()
            #parser.error(_('Install needs package or device!!!'))
            parser.error(_('Install needs a package!!!'))
        if options.remove and not (options.package or options.device):
            self._usage_examples()
            #parser.error(_('Remove needs package or device!!!'))
            parser.error(_('Remove needs a package!!!'))

        utils.check_lock_file(self.CMD, self.LOCK_FILE)

        self._show_running_options()

        # actions dispatcher
        if options.update:
            self._update_system()
        elif options.register:
            self._register_computer()
        elif options.search:
            self._search(options.search)
        elif options.install and options.package:
            self._install_package(options.package)
        elif options.install and options.device:
            self._install_device(options.device)
        elif options.remove and options.package:
            self._remove_package(options.package)
        elif options.remove and options.device:
            self._remove_device(options.device)
        else:
            parser.print_help()
            self._usage_examples()

        utils.remove_file(self.LOCK_FILE)

        sys.exit(os.EX_OK)  # no error