On 01/10/2014 09:30 PM, Aline Manera
        wrote:
      
      
        
        On 12/30/2013 01:13 AM, Sheldon
          wrote:
        
        
          
          now we have support network 
          get/create/delete/activate/deactivate
          
          Now we need to support the attach/detach/
          a Network to a guest. 
          And get the info of Network attached to a guest.
          
          
          libvirt supports several types of network interfaces:
          'bridge','network','user','ethernet','direct','hostdev','mcast',
          'server', 'client'
          
          but there is not a unique "name" attribute for "interface"
          element.(more
            libvirt network interfaces info)
          
          That is not good to define our REST API.
          
          But for "network" type resource, there is a "network"
          attribute of "source" resource. 
          And the value of "network" attribute  is the name of network
          that we defined by /networks POST method.
          
          the "network" type + "network" attribute is unique.
          
          We can define the Network Interfaces like this to support
          "network" type Interfaces:
          GET /vms/*name*/Interfaces?type=network&network="default"
          But this is not RESTFUL.
          
          
          Maybe We can also name a Network Interface by the Interface
          mac. 
          The mac is unique.
          GET /vms/*name*/Interfaces/mac
          
          
        
        
        I think using the mac address is enough for us.
        
        I'd also suggest to use 'ifaces' instead of 'Interfaces'
        
        # list the iface info
        GET /vms/<name>/ifaces/<mac>
        
        # attach new iface
        POST /vms/<name>/ifaces/<mac> {network:
        <network-id>}
      
      POST /vms/<name>/ifaces/ {network: <network-id>} ?