Example #1
0
    def _process_non_multi_part(self, user_data):
        if user_data.startswith(b'#cloud-config'):
            user_data_plugins = factory.load_plugins()
            cloud_config_plugin = user_data_plugins.get('text/cloud-config')
            ret_val = cloud_config_plugin.process_non_multipart(user_data)
        elif user_data.startswith(b'#cloud-skyform'):
            # skyform user data extention
            user_data_plugins = factory.load_plugins()
            skyform_config_plugin = user_data_plugins.get('text/skyform-config')
            ret_val = skyform_config_plugin.process_non_multipart(user_data)
        else:
            ret_val = userdatautils.execute_user_data_script(user_data)

        return self._get_plugin_return_value(ret_val)
Example #2
0
    def _process_non_multi_part(self, user_data):
        if user_data.startswith(b'#cloud-config'):
            user_data_plugins = factory.load_plugins()
            cloud_config_plugin = user_data_plugins.get('text/cloud-config')
            ret_val = cloud_config_plugin.process_non_multipart(user_data)
        else:
            ret_val = userdatautils.execute_user_data_script(user_data)

        return self._get_plugin_return_value(ret_val)
Example #3
0
    def _process_non_multi_part(self, user_data):
        ret_val = None
        if user_data.startswith(b'#cloud-config'):
            user_data_plugins = factory.load_plugins()
            cloud_config_plugin = user_data_plugins.get('text/cloud-config')
            ret_val = cloud_config_plugin.process_non_multipart(user_data)
        elif user_data.strip().startswith(x509constants.PEM_HEADER.encode()):
            LOG.debug('Found X509 certificate in userdata')
        else:
            ret_val = userdatautils.execute_user_data_script(user_data)

        return execcmd.get_plugin_return_value(ret_val)
Example #4
0
    def _process_non_multi_part(self, user_data, instance_data={}):
        ret_val = None
        if user_data.startswith(b'## template: jinja'):
            jinja_ident, cloud_config = user_data.split(b"\n", 1)
            template = Template(cloud_config.decode())
            user_data = template.render(**instance_data).encode()
        if user_data.startswith(b'#cloud-config'):
            user_data_plugins = factory.load_plugins()
            cloud_config_plugin = user_data_plugins.get('text/cloud-config')
            ret_val = cloud_config_plugin.process_non_multipart(user_data)
        elif user_data.strip().startswith(x509constants.PEM_HEADER.encode()):
            LOG.debug('Found X509 certificate in userdata')
        else:
            ret_val = userdatautils.execute_user_data_script(user_data)

        return execcmd.get_plugin_return_value(ret_val)
Example #5
0
    def _process_user_data(self, user_data):
        plugin_status = base.PLUGIN_EXECUTION_DONE
        reboot = False

        if user_data.startswith(b'Content-Type: multipart'):
            user_data_plugins = factory.load_plugins()
            user_handlers = {}

            for part in self._parse_mime(user_data):
                (plugin_status, reboot) = self._process_part(part,
                                                             user_data_plugins,
                                                             user_handlers)
                if reboot:
                    break

            if not reboot:
                for handler_func in list(set(user_handlers.values())):
                    self._end_part_process_event(handler_func)

            return (plugin_status, reboot)
        else:
            return self._process_non_multi_part(user_data)
Example #6
0
    def _process_user_data(self, user_data):
        plugin_status = base.PLUGIN_EXECUTION_DONE
        reboot = False

        if user_data.startswith(b'Content-Type: multipart'):
            user_data_plugins = factory.load_plugins()
            user_handlers = {}

            for part in self._parse_mime(user_data):
                (plugin_status,
                 reboot) = self._process_part(part, user_data_plugins,
                                              user_handlers)
                if reboot:
                    break

            if not reboot:
                for handler_func in list(set(user_handlers.values())):
                    self._end_part_process_event(handler_func)

            return plugin_status, reboot
        else:
            return self._process_non_multi_part(user_data)
Example #7
0
    def _process_user_data(self, user_data, instance_data={}):
        plugin_status = base.PLUGIN_EXECUTION_DONE
        reboot = False
        headers = self._get_headers(user_data)
        if 'Content-Type: multipart' in headers:
            LOG.debug("Processing userdata")
            user_data_plugins = factory.load_plugins()
            user_handlers = {}

            for part in self._parse_mime(user_data):
                (plugin_status,
                 reboot) = self._process_part(part, user_data_plugins,
                                              user_handlers)
                if reboot:
                    break

            if not reboot:
                for handler_func in list(set(user_handlers.values())):
                    self._end_part_process_event(handler_func)

            return plugin_status, reboot
        else:
            return self._process_non_multi_part(user_data, instance_data)
Example #8
0
    def _process_user_data(self, user_data):
        plugin_status = base.PLUGIN_EXECUTION_DONE
        reboot = False
        headers = self._get_headers(user_data)
        if 'Content-Type: multipart' in headers:
            LOG.debug("Processing userdata")
            user_data_plugins = factory.load_plugins()
            user_handlers = {}

            for part in self._parse_mime(user_data):
                (plugin_status, reboot) = self._process_part(part,
                                                             user_data_plugins,
                                                             user_handlers)
                if reboot:
                    break

            if not reboot:
                for handler_func in list(set(user_handlers.values())):
                    self._end_part_process_event(handler_func)

            return plugin_status, reboot
        else:
            return self._process_non_multi_part(user_data)
Example #9
0
 def test_process(self, mock_load_class):
     response = factory.load_plugins()
     self.assertTrue(response is not None)
 def test_process(self, mock_load_class):
     response = factory.load_plugins()
     self.assertTrue(response is not None)