<div dir="ltr">Ha,thanks for your link, it's absolutely much clearer and more correct here, and how do you think of this util function itself?<br><br><div class="gmail_quote"><div dir="ltr">Kiall Mac Innes <<a href="mailto:kiall@macinnes.ie">kiall@macinnes.ie</a>>于2016年10月18日周二 上午12:03写道:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
    <p class="gmail_msg">We tend to try stick with the various TEST-NET CIDRs etc as well
      in Designate, and document them here:</p>
    <p class="gmail_msg"><a class="m_5887288936083925983moz-txt-link-freetext gmail_msg" href="http://docs.openstack.org/developer/designate/developer-guidelines.html#example-dns-names-and-ip-space" target="_blank">http://docs.openstack.org/developer/designate/developer-guidelines.html#example-dns-names-and-ip-space</a></p>
    Thanks,<br class="gmail_msg">
    Kiall</div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg"><br class="gmail_msg">
    <br class="gmail_msg">
    <div class="m_5887288936083925983moz-cite-prefix gmail_msg">On 17/10/16 10:56, TommyLike Hu wrote:<br class="gmail_msg">
    </div>
    </div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg"><blockquote type="cite" class="gmail_msg">
      <div dir="ltr" class="gmail_msg">
        <div dir="ltr" class="gmail_msg">
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">When I handle some stuff related to Manila
              recently, I found a case which may be suitable for Oslo,
              Anyhow I put it in the maillist so it can be discussed
              before I put it in action.</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">In testcase, we need a function(maybe 2) to
              generate random ip address (or network), also they should
              in the range of [1](ipv4 documentation range) or [2](ipv6
              documentation range), this is the draft code for ipv4:</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif"><br class="gmail_msg">
            </font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">import six</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">import random</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif"><br class="gmail_msg">
            </font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif"><br class="gmail_msg">
            </font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">def rand_ipv4(network=False):</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">    """This uses the TEST-NET-3 range of reserved
              IP addresses."""</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif"><br class="gmail_msg">
            </font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">    test_net_3 = '203.0.113.'</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">    if network:</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">        host_length = random.randint(0, 8)</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">        address_segment = random.randint(0, 8 -
              host_length)</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">        address_segment <<= host_length</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">        address = test_net_3 +
              six.text_type(address_segment)</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">        address = '/'.join((address,</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">                            six.text_type(32 -
              host_length)))</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">    else:</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">        address = test_net_3 +
              six.text_type(random.randint(0, 255))</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">    return address</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif"><br class="gmail_msg">
            </font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">The primary use case here is writing testcases,  I
              am not sure whether it is suitable here, or maybe I
              misunderstood the intention of TEST-NET-3, please leave
              any comment you like.</font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif"><br class="gmail_msg">
            </font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif"><br class="gmail_msg">
            </font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">[1]  <a href="https://tools.ietf.org/html/rfc5737" class="gmail_msg" target="_blank">https://tools.ietf.org/html/rfc5737</a></font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif">[2]  <a href="https://tools.ietf.org/html/rfc5156" class="gmail_msg" target="_blank">https://tools.ietf.org/html/rfc5156</a></font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif"><br class="gmail_msg">
            </font></div>
          <div class="gmail_msg"><font class="gmail_msg" face="georgia,
              serif"><br class="gmail_msg">
            </font></div>
        </div>
      </div>
      <br class="gmail_msg">
      <fieldset class="m_5887288936083925983mimeAttachmentHeader gmail_msg"></fieldset>
      <br class="gmail_msg">
      </blockquote></div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg"><blockquote type="cite" class="gmail_msg"><pre class="gmail_msg">__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: <a class="m_5887288936083925983moz-txt-link-abbreviated gmail_msg" href="mailto:OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a>
<a class="m_5887288936083925983moz-txt-link-freetext gmail_msg" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a>
</pre>
    </blockquote></div>

__________________________________________________________________________<br class="gmail_msg">
OpenStack Development Mailing List (not for usage questions)<br class="gmail_msg">
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" class="gmail_msg" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="gmail_msg">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="gmail_msg">
</blockquote></div></div>