Exemplo n.º 1
0
    def unpack(self, update=False, dryrun=False, nodeps=False, config=None):
        """
        Unpacks a Nulecule application from a Nulecule image to a path
        or load a Nulecule that already exists locally.

        Args:
            update (bool): Update existing Nulecule application in
                           app_path, if True
            dryrun (bool): Do not make any change to the host system
            nodeps (bool): Do not unpack external dependencies
            config (dict): Config data, if any, to use for unpacking

        Returns:
            A Nulecule instance.
        """
        logger.debug('Request to unpack to %s to %s' %
                     (self.image, self.app_path))

        # If the user provided an image then unpack it and return the
        # resulting Nulecule. Else, load from existing path
        if self.image:
            return Nulecule.unpack(self.image,
                                   self.app_path,
                                   config=config,
                                   nodeps=nodeps,
                                   dryrun=dryrun,
                                   update=update)
        else:
            return Nulecule.load_from_path(self.app_path,
                                           dryrun=dryrun,
                                           config=config)
Exemplo n.º 2
0
    def unpack(self, update=False, dryrun=False, nodeps=False, config=None):
        """
        Unpacks a Nulecule application from a Nulecule image to a path
        or load a Nulecule that already exists locally.

        Args:
            update (bool): Update existing Nulecule application in
                           app_path, if True
            dryrun (bool): Do not make any change to the host system
            nodeps (bool): Do not unpack external dependencies
            config (dict): Config data, if any, to use for unpacking

        Returns:
            A Nulecule instance.
        """
        logger.debug("Request to unpack to %s to %s" % (self.image, self.app_path))

        # If the user provided an image then unpack it and return the
        # resulting Nulecule. Else, load from existing path
        if self.image:
            return Nulecule.unpack(
                self.image, self.app_path, config=config, nodeps=nodeps, dryrun=dryrun, update=update
            )
        else:
            return Nulecule.load_from_path(self.app_path, dryrun=dryrun, config=config)
Exemplo n.º 3
0
    def stop(self, cli_provider, **kwargs):
        """
        Stops a running Nulecule application.

        Args:
            cli_provider (str): Provider running the Nulecule application
            kwargs (dict): Extra keyword arguments
        """
        # For stop we use the generated answer file from the run
        self.answers = Utils.loadAnswers(os.path.join(self.app_path, ANSWERS_RUNTIME_FILE))

        dryrun = kwargs.get("dryrun") or False
        self.nulecule = Nulecule.load_from_path(self.app_path, config=self.answers, dryrun=dryrun)
        self.nulecule.load_config(config=self.answers)
        self.nulecule.render(cli_provider, dryrun=dryrun)
        self.nulecule.stop(cli_provider, dryrun)
Exemplo n.º 4
0
    def stop(self, **kwargs):
        """
        Stops a running Nulecule application.

        Args:
            kwargs (dict): Extra keyword arguments
        """
        # For stop we use the generated answer file from the run
        self.answers_file = os.path.join(self.app_path, ANSWERS_RUNTIME_FILE)
        self._process_answers()

        dryrun = kwargs.get("dryrun") or False
        self.nulecule = Nulecule.load_from_path(self.app_path, config=self.config, dryrun=dryrun)
        self.nulecule.load_config()
        self.nulecule.render(self.nulecule.config.get("provider"), dryrun=dryrun)
        self.nulecule.stop(self.nulecule.config.get("provider"), dryrun)
Exemplo n.º 5
0
    def stop(self, cli_provider, **kwargs):
        """
        Stops a running Nulecule application.

        Args:
            cli_provider (str): Provider running the Nulecule application
            kwargs (dict): Extra keyword arguments
        """
        self.answers = Utils.loadAnswers(
            os.path.join(self.app_path, ANSWERS_RUNTIME_FILE))
        dryrun = kwargs.get('dryrun') or False
        self.nulecule = Nulecule.load_from_path(self.app_path,
                                                config=self.answers,
                                                dryrun=dryrun)
        self.nulecule.load_config(config=self.answers)
        self.nulecule.render(cli_provider, dryrun=dryrun)
        self.nulecule.stop(cli_provider, dryrun)
Exemplo n.º 6
0
    def stop(self, cli_provider, **kwargs):
        """
        Stops a running Nulecule application.

        Args:
            cli_provider (str): Provider running the Nulecule application
            kwargs (dict): Extra keyword arguments
        """
        # For stop we use the generated answer file from the run
        self.answers_file = os.path.join(self.app_path, ANSWERS_RUNTIME_FILE)
        self._process_answers()

        dryrun = kwargs.get('dryrun') or False
        self.nulecule = Nulecule.load_from_path(
            self.app_path, config=self.answers, dryrun=dryrun)
        self.nulecule.load_config(config=self.answers)
        self.nulecule.render(cli_provider, dryrun=dryrun)
        self.nulecule.stop(cli_provider, dryrun)
Exemplo n.º 7
0
 def test_invalid_nulecule_format(self):
     n = Nulecule('some-id', '0.0.2', {}, [], 'some/path')
     with pytest.raises(NuleculeException):
         n.load_from_path(src=os.path.dirname(__file__) +
                          '/invalid_nulecule/')
Exemplo n.º 8
0
 def test_missing_nulecule(self):
     n = Nulecule('some-id', '0.0.2', {}, [], 'some/path')
     with pytest.raises(NuleculeException):
         n.load_from_path(src='foo/bar')
Exemplo n.º 9
0
 def test_invalid_nulecule_format(self):
     n = Nulecule("some-id", "0.0.2", {}, [], "some/path")
     with pytest.raises(NuleculeException):
         n.load_from_path(src=os.path.dirname(__file__) + "/invalid_nulecule/")
Exemplo n.º 10
0
 def test_missing_nulecule(self):
     n = Nulecule("some-id", "0.0.2", {}, [], "some/path")
     with pytest.raises(NuleculeException):
         n.load_from_path(src="foo/bar")
Exemplo n.º 11
0
def get_answers(nulecule_path):
    nulecule = Nulecule.load_from_path(nulecule_path)
    nulecule.config = Config()
    nulecule.load_config(skip_asking=True)
    return nulecule.config.runtime_answers()
Exemplo n.º 12
0
 def test_invalid_nulecule_format(self):
     n = Nulecule('some-id', '0.0.2', {}, [], 'some/path')
     with pytest.raises(NuleculeException):
         n.load_from_path(src=os.path.dirname(__file__) + '/invalid_nulecule/')
Exemplo n.º 13
0
 def test_missing_nulecule(self):
     n = Nulecule('some-id', '0.0.2', {}, [], 'some/path')
     with pytest.raises(NuleculeException):
         n.load_from_path(src='foo/bar')