Beispiel #1
0
 def close(self):
     """
     This should be handled by __del__() but YumBase
     objects never seem to completely go out of scope and
     garbage collected.
     """
     YumBase.close(self)
     self.closeRpmDB()
     self.cleanLoggers()
Beispiel #2
0
 def close(self):
     """
     This should be handled by __del__() but YumBase
     objects never seem to completely go out of scope and
     garbage collected.
     """
     YumBase.close(self)
     self.closeRpmDB()
     self.cleanLoggers()
 def generate(repofn):
     """
     Generate the report content.
     :param repofn: The .repo file basename used to filter the report.
     :type repofn: str
     :return: The report content
     :rtype: dict
     """
     yb = YumBase()
     try:
         return dict(enabled_repos=EnabledReport.find_enabled(yb, repofn))
     finally:
         yb.close()
packages = ["python2-iml-agent"]

if "IML_PROFILE_PACKAGES" in os.environ:
    packages += os.environ["IML_PROFILE_PACKAGES"].split(",")

ypl = yp.doPackageLists(pkgnarrow="updates", patterns=packages)

has_updates = len(ypl.updates) > 0

if "IML_PROFILE_REPOS" in os.environ:
    for bundle in os.environ["IML_PROFILE_REPOS"].split(","):
        if bundle == "external":
            continue
        ypl = yp.doPackageLists(pkgnarrow=["updates"], repoid=bundle)
        has_updates |= len(ypl.updates) > 0

yp.close()
yp.closeRpmDB()
yp.doUnlock()

resp = requests.post(
    urljoin(os.environ["IML_MANAGER_URL"], "iml_has_package_updates"),
    cert=(os.environ["IML_CERT_PATH"], os.environ["IML_PRIVATE_KEY_PATH"]),
    verify=False,
    headers={"Content-Type": "application/json"},
    data=json.dumps(has_updates),
)

print("Manager responded, status code: {0}".format(resp.status_code))