def __init__(self, db_info): super(CapabilityOverride, self).__init__(db_info) # This *may* be better solved with a join in the SQLAlchemy model but # I was unable to get our query object to work properly for this. parent_capability = Capability.load(db_info.capability_id) if parent_capability: self.parent_name = parent_capability.name self.parent_description = parent_capability.description else: raise exception.CapabilityNotFound( _("Somehow we got a datastore version capability without a " "parent, that shouldn't happen. %s") % db_info.capability_id)
def load(cls, capability_id): """ Generates a CapabilityOverride object from the capability_override id. :returns CapabilityOverride: """ try: return cls( DBCapabilityOverrides.find_by(capability_id=capability_id)) except exception.ModelNotFoundError: raise exception.CapabilityNotFound( _("Capability Override not found for " "capability %s") % capability_id)
def load(cls, capability_id_or_name): """ Generates a Capability object by looking up the capability first by ID then by name. :returns Capability: """ try: return cls(DBCapabilities.find_by(id=capability_id_or_name)) except exception.ModelNotFoundError: try: return cls(DBCapabilities.find_by(name=capability_id_or_name)) except exception.ModelNotFoundError: raise exception.CapabilityNotFound( capability=capability_id_or_name)