<div dir="ltr"><br><div class="gmail_extra">Hi Rossella, </div><div class="gmail_extra"><br></div><div class="gmail_extra">Thanks for your clarification.<br><br><div class="gmail_quote">On Wed, Feb 20, 2013 at 8:26 PM, Rossella Sblendido <span dir="ltr"><<a href="mailto:rossella@midokura.jp" target="_blank">rossella@midokura.jp</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div><br></div>
    Yes Dan you're right, thanks for correcting me and sorry for the
    confusion. It's not VM migration, I meant something like "MAC
    migration" but that's probably unclear. Let me explain...<br>
    I'm not an expert of restful application anyway my idea was to use <span><span><span>bridges/bridge_id/macPortTable

          as URI. A GET against it returns </span></span></span><span><span><span><span><span><span>Collection<DtoMacPort>
                that is </span></span></span>the whole map with
          MAC-vportID associations. </span><span>PUT or DELETE add or
          remove items from the collection.</span></span></span> POST is
    not implemented. A POST against <span><span><span>bridges/bridge_id/macPortTable
          should provide the whole map.</span></span></span><br>
    <br>
    We use PUT both for adding a new entry and for updating an old
    entry. A use case for updating an entry would be a MAC previously
    assigned to a VM, gets assigned to a new VM, that's why the
    association MAC-vportID changes, that's what I meant. It's probably
    not so common.<div><div class="h5"><br>
    <blockquote type="cite">
      <div></div></blockquote></div></div></div></blockquote><div style>I think this design choice hinges on whether we want this operation to be idempotent.  PUT is supposed to be idempotent and POST is not.  Do we always want PUT to set the mapping?  Personally, I prefer POST to create and PUT to update(which is probably not even necessary, as Joe mentioned), but I can certainly see your point for having PUT doing the creation AND update.  What does it mean when a client tries to create a mapping for a mac that already exists in the table?  Is it important that the client gets an error for this?  IMHO, I think it would be good to send back an error in this case since this operation should not be allowed, and it would be a useful information for the client to know that someone else (or itself) already added this mapping earlier.  When I think of the operations for mac-port mapping, I think 'create' and 'delete' (POST and DELETE) make the most sense.   What do you think?</div>
<div style><br></div><div style>Ryu    </div><div><br></div><div> </div></div><br></div></div>