summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/software/lmi/software/LMI_AffectedSoftwareJobElement.py4
-rw-r--r--src/software/lmi/software/LMI_AssociatedSoftwareInstallationServiceCapabilities.py2
-rw-r--r--src/software/lmi/software/LMI_HostedSoftwareCollection.py7
-rw-r--r--src/software/lmi/software/LMI_HostedSoftwareIdentityResource.py19
-rw-r--r--src/software/lmi/software/LMI_HostedSoftwareInstallationService.py11
-rw-r--r--src/software/lmi/software/LMI_InstalledSoftwareIdentity.py12
-rw-r--r--src/software/lmi/software/LMI_OwningSoftwareJobElement.py4
-rw-r--r--src/software/lmi/software/LMI_ResourceForSoftwareIdentity.py10
-rw-r--r--src/software/lmi/software/LMI_SoftwareIdentityFileCheck.py2
-rw-r--r--src/software/lmi/software/LMI_SoftwareIdentityResource.py4
-rw-r--r--src/software/lmi/software/LMI_SoftwareInstallationService.py4
-rw-r--r--src/software/lmi/software/LMI_SoftwareInstallationServiceAffectsElement.py17
-rw-r--r--src/software/lmi/software/core/AffectedSoftwareJobElement.py12
-rw-r--r--src/software/lmi/software/core/ComputerSystem.py90
-rw-r--r--src/software/lmi/software/core/Error.py2
-rw-r--r--src/software/lmi/software/core/IdentityResource.py11
-rw-r--r--src/software/lmi/software/core/InstallationService.py11
-rw-r--r--src/software/lmi/software/core/InstallationServiceAffectsElement.py6
-rw-r--r--src/software/lmi/software/util/__init__.py10
19 files changed, 72 insertions, 166 deletions
diff --git a/src/software/lmi/software/LMI_AffectedSoftwareJobElement.py b/src/software/lmi/software/LMI_AffectedSoftwareJobElement.py
index c0c5ceb..40dbf49 100644
--- a/src/software/lmi/software/LMI_AffectedSoftwareJobElement.py
+++ b/src/software/lmi/software/LMI_AffectedSoftwareJobElement.py
@@ -85,7 +85,7 @@ class LMI_AffectedSoftwareJobElement(CIMProvider2):
sub=affected.classname,
super="CIM_ComputerSystem"):
AffectedSoftwareJobElement.fill_model_computer_system(
- model, job, keys_only=False)
+ env, model, job, keys_only=False)
elif ch.is_subclass(affected.namespace,
sub=affected.classname, super='LMI_SystemSoftwareCollection'):
@@ -128,7 +128,7 @@ class LMI_AffectedSoftwareJobElement(CIMProvider2):
model.path.update({'AffectedElement': None, 'AffectingElement': None})
for job in YumDB.get_instance().get_job_list():
for mdl in AffectedSoftwareJobElement.generate_models_from_job(
- job, keys_only=keys_only, model=model):
+ env, job, keys_only=keys_only, model=model):
yield mdl
@cmpi_logging.trace_method
diff --git a/src/software/lmi/software/LMI_AssociatedSoftwareInstallationServiceCapabilities.py b/src/software/lmi/software/LMI_AssociatedSoftwareInstallationServiceCapabilities.py
index 3cda259..ae15e42 100644
--- a/src/software/lmi/software/LMI_AssociatedSoftwareInstallationServiceCapabilities.py
+++ b/src/software/lmi/software/LMI_AssociatedSoftwareInstallationServiceCapabilities.py
@@ -103,7 +103,7 @@ class LMI_AssociatedSoftwareInstallationServiceCapabilities(CIMProvider2):
model.path.update({'Capabilities': None, 'ManagedElement': None})
model['Capabilities'] = InstallationServiceCapabilities.get_path()
- model['ManagedElement'] = InstallationService.get_path()
+ model['ManagedElement'] = InstallationService.get_path(env)
if not keys_only:
model['Characteristics'] = [
self.values.Characteristics.Default,
diff --git a/src/software/lmi/software/LMI_HostedSoftwareCollection.py b/src/software/lmi/software/LMI_HostedSoftwareCollection.py
index 9f87e1c..9e63d42 100644
--- a/src/software/lmi/software/LMI_HostedSoftwareCollection.py
+++ b/src/software/lmi/software/LMI_HostedSoftwareCollection.py
@@ -25,8 +25,9 @@ Instruments the CIM class LMI_HostedSoftwareCollection
import pywbem
from pywbem.cim_provider2 import CIMProvider2
+from lmi.providers import ComputerSystem
from lmi.providers import cmpi_logging
-from lmi.software.core import ComputerSystem, SystemCollection
+from lmi.software.core import SystemCollection
class LMI_HostedSoftwareCollection(CIMProvider2):
"""Instrument the CIM class LMI_HostedSoftwareCollection
@@ -69,7 +70,7 @@ class LMI_HostedSoftwareCollection(CIMProvider2):
model.path.update({"Antecedent":None, "Dependent":None})
- model["Antecedent"] = ComputerSystem.get_path()
+ model["Antecedent"] = ComputerSystem.get_path(env)
model["Dependent"] = SystemCollection.get_path()
return model
@@ -98,7 +99,7 @@ class LMI_HostedSoftwareCollection(CIMProvider2):
"""
model.path.update({'Dependent': None, 'Antecedent': None})
- model["Antecedent"] = ComputerSystem.get_path()
+ model["Antecedent"] = ComputerSystem.get_path(env)
model["Dependent"] = SystemCollection.get_path()
yield model
diff --git a/src/software/lmi/software/LMI_HostedSoftwareIdentityResource.py b/src/software/lmi/software/LMI_HostedSoftwareIdentityResource.py
index 8c27850..4aa5369 100644
--- a/src/software/lmi/software/LMI_HostedSoftwareIdentityResource.py
+++ b/src/software/lmi/software/LMI_HostedSoftwareIdentityResource.py
@@ -29,9 +29,9 @@ import pywbem
from pywbem.cim_provider2 import CIMProvider2
from lmi.providers import cmpi_logging
+from lmi.providers import ComputerSystem
from lmi.software import util
from lmi.software.core import generate_references
-from lmi.software.core import ComputerSystem
from lmi.software.core import IdentityResource
from lmi.software.yumdb import YumDB
@@ -42,9 +42,10 @@ def generate_system_referents(env, object_name, model, _keys_only):
"""
ComputerSystem.check_path(env, object_name, "Antecedent")
repomodel = util.new_instance_name('LMI_SoftwareIdentityResource')
- model["Antecedent"] = ComputerSystem.get_path()
+ model["Antecedent"] = ComputerSystem.get_path(env)
for repo in YumDB.get_instance().get_repository_list('all'):
- model["Dependent"] = IdentityResource.repo2model(repo, model=repomodel)
+ model["Dependent"] = IdentityResource.repo2model(
+ env, repo, model=repomodel)
yield model
@cmpi_logging.trace_function
@@ -54,8 +55,8 @@ def generate_repository_referents(env, object_name, model, _keys_only):
"""
repo = IdentityResource.object_path2repo(
env, object_name, kind='all')
- model["Antecedent"] = ComputerSystem.get_path()
- model["Dependent"] = IdentityResource.repo2model(repo)
+ model["Antecedent"] = ComputerSystem.get_path(env)
+ model["Dependent"] = IdentityResource.repo2model(env, repo)
yield model
class LMI_HostedSoftwareIdentityResource(CIMProvider2):
@@ -108,8 +109,8 @@ class LMI_HostedSoftwareIdentityResource(CIMProvider2):
if len(repos) < 1:
raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
'Unknown repository "%s".' % repoid)
- model["Antecedent"] = ComputerSystem.get_path()
- model["Dependent"] = IdentityResource.repo2model(repos[0])
+ model["Antecedent"] = ComputerSystem.get_path(env)
+ model["Dependent"] = IdentityResource.repo2model(env, repos[0])
return model
@@ -143,11 +144,11 @@ class LMI_HostedSoftwareIdentityResource(CIMProvider2):
model.path.update({'Dependent': None, 'Antecedent': None})
repolist = YumDB.get_instance().get_repository_list('all')
- model["Antecedent"] = ComputerSystem.get_path()
+ model["Antecedent"] = ComputerSystem.get_path(env)
repomodel = util.new_instance_name('LMI_SoftwareIdentityResource')
for repo in repolist:
model["Dependent"] = IdentityResource.repo2model(
- repo, model=repomodel)
+ env, repo, model=repomodel)
yield model
@cmpi_logging.trace_method
diff --git a/src/software/lmi/software/LMI_HostedSoftwareInstallationService.py b/src/software/lmi/software/LMI_HostedSoftwareInstallationService.py
index a581c76..fd7290b 100644
--- a/src/software/lmi/software/LMI_HostedSoftwareInstallationService.py
+++ b/src/software/lmi/software/LMI_HostedSoftwareInstallationService.py
@@ -30,8 +30,9 @@ import pywbem
from pywbem.cim_provider2 import CIMProvider2
from lmi.providers import cmpi_logging
+from lmi.providers import ComputerSystem
from lmi.software import util
-from lmi.software.core import ComputerSystem, InstallationService
+from lmi.software.core import InstallationService
class LMI_HostedSoftwareInstallationService(CIMProvider2):
"""Instrument the CIM class LMI_HostedSoftwareInstallationService
@@ -78,8 +79,8 @@ class LMI_HostedSoftwareInstallationService(CIMProvider2):
model.path.update({"Antecedent":None, "Dependent":None})
- model["Dependent"] = InstallationService.get_path()
- model["Antecedent"] = ComputerSystem.get_path()
+ model["Antecedent"] = ComputerSystem.get_path(env)
+ model["Dependent"] = InstallationService.get_path(env)
return model
@@ -107,8 +108,8 @@ class LMI_HostedSoftwareInstallationService(CIMProvider2):
"""
model.path.update({'Dependent': None, 'Antecedent': None})
- model["Antecedent"] = ComputerSystem.get_path()
- model["Dependent"] = InstallationService.get_path()
+ model["Antecedent"] = ComputerSystem.get_path(env)
+ model["Dependent"] = InstallationService.get_path(env)
yield model
diff --git a/src/software/lmi/software/LMI_InstalledSoftwareIdentity.py b/src/software/lmi/software/LMI_InstalledSoftwareIdentity.py
index 8463171..7219609 100644
--- a/src/software/lmi/software/LMI_InstalledSoftwareIdentity.py
+++ b/src/software/lmi/software/LMI_InstalledSoftwareIdentity.py
@@ -29,9 +29,9 @@ import pywbem
from pywbem.cim_provider2 import CIMProvider2
from lmi.providers import cmpi_logging
+from lmi.providers import ComputerSystem
from lmi.software import util
from lmi.software.core import generate_references
-from lmi.software.core import ComputerSystem
from lmi.software.core import Identity
from lmi.software.yumdb import YumDB
@@ -45,7 +45,7 @@ def generate_system_referents(env, object_name, model, _keys_only):
ComputerSystem.check_path(env, object_name, "object_name")
pkg_model = util.new_instance_name('LMI_SoftwareIdentity',
- System=ComputerSystem.get_path())
+ System=ComputerSystem.get_path(env))
with YumDB.get_instance() as ydb:
for pkg_info in ydb.get_package_list('installed', sort=True):
model["InstalledSoftware"] = Identity.pkg2model(
@@ -53,13 +53,13 @@ def generate_system_referents(env, object_name, model, _keys_only):
yield model
@cmpi_logging.trace_function
-def generate_package_referents(_env, object_name, model, _keys_only):
+def generate_package_referents(env, object_name, model, _keys_only):
"""
Handler for referents enumeration request.
"""
pkg_info = Identity.object_path2pkg(object_name, kind="installed")
model['InstalledSoftware'] = Identity.pkg2model(pkg_info)
- model["System"] = ComputerSystem.get_path()
+ model["System"] = ComputerSystem.get_path(env)
yield model
class LMI_InstalledSoftwareIdentity(CIMProvider2):
@@ -105,7 +105,7 @@ class LMI_InstalledSoftwareIdentity(CIMProvider2):
raise pywbem.CIMError(pywbem.CIM_ERR_INVALID_PARAMETER,
"Expected object path for InstalledSoftware!")
- model["System"] = model.path["System"] = ComputerSystem.get_path()
+ model["System"] = model.path["System"] = ComputerSystem.get_path(env)
pkg_info = Identity.object_path2pkg(
model['InstalledSoftware'], kind='installed')
model['InstalledSoftware'] = Identity.pkg2model(pkg_info)
@@ -135,7 +135,7 @@ class LMI_InstalledSoftwareIdentity(CIMProvider2):
"""
model.path.update({'InstalledSoftware': None, 'System': None})
- model['System'] = ComputerSystem.get_path()
+ model['System'] = ComputerSystem.get_path(env)
inst_model = util.new_instance_name("LMI_SoftwareIdentity")
with YumDB.get_instance() as yb:
pl = yb.get_package_list('installed', sort=True)
diff --git a/src/software/lmi/software/LMI_OwningSoftwareJobElement.py b/src/software/lmi/software/LMI_OwningSoftwareJobElement.py
index 23b51a2..6415218 100644
--- a/src/software/lmi/software/LMI_OwningSoftwareJobElement.py
+++ b/src/software/lmi/software/LMI_OwningSoftwareJobElement.py
@@ -68,7 +68,7 @@ class LMI_OwningSoftwareJobElement(CIMProvider2):
CIM_ERR_FAILED (some other unspecified error occurred)
"""
InstallationService.check_path_property(env, model, "OwningElement")
- model['OwningElement'] = InstallationService.get_path()
+ model['OwningElement'] = InstallationService.get_path(env)
job = Job.object_path2job(model['OwnedElement'])
model['OwnedElement'] = Job.job2model(job)
return model
@@ -96,7 +96,7 @@ class LMI_OwningSoftwareJobElement(CIMProvider2):
CIM_ERR_FAILED (some other unspecified error occurred)
"""
model.path.update({'OwningElement': None, 'OwnedElement': None})
- model['OwningElement'] = InstallationService.get_path()
+ model['OwningElement'] = InstallationService.get_path(env)
for job in YumDB.get_instance().get_job_list():
model['OwnedElement'] = Job.job2model(job)
yield model
diff --git a/src/software/lmi/software/LMI_ResourceForSoftwareIdentity.py b/src/software/lmi/software/LMI_ResourceForSoftwareIdentity.py
index 6a9d7af..71923d3 100644
--- a/src/software/lmi/software/LMI_ResourceForSoftwareIdentity.py
+++ b/src/software/lmi/software/LMI_ResourceForSoftwareIdentity.py
@@ -34,7 +34,7 @@ from lmi.software.core import IdentityResource
from lmi.software.yumdb import YumDB
@cmpi_logging.trace_function
-def generate_package_referents(_env, object_name, model, _keys_only):
+def generate_package_referents(env, object_name, model, _keys_only):
"""
Generates models of repositories holding package represented
by object_name.
@@ -47,7 +47,7 @@ def generate_package_referents(_env, object_name, model, _keys_only):
model['ManagedElement'] = Identity.pkg2model(pkg_info)
for repo in repos:
model["AvailableSAP"] = \
- IdentityResource.repo2model(repo)
+ IdentityResource.repo2model(env, repo)
yield model
@cmpi_logging.trace_function
@@ -63,7 +63,7 @@ def generate_repository_referents(env, object_name, model, _keys_only):
allow_duplicates=True, sort=True,
include_repos=repo.repoid,
exclude_repos='*')
- model['AvailableSAP'] = IdentityResource.repo2model(repo)
+ model['AvailableSAP'] = IdentityResource.repo2model(env, repo)
pkg_model = util.new_instance_name("LMI_SoftwareIdentity")
for pkg_info in pkglist:
model["ManagedElement"] = Identity.pkg2model(
@@ -134,7 +134,7 @@ class LMI_ResourceForSoftwareIdentity(CIMProvider2):
repo = IdentityResource.object_path2repo(
env, model["AvailableSAP"], 'all')
- model["AvailableSAP"] = IdentityResource.repo2model(repo)
+ model["AvailableSAP"] = IdentityResource.repo2model(env, repo)
model["ManagedElement"] = Identity.pkg2model(pkg_info)
return model
@@ -184,7 +184,7 @@ class LMI_ResourceForSoftwareIdentity(CIMProvider2):
'unknown or disabled repository "%s" for package "%s"',
pkg, pkg.repoid)
model["AvailableSAP"] = IdentityResource.repo2model(
- repo, model=sap_model)
+ env, repo, model=sap_model)
model["ManagedElement"] = Identity.pkg2model(
pkg, model=elem_model)
yield model
diff --git a/src/software/lmi/software/LMI_SoftwareIdentityFileCheck.py b/src/software/lmi/software/LMI_SoftwareIdentityFileCheck.py
index aa42e0d..e483f67 100644
--- a/src/software/lmi/software/LMI_SoftwareIdentityFileCheck.py
+++ b/src/software/lmi/software/LMI_SoftwareIdentityFileCheck.py
@@ -29,7 +29,7 @@ import pywbem
from pywbem.cim_provider2 import CIMProvider2
from lmi.providers import cmpi_logging
-from lmi.software.core import ComputerSystem
+from lmi.providers import ComputerSystem
from lmi.software.core import IdentityFileCheck
class LMI_SoftwareIdentityFileCheck(CIMProvider2):
diff --git a/src/software/lmi/software/LMI_SoftwareIdentityResource.py b/src/software/lmi/software/LMI_SoftwareIdentityResource.py
index 46a3346..2e70e80 100644
--- a/src/software/lmi/software/LMI_SoftwareIdentityResource.py
+++ b/src/software/lmi/software/LMI_SoftwareIdentityResource.py
@@ -77,7 +77,7 @@ class LMI_SoftwareIdentityResource(CIMProvider2):
CIM_ERR_FAILED (some other unspecified error occurred)
"""
repo = IdentityResource.object_path2repo(env, model.path, kind='all')
- return IdentityResource.repo2model(repo, keys_only=False, model=model)
+ return IdentityResource.repo2model(env, repo, keys_only=False, model=model)
@cmpi_logging.trace_method
def enum_instances(self, env, model, keys_only):
@@ -111,7 +111,7 @@ class LMI_SoftwareIdentityResource(CIMProvider2):
repolist = YumDB.get_instance().get_repository_list('all')
for repo in repolist:
yield IdentityResource.repo2model(
- repo, keys_only=keys_only, model=model)
+ env, repo, keys_only=keys_only, model=model)
@cmpi_logging.trace_method
def set_instance(self, env, instance, modify_existing):
diff --git a/src/software/lmi/software/LMI_SoftwareInstallationService.py b/src/software/lmi/software/LMI_SoftwareInstallationService.py
index 3e93ba4..7b51a4e 100644
--- a/src/software/lmi/software/LMI_SoftwareInstallationService.py
+++ b/src/software/lmi/software/LMI_SoftwareInstallationService.py
@@ -70,7 +70,7 @@ class LMI_SoftwareInstallationService(CIMProvider2):
"""
InstallationService.check_path(env, model.path, "path")
- objpath = InstallationService.get_path()
+ objpath = InstallationService.get_path(env)
for key, value in objpath.keybindings.items():
model[key] = value
@@ -119,7 +119,7 @@ class LMI_SoftwareInstallationService(CIMProvider2):
model.path.update({'CreationClassName': None, 'SystemName': None,
'Name': None, 'SystemCreationClassName': None})
- objpath = InstallationService.get_path()
+ objpath = InstallationService.get_path(env)
for key, value in objpath.keybindings.items():
model[key] = value
if not keys_only:
diff --git a/src/software/lmi/software/LMI_SoftwareInstallationServiceAffectsElement.py b/src/software/lmi/software/LMI_SoftwareInstallationServiceAffectsElement.py
index c46e6bd..61474b1 100644
--- a/src/software/lmi/software/LMI_SoftwareInstallationServiceAffectsElement.py
+++ b/src/software/lmi/software/LMI_SoftwareInstallationServiceAffectsElement.py
@@ -26,8 +26,8 @@ import pywbem
from pywbem.cim_provider2 import CIMProvider2
from lmi.providers import cmpi_logging
+from lmi.providers import ComputerSystem
from lmi.software import util
-from lmi.software.core import ComputerSystem
from lmi.software.core import Identity
from lmi.software.core import InstallationService
from lmi.software.core import InstallationServiceAffectsElement
@@ -41,7 +41,7 @@ def generate_service_referents(env, model, object_name, keys_only):
"""
InstallationService.check_path(env, object_name, "object_name")
InstallationServiceAffectsElement.fill_model_computer_system(
- model, keys_only=keys_only)
+ env, model, keys_only=keys_only)
yield model
avail_model = util.new_instance_name("LMI_SoftwareIdentity")
@@ -103,7 +103,7 @@ class LMI_SoftwareInstallationServiceAffectsElement(CIMProvider2):
sub=affected.classname,
super="CIM_ComputerSystem"):
InstallationServiceAffectsElement.fill_model_computer_system(
- model, keys_only=False)
+ env, model, keys_only=False)
else:
LOG().error("Unhandled classname: %s", affected.classname)
raise pywbem.CIMError(pywbem.CIM_ERR_INVALID_PARAMETER,
@@ -136,9 +136,9 @@ class LMI_SoftwareInstallationServiceAffectsElement(CIMProvider2):
"""
model.path.update({'AffectedElement': None, 'AffectingElement': None})
- model['AffectingElement'] = InstallationService.get_path()
+ model['AffectingElement'] = InstallationService.get_path(env)
InstallationServiceAffectsElement.fill_model_computer_system(
- model, keys_only=keys_only)
+ env, model, keys_only=keys_only)
yield model
avail_model = util.new_instance_name("LMI_SoftwareIdentity")
@@ -275,8 +275,9 @@ class LMI_SoftwareInstallationServiceAffectsElement(CIMProvider2):
super="CIM_ComputerSystem")):
ComputerSystem.check_path(env, object_name, "object_name")
model = InstallationServiceAffectsElement. \
- fill_model_computer_system(model, keys_only=keys_only)
- model["AffectingElement"] = InstallationService.get_path()
+ fill_model_computer_system(
+ env, model, keys_only=keys_only)
+ model["AffectingElement"] = InstallationService.get_path(env)
yield model
elif ( (not role or role.lower() == 'affectedelement')
@@ -287,7 +288,7 @@ class LMI_SoftwareInstallationServiceAffectsElement(CIMProvider2):
model = InstallationServiceAffectsElement. \
fill_model_identity(model, pkg_info,
keys_only=keys_only)
- model["AffectingElement"] = InstallationService.get_path()
+ model["AffectingElement"] = InstallationService.get_path(env)
yield model
except pywbem.CIMError as exc:
diff --git a/src/software/lmi/software/core/AffectedSoftwareJobElement.py b/src/software/lmi/software/core/AffectedSoftwareJobElement.py
index 9a0e370..c5dc3b0 100644
--- a/src/software/lmi/software/core/AffectedSoftwareJobElement.py
+++ b/src/software/lmi/software/core/AffectedSoftwareJobElement.py
@@ -24,8 +24,8 @@ Just a common functionality related to AffectedSoftwareJobElement provider.
import pywbem
from lmi.providers import cmpi_logging
+from lmi.providers import ComputerSystem
from lmi.software import util
-from lmi.software.core import ComputerSystem
from lmi.software.core import Identity
from lmi.software.core import IdentityFileCheck
from lmi.software.core import Job
@@ -102,7 +102,7 @@ def check_path(env, op):
elif ch.is_subclass(affected.namespace, sub=affected.classname,
super="CIM_ComputerSystem"):
ComputerSystem.check_path(env, affected, "AffectedElement")
- affected = ComputerSystem.get_path()
+ affected = ComputerSystem.get_path(env)
elif ch.is_subclass(affected.namespace, sub=affected.classname,
super='LMI_SoftwareIdentityFileCheck'):
if not isinstance(job, jobs.YumCheckPackage):
@@ -173,11 +173,11 @@ def job2affected_software_identity(job):
return (affected, effects, descriptions)
@cmpi_logging.trace_function
-def fill_model_computer_system(model, job, keys_only=True):
+def fill_model_computer_system(env, model, job, keys_only=True):
"""
Fills model's AffectedElement and all non-key properties.
"""
- model["AffectedElement"] = ComputerSystem.get_path()
+ model["AffectedElement"] = ComputerSystem.get_path(env)
if not keys_only:
model["ElementEffects"] = [Values.ElementEffects.Other]
description = "Modifying software collection."
@@ -235,7 +235,7 @@ def generate_failed_checks(model, job, keys_only=True):
yield fill_model_failed_check(model, failed, keys_only)
@cmpi_logging.trace_function
-def generate_models_from_job(job, keys_only=True, model=None):
+def generate_models_from_job(env, job, keys_only=True, model=None):
"""
Generates all associations between job and affected elements.
"""
@@ -261,6 +261,6 @@ def generate_models_from_job(job, keys_only=True, model=None):
else: # package verification - associate to failed file checks
for model in generate_failed_checks(model, job, keys_only=keys_only):
yield model
- fill_model_computer_system(model, job, keys_only=keys_only)
+ fill_model_computer_system(env, model, job, keys_only=keys_only)
yield model
diff --git a/src/software/lmi/software/core/ComputerSystem.py b/src/software/lmi/software/core/ComputerSystem.py
deleted file mode 100644
index 30e03cf..0000000
--- a/src/software/lmi/software/core/ComputerSystem.py
+++ /dev/null
@@ -1,90 +0,0 @@
-# -*- encoding: utf-8 -*-
-# Software Management Providers
-#
-# Copyright (C) 2012-2013 Red Hat, Inc. All rights reserved.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-"""
-Just a common functionality related to associated class CIM_ComputerSystem.
-"""
-
-import pywbem
-
-from lmi.providers import cmpi_logging
-from lmi.software import util
-
-def get_path(prefix=None):
- """
- @return object path of CIM_ComputerSystem
- """
- if prefix is None:
- classname = util.Configuration.get_instance().system_class_name
- else:
- classname = '%s_ComputerSystem' % prefix
- op = util.new_instance_name(classname,
- CreationClassName=classname,
- Name=util.Configuration.get_instance().system_name)
- return op
-
-@cmpi_logging.trace_function
-def check_path(env, system, prop_name):
- """
- Checks instance name of ComputerSystem.
- @param system instance name
- @param prop_name name of object path
- """
- if not isinstance(system, pywbem.CIMInstanceName):
- raise pywbem.CIMError(pywbem.CIM_ERR_INVALID_PARAMETER,
- "\"%s\" must be a CIMInstanceName" % prop_name)
- our_system = get_path()
- ch = env.get_cimom_handle()
- if system.namespace != our_system.namespace:
- raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
- 'Namespace of "%s" does not match "%s"' % (
- prop_name, our_system.namespace))
- if not ch.is_subclass(our_system.namespace,
- sub=system.classname,
- super="CIM_ComputerSystem"):
- raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
- "Class of \"%s\" must be a sublass of %s" % (
- prop_name, our_system.classname))
- if not 'CreationClassName' in system or not 'Name' in system:
- raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
- "\"%s\" is missing one of keys", prop_name)
- if not ch.is_subclass(our_system.namespace,
- sub=system['CreationClassName'],
- super="CIM_ComputerSystem"):
- raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
- "CreationClassName of \"%s\" must be a sublass of %s" % (
- prop_name, our_system.classname))
- if not util.is_this_system(system['Name']):
- raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
- "Name of \"%s\" does not match \"%s\"" % (
- prop_name, our_system['Name']))
- return True
-
-@cmpi_logging.trace_function
-def check_path_property(env, op, prop_name):
- """
- Checks, whether object path contains correct instance name of
- CIM_ComputerSystem corresponding to this system.
- If not, an exception is raised.
- """
- if not prop_name in op:
- raise pywbem.CIMError(pywbem.CIM_ERR_INVALID_PARAMETER,
- "Missing %s key property!" % prop_name)
- return check_path(env, op[prop_name], prop_name)
-
diff --git a/src/software/lmi/software/core/Error.py b/src/software/lmi/software/core/Error.py
index b199fdd..2955c0b 100644
--- a/src/software/lmi/software/core/Error.py
+++ b/src/software/lmi/software/core/Error.py
@@ -433,7 +433,7 @@ def make_instance(
if error_source is None:
# this is a cyclic dependency
from lmi.software.core import InstallationService
- error_source = InstallationService.get_path()
+ error_source = InstallationService.get_path(env)
if not isinstance(error_source, pywbem.CIMInstanceName):
raise TypeError('error_source must be a CIMInstanceName')
diff --git a/src/software/lmi/software/core/IdentityResource.py b/src/software/lmi/software/core/IdentityResource.py
index 884e09b..c7d1e7a 100644
--- a/src/software/lmi/software/core/IdentityResource.py
+++ b/src/software/lmi/software/core/IdentityResource.py
@@ -24,6 +24,8 @@ Just a common functionality related to LMI_SoftwareIdentityResource provider.
import pywbem
from lmi.providers import cmpi_logging
+from lmi.providers import ComputerSystem
+from lmi.providers import is_this_system
from lmi.software import util
from lmi.software.yumdb import YumDB
from lmi.software.yumdb.repository import Repository
@@ -521,11 +523,10 @@ def object_path2repo(env, op, kind='enabled'):
or not op["SystemCreationClassName"])
or (not "SystemName" in op or not op["SystemName"])):
raise pywbem.CIMError(pywbem.CIM_ERR_INVALID_PARAMETER, "Wrong keys.")
- if not util.is_this_system(op["SystemName"]):
+ if not is_this_system(op["SystemName"]):
raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
'SystemName "%s" does not match "%s".' % (
- op["SystemName"],
- util.Configuration.get_instance().system_name))
+ op["SystemName"], ComputerSystem.get_system_name(env)))
ch = env.get_cimom_handle()
if not ch.is_subclass(util.Configuration.get_instance().namespace,
sub=op["CreationClassName"],
@@ -623,7 +624,7 @@ def _fill_non_keys(repo, model):
model['TransitioningToState'] = Values.TransitioningToState.Not_Applicable
@cmpi_logging.trace_function
-def repo2model(repo, keys_only=True, model=None):
+def repo2model(env, repo, keys_only=True, model=None):
"""
@param model if not None, will be filled with data, otherwise
a new instance of CIMInstance or CIMObjectPath is created
@@ -646,7 +647,7 @@ def repo2model(repo, keys_only=True, model=None):
_set_key("Name", repo.repoid)
_set_key("SystemCreationClassName",
util.Configuration.get_instance().system_class_name)
- _set_key("SystemName", util.Configuration.get_instance().system_name)
+ _set_key("SystemName", ComputerSystem.get_system_name(env))
if not keys_only:
_fill_non_keys(repo, model)
diff --git a/src/software/lmi/software/core/InstallationService.py b/src/software/lmi/software/core/InstallationService.py
index e7e43c8..22aaa85 100644
--- a/src/software/lmi/software/core/InstallationService.py
+++ b/src/software/lmi/software/core/InstallationService.py
@@ -25,8 +25,9 @@ provider.
import pywbem
from lmi.providers import cmpi_logging
+from lmi.providers import ComputerSystem
+from lmi.providers import is_this_system
from lmi.software import util
-from lmi.software.core import ComputerSystem
from lmi.software.core import Identity
from lmi.software.core import Job
from lmi.software.core import SystemCollection
@@ -564,9 +565,9 @@ class Values(object):
Found = pywbem.Uint32(0)
NoMatch = pywbem.Uint32(1)
-def get_path():
+def get_path(env):
"""@return instance name with prefilled properties"""
- systemop = ComputerSystem.get_path()
+ systemop = ComputerSystem.get_path(env)
clsname = "LMI_SoftwareInstallationService"
op = util.new_instance_name(clsname,
CreationClassName=clsname,
@@ -584,7 +585,7 @@ def check_path(env, service, prop_name):
if not isinstance(service, pywbem.CIMInstanceName):
raise pywbem.CIMError(pywbem.CIM_ERR_INVALID_PARAMETER,
"\"%s\" must be a CIMInstanceName" % prop_name)
- our_service = get_path()
+ our_service = get_path(env)
ch = env.get_cimom_handle()
if service.namespace != our_service.namespace:
raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
@@ -602,7 +603,7 @@ def check_path(env, service, prop_name):
"\"%s\" is missing %s key property" % ( prop_name, key))
if key == "SystemName":
continue
- if not util.is_this_system(service["SystemName"]):
+ if not is_this_system(service["SystemName"]):
raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND,
"\"%s\" key property SystemName(%s) does not match \"%s\"" % (
prop_name, service[key], our_service[key]))
diff --git a/src/software/lmi/software/core/InstallationServiceAffectsElement.py b/src/software/lmi/software/core/InstallationServiceAffectsElement.py
index fc1d317..83b7ef8 100644
--- a/src/software/lmi/software/core/InstallationServiceAffectsElement.py
+++ b/src/software/lmi/software/core/InstallationServiceAffectsElement.py
@@ -25,7 +25,7 @@ LMI_SoftwareInstallationServiceAffectsElement.
import pywbem
from lmi.providers import cmpi_logging
-from lmi.software.core import ComputerSystem
+from lmi.providers import ComputerSystem
from lmi.software.core import Identity
class Values(object):
@@ -58,11 +58,11 @@ class Values(object):
}
@cmpi_logging.trace_function
-def fill_model_computer_system(model, keys_only=True):
+def fill_model_computer_system(env, model, keys_only=True):
"""
Fills model's AffectedElement and all non-key properties.
"""
- model["AffectedElement"] = ComputerSystem.get_path()
+ model["AffectedElement"] = ComputerSystem.get_path(env)
if not keys_only:
model["ElementEffects"] = [
Values.ElementEffects.Enhances_Integrity,
diff --git a/src/software/lmi/software/util/__init__.py b/src/software/lmi/software/util/__init__.py
index e5bcc11..c11a96c 100644
--- a/src/software/lmi/software/util/__init__.py
+++ b/src/software/lmi/software/util/__init__.py
@@ -27,7 +27,6 @@ import platform
import pywbem
import re
import signal
-import socket
from lmi.software.util.SoftwareConfiguration \
import SoftwareConfiguration as Configuration
@@ -191,12 +190,3 @@ def new_instance_name(class_name, namespace=None, **kwargs):
host=Configuration.get_instance().system_name,
namespace=namespace,
keybindings=keybindings)
-
-def is_this_system(system_name):
- """
- Return True if given system_name matches the hostname of currently
- running system.
- """
- return ( socket.gethostbyaddr(system_name)[0]
- == socket.gethostbyaddr(
- Configuration.get_instance().system_name)[0])