Esempio n. 1
0
    def uninstall_parser(self, commands, command_all=False):
        if command_all:
            self.tentacle_package_manager.set_max_steps(
                self._get_package_count())
            self.tentacle_package_manager.try_action_on_tentacles_package(
                TentacleManagerActions.UNINSTALL, self.default_package,
                EVALUATOR_DEFAULT_FOLDER)
            for package in self.advanced_package_list:
                self.tentacle_package_manager.try_action_on_tentacles_package(
                    TentacleManagerActions.UNINSTALL, package,
                    EVALUATOR_ADVANCED_FOLDER)
            return self._get_package_count()
        else:
            nb_actions = len(commands)
            self.tentacle_package_manager.set_max_steps(nb_actions)
            for component in commands:

                component = TentacleUtil.check_format(component)
                package, _, _, _, destination, _ = self.get_package_in_lists(
                    component)

                if package:
                    try:
                        self.tentacle_package_manager.process_module(
                            TentacleManagerActions.UNINSTALL, package,
                            component, "", "", destination, "")
                    except Exception:
                        self.logger.error(
                            "Uninstalling failed for module '{0}'".format(
                                component))
                else:
                    self.logger.error(
                        "No module found for '{0}'".format(component))
                self.tentacle_package_manager.inc_current_step()
            return nb_actions
Esempio n. 2
0
    def install_parser(self, commands, command_all=False):
        should_install = True
        nb_actions = 0
        # first ensure the current tentacles architecture is setup correctly
        if TentacleUtil.create_missing_tentacles_arch():
            should_install = self._confirm_action(
                "Tentacles installation found on this OctoBot, this action will "
                "replace every local tentacle file and their configuration by their "
                "remote equivalent for the command's tentacles, continue ?")
        if should_install:
            # then process installations
            if command_all:

                self.tentacle_package_manager.set_max_steps(
                    self._get_package_count())
                self.tentacle_package_manager.try_action_on_tentacles_package(
                    TentacleManagerActions.INSTALL, self.default_package,
                    EVALUATOR_DEFAULT_FOLDER)
                for package in self.advanced_package_list:
                    self.tentacle_package_manager.try_action_on_tentacles_package(
                        TentacleManagerActions.INSTALL, package,
                        EVALUATOR_ADVANCED_FOLDER)

                nb_actions = self._get_package_count()
            else:
                nb_actions = len(commands)
                self.tentacle_package_manager.set_max_steps(nb_actions)
                for component in commands:

                    component = TentacleUtil.check_format(component)
                    package, _, localisation, is_url, destination, package_name = self.get_package_in_lists(
                        component)

                    if package:
                        try:
                            self.tentacle_package_manager.process_module(
                                TentacleManagerActions.INSTALL, package,
                                component, localisation, is_url, destination,
                                package_name)

                        except Exception as e:
                            self.logger.error(
                                "Installation failed for tentacle module '{0}'"
                                .format(component))
                            raise e
                    else:
                        self.logger.error(
                            "No installation found for tentacle module '{0}'".
                            format(component))
                    self.tentacle_package_manager.inc_current_step()

            TentaclePackageManager.update_evaluator_config_file()
            TentaclePackageManager.update_trading_config_file()

            return nb_actions
    def install_parser(self, commands, command_all=False, force=False):
        should_install = True
        # first ensure the current tentacles architecture is setup correctly
        if TentacleUtil.create_missing_tentacles_arch() and not force:
            should_install = self._confirm_action(
                self.TENTACLE_INSTALLATION_FOUND_MESSAGE)
        if should_install:
            # then process installations
            if command_all:

                self.tentacle_package_manager.set_max_steps(
                    self._get_package_count())
                self.tentacle_package_manager.try_action_on_tentacles_package(
                    TentacleManagerActions.INSTALL, self.default_package,
                    EVALUATOR_DEFAULT_FOLDER)
                for package in self.advanced_package_list:
                    self.tentacle_package_manager.try_action_on_tentacles_package(
                        TentacleManagerActions.INSTALL, package,
                        EVALUATOR_ADVANCED_FOLDER)

                nb_actions = self._get_package_count()
            else:
                nb_actions = len(commands)
                self.tentacle_package_manager.set_max_steps(nb_actions)
                for component in commands:

                    component = TentacleUtil.check_format(component)
                    package, _, localisation, is_url, destination, package_name = self.get_package_in_lists(
                        component)

                    if package:
                        try:
                            self.tentacle_package_manager.process_module(
                                TentacleManagerActions.INSTALL, package,
                                component, localisation, is_url, destination,
                                package_name)

                        except Exception as e:
                            self.logger.error(
                                f"Installation failed for tentacle module '{component}'"
                            )
                            raise e
                    else:
                        self.logger.error(
                            f"No installation found for tentacle module '{component}'"
                        )
                    self.tentacle_package_manager.inc_current_step()

            TentaclePackageManager.update_evaluator_config_file()
            TentaclePackageManager.update_trading_config_file()

            return nb_actions
Esempio n. 4
0
    def update_parser(self, commands, command_all=False):
        self.tentacle_package_manager.set_installed_modules(
            self.tentacle_package_manager.get_installed_modules())
        if command_all:
            self.tentacle_package_manager.set_max_steps(
                self._get_package_count())
            self.tentacle_package_manager.try_action_on_tentacles_package(
                TentacleManagerActions.UPDATE, self.default_package,
                EVALUATOR_DEFAULT_FOLDER)
            for package in self.advanced_package_list:
                self.tentacle_package_manager.try_action_on_tentacles_package(
                    TentacleManagerActions.UPDATE, package,
                    EVALUATOR_ADVANCED_FOLDER)

            return self._get_package_count()

        else:
            nb_actions = len(commands)
            self.tentacle_package_manager.set_max_steps(nb_actions)
            for component in commands:

                component = TentacleUtil.check_format(component)
                package, _, localisation, is_url, destination, package_name = self.get_package_in_lists(
                    component)

                if package:
                    try:
                        self.tentacle_package_manager.process_module(
                            TentacleManagerActions.UPDATE, package, component,
                            localisation, is_url, destination, package_name)

                    except Exception as e:
                        self.logger.error(
                            "Update failed for tentacle module '{0}'".format(
                                component))
                        raise e
                else:
                    self.logger.error(
                        "No tentacle found for '{0}'".format(component))
                self.tentacle_package_manager.inc_current_step()

            return nb_actions