1f7e811 virsh: Add iothreadadd and iothreaddel commands

Authored and Committed by John Ferlan 8 years ago
    virsh: Add iothreadadd and iothreaddel commands
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1161617
    
    Add command to allow adding and removing IOThreads from the domain including
    the configuration and live domain.
    
    $ virsh iothreadadd --help
      NAME
        iothreadadd - add an IOThread to the guest domain
    
      SYNOPSIS
        iothreadadd <domain> <id> [--config] [--live] [--current]
    
      DESCRIPTION
        Add an IOThread to the guest domain.
    
      OPTIONS
        [--domain] <string>  domain name, id or uuid
        [--id] <number>  iothread for the new IOThread
        --config         affect next boot
        --live           affect running domain
        --current        affect current domain
    
    $ virsh iothreaddel --help
      NAME
        iothreaddel - delete an IOThread from the guest domain
    
      SYNOPSIS
        iothreaddel <domain> <id> [--config] [--live] [--current]
    
      DESCRIPTION
        Delete an IOThread from the guest domain.
    
      OPTIONS
        [--domain] <string>  domain name, id or uuid
        [--id] <number>  iothread_id for the IOThread to delete
        --config         affect next boot
        --live           affect running domain
        --current        affect current domain
    
    Assuming a running $dom with multiple IOThreads assigned and that
    that the $dom has disks assigned to IOThread 1 and IOThread 2:
    
    $ virsh iothreadinfo $dom
     IOThread ID     CPU Affinity
     ---------------------------------------------------
      1               2
      2               3
      3               0-1
    
    $ virsh iothreadadd $dom 1
    error: invalid argument: an IOThread is already using iothread_id '1' in iothreadpids
    
    $ virsh iothreadadd $dom 1 --config
    error: invalid argument: an IOThread is already using iothread_id '1' in persistent iothreadids
    
    $ virsh iothreadadd $dom 4
    $ virsh iothreadinfo $dom
     IOThread ID     CPU Affinity
     ---------------------------------------------------
      1               2
      2               3
      3               0-1
      4               0-3
    
    $ virsh iothreadinfo $dom --config
     IOThread ID     CPU Affinity
     ---------------------------------------------------
      1               2
      2               3
      3               0-1
    
    $ virsh iothreadadd $dom 4 --config
    $ virsh iothreadinfo $dom --config
     IOThread ID     CPU Affinity
      ---------------------------------------------------
        1               2
        2               3
        3               0-1
        4               0-3
    
    Assuming the same original configuration
    
    $ virsh iothreaddel $dom 1
    error: invalid argument: cannot remove IOThread 1 since it is being used by disk 'vde'
    
    $ virsh iothreaddel $dom 3
    
    $ virsh iothreadinfo $dom
     IOThread ID     CPU Affinity
     ---------------------------------------------------
      1               2
      2               3
    
    $ virsh iothreadinfo $dom --config
     IOThread ID     CPU Affinity
     ---------------------------------------------------
      1               2
      2               3
      3               0-1
    
        
file modified
+172 -0
file modified
+27 -0