On 2/15/2016 1:41 AM, Gary Kotton wrote:
Yes, you could consider Neutron as a proxy for this. It creates the
network, subnet, router… To be honest I think that we should maybe
consider ofering a template that can be created by Neutron and then the
template ID passed from Nova or wherever. This will enable an admin to
pre cook a number of different templates for different use cases. But
maybe that I too far down the line.


From: Alex Xu <sou...@gmail.com <mailto:sou...@gmail.com>>
Reply-To: OpenStack List <openstack-dev@lists.openstack.org
<mailto:openstack-dev@lists.openstack.org>>
Date: Monday, February 15, 2016 at 7:06 AM
To: OpenStack List <openstack-dev@lists.openstack.org
<mailto:openstack-dev@lists.openstack.org>>
Subject: Re: [openstack-dev] [nova][neutron] How would nova microversion
get-me-a-network in the API?

May I ask can we put those thing in to the CLI? I guess there should
have similar discussion and I missed. As we didn't want to provide more
neutron API proxy, this works sounds like adding more proxy. And API is
more simple and more flexible, this make the API have more complex
behaviour. Just like evacuate API, it just does one thing, for evacuate
the all the instances on the host, that should be CLI thing.

Thanks
Alex

2016-02-13 1:15 GMT+08:00 Matt Riedemann <mrie...@linux.vnet.ibm.com
<mailto:mrie...@linux.vnet.ibm.com>>:

    Forgive me for thinking out loud, but I'm trying to sort out how
    nova would use a microversion in the nova API for the
    get-me-a-network feature recently added to neutron [1] and planned
    to be leveraged in nova (there isn't a spec yet for nova, I'm trying
    to sort this out for a draft).

    Originally I was thinking that a network is required for nova boot,
    so we'd simply check for a microversion and allow not specifying a
    network, easy peasy.

    Turns out you can boot an instance in nova (with neutron as the
    network backend) without a network. All you get is a measly debug
    log message in the compute logs [2]. That's kind of useless though
    and seems silly.

    I haven't tested this out yet to confirm, but I suspect that if you
    create a nova instance w/o a network, you can latter try to attach a
    network using the os-attach-interfaces API as long as you either
    provide a network ID *or* there is a public shared network or the
    tenant has a network at that point (nova looks those up if a
    specific network ID isn't provided).

    The high-level plan for get-me-a-network in nova was simply going to
    be if the user tries to boot an instance and doesn't provide a
    network, and there isn't a tenant network or public shared network
    to default to, then nova would call neutron's new
    auto-allocated-topology API to get a network. This, however, is a
    behavior change.

    So I guess the question now is how do we handle that behavior change
    in the nova API?

    We could add an auto-create-net boolean to the boot server request
    which would only be available in a microversion, then we could check
    that boolean in the compute API when we're doing network validation.

    Today if you don't specify a network and don't have a network
    available, then the validation in the API is basically just quota
    checking that you can get at least one port in your tenant [3]. With
    a flag on a microversion, we could also validate some other things
    about auto-creating a network (if we know that's going to be the
    case once we hit the compute).

    Anyway, this is mostly me getting thoughts out of my head before the
    weekend so I don't forget it and am looking for other ideas here or
    things I might be missing.

    [1] https://blueprints.launchpad.net/neutron/+spec/get-me-a-network
    [2]
    
https://github.com/openstack/nova/blob/30ba0c5eb19a9c9628957ac8e617ae78c0c1fa84/nova/network/neutronv2/api.py#L594-L595
    
<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openstack_nova_blob_30ba0c5eb19a9c9628957ac8e617ae78c0c1fa84_nova_network_neutronv2_api.py-23L594-2DL595&d=BQMFaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=VlZxHpZBmzzkWT5jqz9JYBk8YTeq9N3-diTlNj4GyNc&m=IM9_TPE0bx2WSeqiD3HeyvJhxrdG3sr7rLUEbhAcWMs&s=t42iKObPq-keVfC3EZd9X7WyehiSgwzxw501xt7wqyM&e=>
    [3]
    
https://github.com/openstack/nova/blob/30ba0c5eb19a9c9628957ac8e617ae78c0c1fa84/nova/network/neutronv2/api.py#L1107
    
<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openstack_nova_blob_30ba0c5eb19a9c9628957ac8e617ae78c0c1fa84_nova_network_neutronv2_api.py-23L1107&d=BQMFaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=VlZxHpZBmzzkWT5jqz9JYBk8YTeq9N3-diTlNj4GyNc&m=IM9_TPE0bx2WSeqiD3HeyvJhxrdG3sr7rLUEbhAcWMs&s=ddAFuD4WtYtA_FxgOglckfO17USVYIlVzihIiZWvsrA&e=>

    --

    Thanks,

    Matt Riedemann


    __________________________________________________________________________
    OpenStack Development Mailing List (not for usage questions)
    Unsubscribe:
    openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
    <http://openstack-dev-requ...@lists.openstack.org?subject:unsubscribe>
    http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


These are fair questions, and yes, this is definitely adding more proxy code in nova, which we've stated that we don't want to do anymore. This would be akin to boot from volume where you're not bringing your own volume to attach, and that has it's own issues (mostly around timing issues and cleanup when things fail).

So this does add more orchestration to the API, which is unfortunate, but it is also an attempt to get the API to behave closer to how it works with nova-network, and simplify the API. So I think this is an exceptional case and honestly if it were a major deal breaker, I'd have expected the interested parties to have brought it up and squashed it up long ago (like the YVR summit).

--

Thanks,

Matt Riedemann


__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to