<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 29/10/14 09:28, Steve Baker wrote:<br>
    </div>
    <blockquote cite="mid:544FFC66.5030302@redhat.com" type="cite">
      <meta content="text/html; charset=windows-1252"
        http-equiv="Content-Type">
      <div class="moz-cite-prefix">On 29/10/14 06:51, Steven Hardy
        wrote:<br>
      </div>
      <blockquote cite="mid:20141028175137.GA24121@t430slt.redhat.com"
        type="cite">
        <pre wrap="">Hi all,

So I've been investigating bug #1383709, which has caused me to run into a
bad update pattern involving OS::Neutron::Port

<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://docs.openstack.org/developer/heat/template_guide/openstack.html#OS::Neutron::Port">http://docs.openstack.org/developer/heat/template_guide/openstack.html#OS::Neutron::Port</a>

I'm not quite clear on the history, but for some reason, we have a
"replacement_policy" property, unlike all other resources, and it defaults
to replacing the resource every time you update, unless you pass "AUTO" to
the property.

I'm sure there's a good reason for this, but on the face of it, it seems to
be a very unsafe and inconvenient default when considering updates?

The problem (which may actually be the cause the bug #1383709) is the UUID
changes, so you don't only replace the port, you replace it and everything
that references it, which makes the Port resource a landmine of
HARestarter-esque proportions ;)

Can anyone (and in particular stevebaker who initally wrote the code) shed
any light on this?  Can we just flip the default to AUTO, as it seems to be
a more desirable default for nearly all users?

Thanks!


</pre>
      </blockquote>
      The commit does a reasonable job of explaining the whole sorry
      situation<br>
      <br>
      <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="https://review.openstack.org/#/c/121693/">https://review.openstack.org/#/c/121693/</a><br>
      <br>
      This was an attempt to improve port modelling enough for Juno
      while nova bug #1158684 [1] remains unfixed.<br>
      <br>
      If we defaulted to
      <meta http-equiv="content-type" content="text/html;
        charset=windows-1252">
      <span style="color: rgb(51, 51, 51); font-family: monospace;
        font-size: 11.8181819915771px; font-style: normal; font-variant:
        normal; font-weight: normal; letter-spacing: normal;
        line-height: 18px; orphans: auto; text-align: left; text-indent:
        0px; text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-stroke-width: 0px; display:
        inline !important; float: none; background-color: rgb(255, 255,
        255);">replacement_policy:AUTO</span> then we have the 2 issues
      when a server is replaced on stack update [3][1]<br>
      <br>
      If we keep the current default then we have the symptoms of bug
      #1383709.<br>
      <br>
      Both options suck and there is no way of always doing the right
      thing, which is why <span style="color: rgb(51, 51, 51);
        font-family: monospace; font-size: 11.8181819915771px;
        font-style: normal; font-variant: normal; font-weight: normal;
        letter-spacing: normal; line-height: 18px; orphans: auto;
        text-align: left; text-indent: 0px; text-transform: none;
        white-space: normal; widows: auto; word-spacing: 0px;
        -webkit-text-stroke-width: 0px; display: inline !important;
        float: none; background-color: rgb(255, 255, 255);">replacement_policy</span>
      exists - to push this decision to the template author.<br>
      <br>
      I've come to the conclusion that ports shouldn't be modelled as
      resources at all; they sometimes represent exclusive resources
      (fixed IPs) and their dependencies with servers sometimes goes
      both ways. To fix this properly I've written a Kilo spec for
      blueprint rich-network-prop [2]<br>
      <br>
      Before we switch the default to AUTO maybe we could investigate
      getting REPLACE_ALWAYS to interact better with ResourceGroup (or
      the tripleo templates which use it)<br>
      <br>
    </blockquote>
    <br>
    I've looked at the tripleo templates now, and they create ports
    which are resources in their own right, so switching to
    replacement_policy:AUTO is entirely appropriate.  However in most
    templates the vast majority of port resources are just to define a
    simple server/port/floating-IP combo. Therefore I think there is a
    good argument for the default REPLACE_ALWAYS causing the least
    problems for the majority of cases.<br>
    <br>
    <blockquote cite="mid:544FFC66.5030302@redhat.com" type="cite"> [1]
      <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="https://bugs.launchpad.net/nova/+bug/1158684">https://bugs.launchpad.net/nova/+bug/1158684</a><br>
      [2] <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="https://review.openstack.org/#/c/130093/">https://review.openstack.org/#/c/130093/</a><br>
      [3] <a moz-do-not-send="true" class="moz-txt-link-freetext"
        href="https://bugs.launchpad.net/heat/+bug/1301486">https://bugs.launchpad.net/heat/+bug/1301486</a><br>
      <br>
    </blockquote>
    <br>
    <br>
    <meta http-equiv="content-type" content="text/html;
      charset=windows-1252">
  </body>
</html>