def get_installed_package_version(self, package_name):
    version = None
    cmd = list(self.properties.installed_package_version_command) + [package_name]
    result = shell.subprocess_executor(cmd)
    try:
      if result.code == 0:
        version = result.out.strip().partition(".el")[0]
    except IndexError:
      pass

    return version
  def verify_dependencies(self):
    """
    Verify that we have no dependency issues in package manager. Dependency issues could appear because of aborted or terminated
    package installation process or invalid packages state after manual modification of packages list on the host

    :return True if no dependency issues found, False if dependency issue present
    :rtype bool
    """
    r = shell.subprocess_executor(self.properties.verify_dependency_cmd)
    pattern = re.compile("\d+ new package(s)? to install")

    if r.code or (r.out and pattern.search(r.out)):
      err_msg = Logger.filter_text("Failed to verify package dependencies. Execution of '{0}' returned {1}. {2}".format(
        self.properties.verify_dependency_cmd, r.code, r.out))
      Logger.error(err_msg)
      return False

    return True
Example #3
0
    def verify_dependencies(self):
        """
    Verify that we have no dependency issues in package manager. Dependency issues could appear because of aborted or terminated
    package installation process or invalid packages state after manual modification of packages list on the host

    :return True if no dependency issues found, False if dependency issue present
    :rtype bool
    """
        r = shell.subprocess_executor(self.properties.verify_dependency_cmd)
        pattern = re.compile("has missing dependency|E:")

        if r.code or (r.out and pattern.search(r.out)):
            err_msg = Logger.filter_text(
                "Failed to verify package dependencies. Execution of '%s' returned %s. %s"
                % (VERIFY_DEPENDENCY_CMD, code, out))
            Logger.error(err_msg)
            return False

        return True
Example #4
0
    def _check_existence(self, name):
        """
    For regexp names:
    If only part of packages were installed during early canceling.
    Let's say:
    1. install hbase-2-3-.*
    2. Only hbase-2-3-1234 is installed, but is not hbase-2-3-1234-regionserver yet.
    3. We cancel the apt-get

    In that case this is bug of packages we require.
    And hbase-2-3-*-regionserver should be added to metainfo.xml.

    Checking existence should never fail in such a case for hbase-2-3-.*, otherwise it
    gonna break things like removing packages and some other things.

    Note: this method SHOULD NOT use apt-get (apt.cache is using dpkg not apt). Because a lot of issues we have, when customer have
    apt-get in inconsistant state (locked, used, having invalid repo). Once packages are installed
    we should not rely on that.
    """
        r = shell.subprocess_executor(self.properties.check_cmd % name)
        return not bool(r.code)
Example #5
0
 def get_installed_package_version(self, package_name):
     r = shell.subprocess_executor(
         "dpkg -s {0} | grep Version | awk '{{print $2}}'".format(
             package_name))
     return r.out.strip(os.linesep)