Exemple #1
0
    def process(self, part):
        file_name = os.path.join(CONF.heat_config_dir, part.get_filename())
        self._check_dir(file_name)

        encoding.write_file(file_name, part.get_payload())

        if part.get_filename() == self._heat_user_data_filename:
            return userdatautils.execute_user_data_script(part.get_payload())
Exemple #2
0
    def process(self, part):
        file_name = os.path.join(CONF.heat_config_dir, part.get_filename())
        self._check_dir(file_name)

        encoding.write_file(file_name, part.get_payload())

        if part.get_filename() == self._heat_user_data_filename:
            return userdatautils.execute_user_data_script(part.get_payload())
    def process(self, part):
        temp_dir = tempfile.gettempdir()
        part_handler_path = os.path.join(temp_dir, part.get_filename())
        encoding.write_file(part_handler_path, part.get_payload())

        part_handler = classloader.ClassLoader().load_module(part_handler_path)

        if part_handler and hasattr(part_handler, "list_types") and hasattr(part_handler, "handle_part"):
            part_handlers_dict = {}
            for handled_type in part_handler.list_types():
                part_handlers_dict[handled_type] = part_handler.handle_part
            return part_handlers_dict
    def process(self, part):
        temp_dir = tempfile.gettempdir()
        part_handler_path = os.path.join(temp_dir, part.get_filename())
        encoding.write_file(part_handler_path, part.get_payload())

        part_handler = classloader.ClassLoader().load_module(part_handler_path)

        if (part_handler and
                hasattr(part_handler, "list_types") and
                hasattr(part_handler, "handle_part")):
            part_handlers_dict = {}
            for handled_type in part_handler.list_types():
                part_handlers_dict[handled_type] = part_handler.handle_part
            return part_handlers_dict
Exemple #5
0
    def process(self, part):
        file_name = part.get_filename()
        target_path = os.path.join(tempfile.gettempdir(), file_name)

        try:
            encoding.write_file(target_path, part.get_payload())

            return fileexecutils.exec_file(target_path)
        except Exception as ex:
            LOG.warning(
                'An error occurred during user_data execution: \'%s\'' % ex)
        finally:
            if os.path.exists(target_path):
                os.remove(target_path)
    def process(self, part):
        file_name = part.get_filename()
        target_path = os.path.join(tempfile.gettempdir(), file_name)

        try:
            encoding.write_file(target_path, part.get_payload())

            return fileexecutils.exec_file(target_path)
        except Exception as ex:
            LOG.warning('An error occurred during user_data execution: \'%s\''
                        % ex)
        finally:
            if os.path.exists(target_path):
                os.remove(target_path)
Exemple #7
0
    def process(self, part):
        file_name = os.path.join(CONF.heat_config_dir, part.get_filename())
        self._check_dir(file_name)

        payload = part.get_payload(decode=True)
        encoding.write_file(file_name, payload)

        if part.get_filename() == self._heat_user_data_filename:
            # Normalize the payload to bytes, since `execute_user_data_script`
            # operates on bytes and `get_payload` returns a string on
            # Python 3.
            if isinstance(payload, six.text_type):
                payload = payload.encode()
            return userdatautils.execute_user_data_script(payload)
 def test_write_file(self):
     mode_map = [(("w", "r"), "my test\ndata\n\n", False),
                 (("wb", "rb"), "\r\n".join(
                     (chr(x) for x in (32, 125, 0))).encode(), False),
                 (("wb", "rb"), "my test\ndata\n\n", True)]
     with testutils.create_tempdir() as temp:
         fd, path = tempfile.mkstemp(dir=temp)
         os.close(fd)
         for (write, read), data, encode in mode_map:
             encoding.write_file(path, data, mode=write)
             with open(path, read) as stream:
                 content = stream.read()
             if encode:
                 data = data.encode()
             self.assertEqual(data, content)
 def test_write_file(self):
     mode_map = [
         (("w", "r"), "my test\ndata\n\n", False),
         (("wb", "rb"), "\r\n".join((chr(x) for x in
                                     (32, 125, 0))).encode(), False),
         (("wb", "rb"), "my test\ndata\n\n", True)
     ]
     with testutils.create_tempdir() as temp:
         fd, path = tempfile.mkstemp(dir=temp)
         os.close(fd)
         for (write, read), data, encode in mode_map:
             encoding.write_file(path, data, mode=write)
             with open(path, read) as stream:
                 content = stream.read()
             if encode:
                 data = data.encode()
             self.assertEqual(data, content)