'Gets a client summary object.
Returns:
rdf_client.ClientSummary
Raises:
ValueError: on bad cloud type'

def GetSummary(self):

    self.max_age = 0
    summary = rdf_client.ClientSummary(client_id=self.urn)
    summary.system_info.node = self.Get(self.Schema.HOSTNAME)
    summary.system_info.system = self.Get(self.Schema.SYSTEM)
    summary.system_info.release = self.Get(self.Schema.OS_RELEASE)
    summary.system_info.version = str(self.Get(self.Schema.OS_VERSION, ''))
    summary.system_info.kernel = self.Get(self.Schema.KERNEL)
    summary.system_info.fqdn = self.Get(self.Schema.FQDN)
    summary.system_info.machine = self.Get(self.Schema.ARCH)
    summary.system_info.install_date = self.Get(self.Schema.INSTALL_DATE)
    kb = self.Get(self.Schema.KNOWLEDGE_BASE)
    if kb:
        summary.users = kb.users
    summary.interfaces = self.Get(self.Schema.INTERFACES)
    summary.client_info = self.Get(self.Schema.CLIENT_INFO)
    hwi = self.Get(self.Schema.HARDWARE_INFO)
    if hwi:
        summary.serial_number = hwi.serial_number
        summary.system_manufacturer = hwi.system_manufacturer
    summary.timestamp = self.age
    cloud_instance = self.Get(self.Schema.CLOUD_INSTANCE)
    if cloud_instance:
        summary.cloud_type = cloud_instance.cloud_type
        if (cloud_instance.cloud_type == 'GOOGLE'):
            summary.cloud_instance_id = cloud_instance.google.unique_id
        elif (cloud_instance.cloud_type == 'AMAZON'):
            summary.cloud_instance_id = cloud_instance.amazon.instance_id
        else:
            raise ValueError(('Bad    cloud    type:    %s' % cloud_instance.cloud_type))
    return summary
