<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 06/03/2015 05:05 PM, Morgan Fainberg
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAGnj6auFodRKREcTniEvfosXYAYEmkPSn0stoGfKy9wRB4M6bA@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hi David,
        <div><br>
        </div>
        <div>There needs to be some form of global hierarchy delimiter -
          well more to the point there should be a common one across
          OpenStack installations to ensure we are providing a good and
          consistent (and more to the point inter-operable) experience
          to our users. I'm worried a custom defined delimiter (even at
          the domain level) is going to make it difficult to consume
          this data outside of the context of OpenStack (there are
          applications that are written to use the APIs directly).</div>
      </div>
    </blockquote>
    We have one already.  We are working JSON, and so instead of project
    name being a string, it can be an array.<br>
    <br>
    Nothing else is backwards compatible.  Nothing else will ensure we
    don;t break exisiting deployments.<br>
    <br>
    Moving forward, we should support DNS notation, but it has to be an
    opt in<br>
    <br>
    <blockquote
cite="mid:CAGnj6auFodRKREcTniEvfosXYAYEmkPSn0stoGfKy9wRB4M6bA@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div><br>
        </div>
        <div>The alternative is to explicitly list the delimiter in the
          project ( e.g. <font face="monospace, monospace">{"hierarchy":
            {"delim": ".", "domain.project.project2"}}</font><font
            face="arial, helvetica, sans-serif"> ). The additional need
            to look up the delimiter / set the delimiter when creating a
            domain is likely to make for a worse user experience than
            selecting one that is not different across installations.</font><br>
        </div>
        <div><font face="arial, helvetica, sans-serif"><br>
          </font></div>
        <div><font face="arial, helvetica, sans-serif">--Morgan</font></div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Wed, Jun 3, 2015 at 12:19 PM, David
          Chadwick <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:d.w.chadwick@kent.ac.uk" target="_blank">d.w.chadwick@kent.ac.uk</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex"><span
              class=""><br>
              <br>
              On 03/06/2015 14:54, Henrique Truta wrote:<br>
              > Hi David,<br>
              ><br>
              > You mean creating some kind of "delimiter" attribute
              in the domain<br>
              > entity? That seems like a good idea, although it does
              not solve the<br>
              > problem Morgan's mentioned that is the global
              hierarchy delimiter.<br>
              <br>
            </span>There would be no global hierarchy delimiter. Each
            domain would define<br>
            its own and this would be carried in the JSON as a separate
            parameter so<br>
            that the recipient can tell how to parse hierarchical names<br>
            <br>
            David<br>
            <span class=""><br>
              ><br>
              > Henrique<br>
              ><br>
              > Em qua, 3 de jun de 2015 às 04:21, David Chadwick<br>
            </span>> <<a moz-do-not-send="true"
              href="mailto:d.w.chadwick@kent.ac.uk">d.w.chadwick@kent.ac.uk</a>
            <mailto:<a moz-do-not-send="true"
              href="mailto:d.w.chadwick@kent.ac.uk">d.w.chadwick@kent.ac.uk</a>>>
            escreveu:<br>
            <div>
              <div class="h5">><br>
                ><br>
                ><br>
                >     On 02/06/2015 23:34, Morgan Fainberg wrote:<br>
                >     > Hi Henrique,<br>
                >     ><br>
                >     > I don't think we need to specifically call
                out that we want a<br>
                >     domain, we<br>
                >     > should always reference the namespace as
                we do today. Basically, if we<br>
                >     > ask for a project name we need to also
                provide it's namespace (your<br>
                >     > option #1). This clearly lines up with how
                we handle projects in<br>
                >     domains<br>
                >     > today.<br>
                >     ><br>
                >     > I would, however, focus on how to
                represent the namespace in a single<br>
                >     > (usable) string. We've been delaying the
                work on this for a while<br>
                >     since<br>
                >     > we have historically not provided a clear
                way to delimit the<br>
                >     hierarchy.<br>
                >     > If we solve the issue with "what is the
                delimiter" between domain,<br>
                >     > project, and subdomain/subproject, we end
                up solving the usability<br>
                ><br>
                >     why not allow the top level domain/project to
                define the delimiter for<br>
                >     its tree, and to carry the delimiter in the
                JSON as a new parameter.<br>
                >     That provides full flexibility for all
                languages and locales<br>
                ><br>
                >     David<br>
                ><br>
                >     > issues with proposal #1, and not breaking
                the current behavior you'd<br>
                >     > expect with implementing option #2 (which
                at face value feels to<br>
                >     be API<br>
                >     > incompatible/break of current behavior).<br>
                >     ><br>
                >     > Cheers,<br>
                >     > --Morgan<br>
                >     ><br>
                >     > On Tue, Jun 2, 2015 at 7:43 AM, Henrique
                Truta<br>
                >     > <<a moz-do-not-send="true"
                  href="mailto:henriquecostatruta@gmail.com">henriquecostatruta@gmail.com</a><br>
                >     <mailto:<a moz-do-not-send="true"
                  href="mailto:henriquecostatruta@gmail.com">henriquecostatruta@gmail.com</a>><br>
              </div>
            </div>
            >     <mailto:<a moz-do-not-send="true"
              href="mailto:henriquecostatruta@gmail.com">henriquecostatruta@gmail.com</a><br>
            <div class="HOEnZb">
              <div class="h5">>     <mailto:<a
                  moz-do-not-send="true"
                  href="mailto:henriquecostatruta@gmail.com">henriquecostatruta@gmail.com</a>>>>
                wrote:<br>
                >     ><br>
                >     >     Hi folks,<br>
                >     ><br>
                >     ><br>
                >     >     In Reseller[1], we’ll have the domains
                concept merged into<br>
                >     projects,<br>
                >     >     that means that we will have projects
                that will behave as domains.<br>
                >     >     Therefore, it will be possible to have
                two projects with the same<br>
                >     >     name in a hierarchy, one being a
                domain and another being a<br>
                >     regular<br>
                >     >     project. For instance, the following
                hierarchy will be valid:<br>
                >     ><br>
                >     >     A - is_domain project, with domain A<br>
                >     ><br>
                >     >     |<br>
                >     ><br>
                >     >     B - project<br>
                >     ><br>
                >     >     |<br>
                >     ><br>
                >     >     A - project with domain A<br>
                >     ><br>
                >     ><br>
                >     >     That hierarchy faces a problem when a
                user requests a project<br>
                >     scoped<br>
                >     >     token by name, once she’ll pass
                “domain = ‘A’” and<br>
                >     <a moz-do-not-send="true"
                  href="http://project.name" target="_blank">project.name</a>
                <<a moz-do-not-send="true" href="http://project.name"
                  target="_blank">http://project.name</a>><br>
                >     >     <<a moz-do-not-send="true"
                  href="http://project.name" target="_blank">http://project.name</a>>
                = “A”. Currently, we have no way to<br>
                >     >     distinguish which project we are
                referring to. We have two<br>
                >     proposals<br>
                >     >     for this.<br>
                >     ><br>
                >     ><br>
                >     >      1.<br>
                >     ><br>
                >     >         Specify the whole hierarchy in the
                token request body, which<br>
                >     >         means that when requesting a token
                for the child project for<br>
                >     >         that hierarchy, we’ll have in the
                scope field something like:<br>
                >     ><br>
                >     >     "project": {<br>
                >     >                    "domain": {<br>
                >     >                        "name": "A"<br>
                >     >                    },<br>
                >     >                    "name": [“A”', “B”,
                “A”]<br>
                >     >                }<br>
                >     ><br>
                >     ><br>
                >     >     If the project name is unique inside
                the domain (project “B”, for<br>
                >     >     example), the hierarchy is optional.<br>
                >     ><br>
                >     ><br>
                >     >      2.<br>
                >     ><br>
                >     >         When a conflict happen, always
                provide a token to the child<br>
                >     >         project. That means that, in case
                we have a name clashing as<br>
                >     >         described, it will only be
                possible to get a project scoped<br>
                >     >         token to the is_domain project
                through its id.<br>
                >     ><br>
                >     ><br>
                >     ><br>
                >     >     The former will give us more clarity
                and won’t create any more<br>
                >     >     restrictions than we already have. As
                a con, we currently are not<br>
                >     >     able to get the names of projects in
                the hierarchy above a given<br>
                >     >     project. Although the latter seems to
                hurt fewer people, it<br>
                >     has the<br>
                >     >     disadvantage of creating another set
                of constraints that might<br>
                >     >     difficult the UX in the future.<br>
                >     ><br>
                >     ><br>
                >     >     What do you think about that? We want
                to hear your oppinion, so we<br>
                >     >     can discuss it at today’s Keystone
                Meeting.<br>
                >     ><br>
                >     ><br>
                >     >     [1]<br>
                >     ><br>
                >      <a moz-do-not-send="true"
