code: func StartOperation(pa Interface, dryRun bool) *PortAllocationOperation {
  	op := &PortAllocationOperation{}
  	op.pa = pa
  	op.allocated = []int{}
  	op.releaseDeferred = []int{}
  	op.shouldRollback = true
  	op.dryRun = dryRun
  	return op
  }
docs: // Creates a portAllocationOperation, tracking a set of allocations & releases
  // If dryRun is specified, never actually allocate or release anything