docs: def generate_numa(self, vcpu_num):
          """
          Generate guest CPU <numa> XML child
          Configures 1, 2 or 4 vCPUs per cell.
  
          Args:
              vcpu_num(str): number of virtual CPUs
  
          Returns:
              lxml.etree.Element: numa XML element
          """
  
          if int(vcpu_num) == 2:
              # 2 vCPUs is a special case.
              # We wish to have 2 cells,
              # with 1 vCPU in each.
              # This is also the common case.
              total_cells = 2
              cpus_per_cell = 1
          elif int(vcpu_num) == 4:
              # 4 vCPU is a special case.
              # We wish to have 2 cells,
              # with 2 vCPUs in each.
              total_cells = 2
              cpus_per_cell = 2
          else:
              cell_info = divmod(int(vcpu_num), 4)
              if cell_info[1] == 0:
                  # 4 vCPUs in each cell
                  total_cells = cell_info[0]
                  cpus_per_cell = 4
              elif cell_info[1] == 2:
                  # 2 vCPUs in each cell
                  total_cells = (cell_info[0] * 2) + 1
                  cpus_per_cell = 2
              else:
                  # 1 vCPU per cell...
                  total_cells = int(vcpu_num)
                  cpus_per_cell = 1
  
          numa = ET.Element('numa')
          memory_per_cell = divmod(int(self.memory), total_cells)
          LOGGER.debug(
              'numa\n: cpus_per_cell: {0}, total_cells: {1}'.format(
                  cpus_per_cell, total_cells
              )
          )
          for cell_id in xrange(0, total_cells):
              first_cpu_in_cell = cell_id * cpus_per_cell
              if cpus_per_cell == 1:
                  cpus_in_cell = str(first_cpu_in_cell)
              else:
                  cpus_in_cell = '{0}-{1}'.format(
                      first_cpu_in_cell, first_cpu_in_cell + cpus_per_cell - 1
                  )
              cell = ET.Element(
                  'cell',
                  id=str(cell_id),
                  cpus=cpus_in_cell,
                  memory=str(memory_per_cell[0]),
                  unit='MiB',
              )
              numa.append(cell)
  
          LOGGER.debug('numa:\n{}'.format(ET.tostring(numa, pretty_print=True)))
          return numa