code: def principal_unit():
      
      # Juju 2.2 and above provides JUJU_PRINCIPAL_UNIT
      principal_unit = os.environ.get('JUJU_PRINCIPAL_UNIT', None)
      # If it's empty, then this unit is the principal
      if principal_unit == '':
          return os.environ['JUJU_UNIT_NAME']
      elif principal_unit is not None:
          return principal_unit
      # For Juju 2.1 and below, let's try work out the principle unit by
      # the various charms' metadata.yaml.
      for reltype in relation_types():
          for rid in relation_ids(reltype):
              for unit in related_units(rid):
                  md = _metadata_unit(unit)
                  if not md:
                      continue
                  subordinate = md.pop('subordinate', None)
                  if not subordinate:
                      return unit
      return None
docs: Returns the principal unit of this unit, otherwise None