code: def GetSummary(self):
      
      self.max_age = 0
      summary = rdf_client.ClientSummary(client_id=self.urn)
      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.system_uuid = hwi.system_uuid
      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
docs: Gets a client summary object.
  
      Returns:
        rdf_client.ClientSummary
      Raises:
        ValueError: on bad cloud type