Esempio n. 1
0
 def setUp(self):
     tpl = set_template("tests/templates/tosca.yaml", {})
     self.adaptor = OccopusAdaptor(
         "local_OccoAdaptor",
         {"volume": "tests/output/"},
         dryrun=True,
         validate=False,
         template=tpl,
     )
Esempio n. 2
0
 def test_local(self):
     tpl = set_template("tests/templates/tosca.yaml")
     self.adaptor = KubernetesAdaptor(
         "local_K8sAdaptor",
         {"volume": "tests/output/"},
         dryrun=False,
         validate=False,
         template=tpl,
     )
     self.adaptor.translate(write_files=True)
Esempio n. 3
0
 def test_wordpress_demo(self):
     tpl = set_template(
         f"https://raw.githubusercontent.com/micado-scale/ansible-micado/{self.BRANCH}/demos/wordpress/wordpress_ec2.yaml",
         {},
     )
     self.adaptor = KubernetesAdaptor(
         f"wordpress-{self.BRANCH}_K8sAdaptor",
         {"volume": "tests/output/"},
         dryrun=False,
         validate=False,
         template=tpl,
     )
     self.adaptor.translate(write_files=self.WRITE)
    def _validate(self, path_to_file, dry_run=False, validate=False, app_id=None, parsed_params=None):
        """Validates app template, instantiate adaptors and validate adaptor translation
        
        Arguments:
            path_to_file {str} -- path to the app template
        
        Keyword Arguments:
            app_id {str} -- application id (default: {None})
            parsed_params -- (default: {None})
        
        Returns:
            tuple -- template and dictionary of adaptors
        """
        # MiCADO Validation
        logger.info("****** Starting the validation process of {} *****".format(path_to_file))
        template = parser.set_template(path_to_file, parsed_params)
        
        # Adaptors instantiation
        logger.debug("Instantiating the required adaptors")
        dict_object_adaptors = self._instantiate_adaptors(app_id, dry_run, validate, template)
        logger.info("Adaptors are successfully instantiated")
        logger.debug("list of objects adaptor: {}".format(dict_object_adaptors))

        # Adaptors translation
        try:
            self._translate(dict_object_adaptors)
        except MultiError:
            raise
        except AdaptorCritical as error:
            logger.error("******* Critical error during deployment, starting to roll back *********", error)
            if self.translated_adaptors:
                logger.info("Starting clean-up on translated files")
                self._cleanup(app_id, self.translated_adaptors)

            logger.info("Adaptor translation wasn't successful...")
            logger.info("*******************")
            raise
        logger.info("Adaptors are successfully translated")

        return template, dict_object_adaptors