code: def bundles_list(self, io_handler, name=None):
          
          # Head of the table
          headers = ("ID", "Name", "State", "Version")
  
          # Get the bundles
          bundles = self._context.get_bundles()
  
          # The framework is not in the result of get_bundles()
          bundles.insert(0, self._context.get_framework())
  
          if name is not None:
              # Filter the list
              bundles = [
                  bundle
                  for bundle in bundles
                  if name in bundle.get_symbolic_name()
              ]
  
          # Make the entries
          lines = [
              [
                  str(entry)
                  for entry in (
                      bundle.get_bundle_id(),
                      bundle.get_symbolic_name(),
                      self._utils.bundlestate_to_str(bundle.get_state()),
                      bundle.get_version(),
                  )
              ]
              for bundle in bundles
          ]
  
          # Print'em all
          io_handler.write(self._utils.make_table(headers, lines))
  
          if name is None:
              io_handler.write_line("{0} bundles installed", len(lines))
          else:
              io_handler.write_line("{0} filtered bundles", len(lines))
docs: Lists the bundles in the framework and their state. Possibility to
          filter on the bundle name.