X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-si%2Fcontrib%2F90_gosa.conf;h=72ae8b088c717a075ebaadfacd0a33c0e2b14265;hb=5eee3c19adca35c713624bf74c5e13a6c9fc6d28;hp=1ae7362c77758afc2c2c04f8f6776aa3b52ec2bf;hpb=720cac0f0bacb8a08353a243b3597dc9a3fb6d2f;p=gosa.git diff --git a/gosa-si/contrib/90_gosa.conf b/gosa-si/contrib/90_gosa.conf index 1ae7362c7..72ae8b088 100644 --- a/gosa-si/contrib/90_gosa.conf +++ b/gosa-si/contrib/90_gosa.conf @@ -63,73 +63,84 @@ def getProductInformation_list(self, installationStatus=None, type='localboot'): return result -def getFullProductHostInformation_list(self, objectId=None, installationStatus=None, type='localboot'): +def getFullProductHostInformation_list(self, objectId=None, installationStatus=None): result = [] - # Load product ids - productIds= self.getProductIds_list(type, None, installationStatus) - - # Load product states - productStates= self.getProductStates_hash(objectId) - - # Extend every entry by name and description - for productId in productIds: - - # Add missing information to the productInfo - productInfo= self.getProduct_hash(productId) - productInfo['productId']= productId - - # Find product entry - currentState= None - for state in productStates[objectId]: - if state['productId'] == productId: + types = ['localboot','netboot'] + for type in types: + + # Load product ids + productIds= self.getProductIds_list(type, None, installationStatus) + + # Load product states + if objectId != None: + productStates= self.getProductStates_hash(objectId) + + # Extend every entry by name and description + for productId in productIds: + + # Add missing information to the productInfo + productInfo= self.getProduct_hash(productId) + productInfo['productId']= productId + productInfo['type']= type; + + # Find product entry + currentState= None + if objectId != None: + for state in productStates[objectId]: + if state['productId'] == productId: + currentState= state + break + else: + state = {} + state['installationStatus'] = "not_installed" + state['actionRequest'] = "none" currentState= state - break - - # Add missing information to the productInfo - if currentState['installationStatus'] != "not_installed" or \ - currentState['actionRequest'] == "setup": - - # Add state for enabled products - productInfo['installationStatus']= currentState['installationStatus'] - productInfo['actionRequest']= currentState['actionRequest'] - - # Add properties - productInfo['action']= self.getPossibleProductActions_list(productId) - - # Load actual property values - propertyDefinitions= self.getProductPropertyDefinitions_listOfHashes(productId) - propertyValues= dict() - propertyDescriptions= dict() - propertyDefaults= dict() - - for property in propertyDefinitions: - if property.has_key('values'): - propertyValues[property['name']]= property['values'] - if property.has_key('description'): - propertyDescriptions[property['name']]= property['description'] - if property.has_key('default'): - propertyDefaults[property['name']]= property['default'] - - # Load all properties and complete with values/descriptions - combinedProperties= dict() - productProperties= self.getProductProperties_hash(productId, objectId) - properties= productProperties.keys() - for property in properties: - combinedProperties[property]= dict() - if propertyDescriptions.has_key(property): - combinedProperties[property]['description']= propertyDescriptions[property] - if propertyValues.has_key(property): - combinedProperties[property]['values']= propertyValues[property] - if propertyDefaults.has_key(property): - combinedProperties[property]['default']= propertyDefaults[property] - combinedProperties[property]['current']= productProperties[property] - - # Add product properties to current product info - productInfo['properties']= combinedProperties - - # Push information - result.append(productInfo) + + # Add missing information to the productInfo + if currentState['installationStatus'] != "not_installed" or \ + currentState['actionRequest'] == "setup": + + # Add state for enabled products + productInfo['installationStatus']= currentState['installationStatus'] + productInfo['actionRequest']= currentState['actionRequest'] + + # Add properties + productInfo['action']= self.getPossibleProductActions_list(productId) + + # Load actual property values + propertyDefinitions= self.getProductPropertyDefinitions_listOfHashes(productId) + propertyValues= dict() + propertyDescriptions= dict() + propertyDefaults= dict() + + for property in propertyDefinitions: + if property.has_key('values'): + propertyValues[property['name']]= property['values'] + if property.has_key('description'): + propertyDescriptions[property['name']]= property['description'] + if property.has_key('default'): + propertyDefaults[property['name']]= property['default'] + + # Load all properties and complete with values/descriptions + combinedProperties= dict() + productProperties= self.getProductProperties_hash(productId, objectId) + properties= productProperties.keys() + for property in properties: + combinedProperties[property]= dict() + if propertyDescriptions.has_key(property): + combinedProperties[property]['description']= propertyDescriptions[property] + if propertyValues.has_key(property): + combinedProperties[property]['values']= propertyValues[property] + if propertyDefaults.has_key(property): + combinedProperties[property]['default']= propertyDefaults[property] + combinedProperties[property]['current']= productProperties[property] + + # Add product properties to current product info + productInfo['properties']= combinedProperties + + # Push information + result.append(productInfo) return result