href="https://github.com/openstack/keystone-specs/blob/master/specs/liberty/reseller.rst"
                  target="_blank">https://github.com/openstack/keystone-specs/blob/master/specs/liberty/reseller.rst</a><br>
                >     ><br>
                >     ><br>
                >     ><br>
                >     
__________________________________________________________________________<br>
                >     >     OpenStack Development Mailing List
                (not for usage questions)<br>
                >     >     Unsubscribe:<br>
                >     >     <a moz-do-not-send="true"
href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe"
                  target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
                >     <<a moz-do-not-send="true"
href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe"
                  target="_blank">http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a>><br>
                >     ><br>
                >      <<a moz-do-not-send="true"
href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe"
                  target="_blank">http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a>><br>
                >     >     <a moz-do-not-send="true"
                  href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev"
                  target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
                >     ><br>
                >     ><br>
                >     ><br>
                >     ><br>
                >     ><br>
                >   
 __________________________________________________________________________<br>
                >     > OpenStack Development Mailing List (not
                for usage questions)<br>
                >     > Unsubscribe:<br>
                >     <a moz-do-not-send="true"
href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe"
                  target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
                >     <<a moz-do-not-send="true"
href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe"
                  target="_blank">http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a>><br>
                >     > <a moz-do-not-send="true"
                  href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev"
                  target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
                >     ><br>
                ><br>
                >   
 __________________________________________________________________________<br>
                >     OpenStack Development Mailing List (not for
                usage questions)<br>
                >     Unsubscribe:<br>
                >     <a moz-do-not-send="true"
href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe"
                  target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
                >     <<a moz-do-not-send="true"
href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe"
                  target="_blank">http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a>><br>
                >     <a moz-do-not-send="true"
                  href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev"
                  target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
                ><br>
                ><br>
                ><br>
                >
__________________________________________________________________________<br>
                > OpenStack Development Mailing List (not for usage
                questions)<br>
                > Unsubscribe: <a moz-do-not-send="true"
href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe"
                  target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
                > <a moz-do-not-send="true"
                  href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev"
                  target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
                ><br>
                <br>
__________________________________________________________________________<br>
                OpenStack Development Mailing List (not for usage
                questions)<br>
                Unsubscribe: <a moz-do-not-send="true"
href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe"
                  target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
                <a moz-do-not-send="true"
                  href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev"
                  target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: <a class="moz-txt-link-abbreviated" href="mailto:OpenStack-dev-request@lists.openstack.org?subject:unsubscribe">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a>
<a class="moz-txt-link-freetext" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>