Пример #1
0
    def enable(self, stream, assumeyes=False):
        if stream not in self:
            raise NoStreamException("{}:{}".format(self.name, stream))

        if self.conf.enabled._get() and self.conf.stream._get() == stream:
            return

        if self.conf.stream._get() is not "" and \
                str(self.conf.stream._get()) != str(stream) and \
                not assumeyes:
            logger.info(module_messages[DIFFERENT_STREAM_INFO].format(
                self.name))

            if not self.parent.base.conf.assumeno and \
                    self.parent.base.output.userconfirm():
                self.parent.base._module_persistor.set_data(self,
                                                            version=-1,
                                                            profiles=set())
                self.enable(stream, True)
            else:
                raise EnabledStreamException("{}:{}".format(self.name, stream))

        self.parent.base._module_persistor.set_data(self,
                                                    stream=stream,
                                                    enabled=True)
Пример #2
0
    def lock(self, module_spec, save_immediately=False):
        subj = ModuleSubject(module_spec)
        module_version, module_form = subj.find_module_version(self)

        repo_module = module_version.repo_module

        if not repo_module.conf.enabled._get():
            raise EnabledStreamException(module_spec)
        elif repo_module.conf.locked._get() and \
                (repo_module.conf.stream._get() != module_version.stream or
                 repo_module.conf.version._get() != module_version.version):
            raise VersionLockedException(module_spec, module_version.version)

        version_to_lock = module_version.version
        if list(repo_module.conf.profiles._get()):
            version_to_lock = module_version.repo_module.conf.version._get()
        repo_module.lock(version_to_lock)

        if module_form.version and version_to_lock != module_form.version:
            raise CannotLockVersionException(module_spec, module_form.version,
                                             "Different version installed.")

        if save_immediately:
            self.base._module_persistor.commit()
            self.base._module_persistor.save()

        return module_version.stream, version_to_lock
Пример #3
0
    def unlock(self, module_spec, save_immediately=False):
        subj = ModuleSubject(module_spec)
        module_version, module_form = subj.find_module_version(self)

        repo_module = module_version.repo_module

        if not repo_module.conf.enabled._get():
            raise EnabledStreamException(module_spec)

        repo_module.unlock()

        if save_immediately:
            self.base._module_persistor.commit()
            self.base._module_persistor.save()

        return module_version.stream, module_version.version