Exemplo n.º 1
0
 def _get_dracut_module_version_from_pdb(
     package_manager: str, package_name: str, root_dir: str
 ) -> str:
     tool = Defaults.get_default_packager_tool(package_manager)
     package_query = None
     package_manager_query = None
     package_version = ''
     if tool == 'rpm':
         package_manager_query = [
             'chroot', root_dir, tool, '-q', '--qf',
             '%{VERSION}', package_name
         ]
     elif tool == 'dpkg':
         package_manager_query = [
             'chroot', root_dir, 'dpkg-query', '-W', '-f',
             '${Version}', package_name
         ]
     if package_manager_query:
         try:
             package_query = Command.run(package_manager_query)
             if package_query:
                 package_version = package_query.output.split('-', 1)[0]
         except Exception as issue:
             log.debug(f'Package manager query failed with: {issue}')
     return package_version
Exemplo n.º 2
0
    def export_package_verification(self, target_dir):
        """
        Export package verification result as metadata reference
        used by the open buildservice

        :param str target_dir: path name
        """
        filename = ''.join(
            [
                target_dir, '/',
                self.xml_state.xml_data.get_name(),
                '.' + self.arch,
                '-' + self.xml_state.get_image_version(),
                '.verified'
            ]
        )
        packager = Defaults.get_default_packager_tool(
            self.xml_state.get_package_manager()
        )
        if packager == 'rpm':
            self._export_rpm_package_verification(filename)
            return filename
        elif packager == 'dpkg':
            self._export_deb_package_verification(filename)
            return filename
Exemplo n.º 3
0
    def export_package_changes(self, target_dir: str) -> str:
        """
        Export image package changelog for comparision of
        actual changes of the installed packages

        :param str target_dir: path name
        """
        image_version = self.xml_state.get_image_version() or 'unspecified'
        if self.runtime_config.get_package_changes():
            filename = ''.join(
                [
                    target_dir, '/',
                    self.xml_state.xml_data.get_name(),
                    '.' + self.arch,
                    '-' + image_version,
                    '.changes'
                ]
            )
            packager = Defaults.get_default_packager_tool(
                self.xml_state.get_package_manager()
            )
            if packager == 'rpm':
                self._export_rpm_package_changes(filename)
                return filename
            elif packager == 'dpkg':
                self._export_deb_package_changes(filename)
                return filename
        return ''
Exemplo n.º 4
0
    def export_package_list(self, target_dir: str) -> str:
        """
        Export image package list as metadata reference
        used by the open buildservice

        :param str target_dir: path name
        """
        image_version = self.xml_state.get_image_version() or 'unspecified'
        filename = ''.join(
            [
                target_dir, '/',
                self.xml_state.xml_data.get_name(),
                '.' + self.arch,
                '-' + image_version,
                '.packages'
            ]
        )
        packager = Defaults.get_default_packager_tool(
            self.xml_state.get_package_manager()
        )
        if packager == 'rpm':
            self._export_rpm_package_list(filename)
            return filename
        elif packager == 'dpkg':
            self._export_deb_package_list(filename)
            return filename
        elif packager == 'pacman':
            self._export_pacman_package_list(filename)
            return filename
        return ''
Exemplo n.º 5
0
    def export_package_verification(self, target_dir):
        """
        Export package verification result as metadata reference
        used by the open buildservice

        :param string target_dir: path name
        """
        filename = ''.join(
            [
                target_dir, '/',
                self.xml_state.xml_data.get_name(),
                '.' + self.arch,
                '-' + self.xml_state.get_image_version(),
                '.verified'
            ]
        )
        packager = Defaults.get_default_packager_tool(
            self.xml_state.get_package_manager()
        )
        if packager == 'rpm':
            self._export_rpm_package_verification(filename)
            return filename
        elif packager == 'dpkg':
            self._export_deb_package_verification(filename)
            return filename
Exemplo n.º 6
0
 def _get_dracut_module_version_from_pdb(
     package_manager, package_name, root_dir
 ):
     tool = Defaults.get_default_packager_tool(package_manager)
     package_query = None
     if tool == 'rpm':
         package_query = Command.run(
             [
                 tool, '--root', root_dir, '-q', '--qf',
                 '%{VERSION}', package_name
             ]
         )
     elif tool == 'dpkg':
         package_query = Command.run(
             [
                 'dpkg-query', '--admindir',
                 os.sep.join([root_dir, 'var/lib/dpkg']), '-W', '-f',
                 '${Version}', package_name
             ]
         )
     if package_query:
         return package_query.output.split('-', 1)[0]