code: def add(self, properties):
          
          new_hba = super(FakedHbaManager, self).add(properties)
  
          partition = self.parent
  
          # Reflect the new NIC in the partition
          assert 'hba-uris' in partition.properties
          partition.properties['hba-uris'].append(new_hba.uri)
  
          # Create a default device-number if not specified
          if 'device-number' not in new_hba.properties:
              devno = partition.devno_alloc()
              new_hba.properties['device-number'] = devno
  
          # Create a default wwpn if not specified
          if 'wwpn' not in new_hba.properties:
              wwpn = partition.wwpn_alloc()
              new_hba.properties['wwpn'] = wwpn
  
          return new_hba
docs: Add a faked HBA resource.
  
          Parameters:
  
            properties (dict):
              Resource properties.
  
              Special handling and requirements for certain properties:
  
              * 'element-id' will be auto-generated with a unique value across
                all instances of this resource type, if not specified.
              * 'element-uri' will be auto-generated based upon the element ID,
                if not specified.
              * 'class' will be auto-generated to 'hba',
                if not specified.
              * 'adapter-port-uri' identifies the backing FCP port for this HBA
                and is required to be specified.
              * 'device-number' will be auto-generated with a unique value
                within the partition in the range 0x8000 to 0xFFFF, if not
                specified.
  
              This method also updates the 'hba-uris' property in the parent
              faked Partition resource, by adding the URI for the faked HBA
              resource.
  
          Returns:
            :class:`~zhmcclient_mock.FakedHba`: The faked HBA resource.
  
          Raises:
            :exc:`zhmcclient_mock.InputError`: Some issue with the input
              properties.