On Mon, Feb 6, 2012 at 4:58 AM, Michael J Fork <mjf...@us.ibm.com> wrote:
> With the the vif-extension bug noted below being fixed by Vish back during
> the bug squash - see https://bugs.launchpad.net/nova/+bug/925682 - our plan
> is to move on to specifying the set and order of NICS that are created on a
> guest.

Cool! As I mentioned, looking at the python-novaclient code's --nic
option should give you everything you need.  Its worth noting that
right now Quantum Manager only supports specifying the network using
--nic, not setting the VM IP.

>
> Tres - let me know if there is any overlap with what you planned on working
> on.
>
> Dan - if we remove the "Create Network" button, what is the right way to
> create networks for testing purposes?

The "administrator" needs to create them using nova-manage (stack.sh
creates one for you already, but you can create more using the syntax:

/opt/stack/nova/bin/nova-manage network create --label=net2
--fixed_range_v4=13.0.0.0/24

See the Quantum Admin Guide for details
(http://docs.openstack.org/incubation/openstack-network/admin/content/index.html).

Dan



>
> Devin - The network selection is part of the Launch Instance flow, but the
> space constraints on the dialog make me wonder if this should be placed
> below Flavor/Keypair or a new pane as part of a wizard-like flow?
>  Additionally, I don't see an ordered, multi-select implementation to use as
> a guide.  Do you have a preferred control or pattern to follow to implement
> this?
>
> Thanks.
>
> Michael
>
> -------------------------------------------------
> Michael Fork
> Cloud Architect, Emerging Solutions
> IBM Systems & Technology Group
>
>
>
> From:        Dan Wendlandt <d...@nicira.com>
> To:        Tres Henry <t...@treshenry.net>
> Cc:        netstack@lists.launchpad.net, Devin Carlen
> <devin.car...@nebula.com>, Michael J Fork/Rochester/IBM@IBMUS
> Date:        01/31/2012 01:41 PM
> Subject:        Re: [Netstack] updating quantum in horizon
> ________________________________
>
>
>
> Hi Tres,
>
> Thanks for sending this out.  I'm excited that we have a couple people
> interested in fixing things up here!  CC'd is Michael Fork, who also
> mentioned that he is interested in working on this.
>
> I will start out with a caveat that all of these comments are targeted
> at making Horizon work well with Quantum + the Quantum Manager code in
> Nova.  The original Quantum + Horizon code was written back in diablo,
> prior to much of the work on Quantum Manager, and thus targeted a more
> manual model where the user explicitly created + attached ports,
> rather than having QuantumManager do that automatically.  It also was
> a model that was not integrated with IP Address management at all.
> Given that things seem to have been broken with Quantum + Horizon for
> a while, I am assuming that no one has been seriously using the code
> in this form, and thus we can move to a model that uses QuantumManager
> without worrying about the old model.  If anyone wants to step forward
> and support the old model, we'll have to figure out how the two
> approaches should co-exist.  Otherwise, I would just push for a model
> where QuantumManager is the primary mode of use for Quantum + Horizon.
>
> One error prevents a lot of the code from even working in the first
> place, so we should probably tackle that first.  Oddly, it seems to be
> an issue with the vif-extension in Nova.
>
> When trying to view the detail page of an individual network does not
> work.  I get this error:
>
> Error: Unable to get network details: The server has either erred or
> is incapable of performing the requested operation.
>
> Underneath the covers, I see the exception:
>
> [Tue Jan 31 09:53:29 2012] [error]
> ERROR:horizon.dashboards.nova.networks.views:Unable to get network
> details.
> [Tue Jan 31 09:53:29 2012] [error] Traceback (most recent call last):
> [Tue Jan 31 09:53:29 2012] [error]   File
> "/opt/stack/horizon/horizon/horizon/dashboards/nova/networks/views.py",
> line 102, in detail
> [Tue Jan 31 09:53:29 2012] [error]     network['ports'] =
> _get_port_states(request, network_id)
> [Tue Jan 31 09:53:29 2012] [error]   File
> "/opt/stack/horizon/horizon/horizon/dashboards/nova/networks/views.py",
> line 143, in _get_port_states
> [Tue Jan 31 09:53:29 2012] [error]     vifs = api.get_vif_ids(request)
> [Tue Jan 31 09:53:29 2012] [error]   File
> "/opt/stack/horizon/horizon/horizon/api/quantum.py", line 118, in
> get_vif_ids
> [Tue Jan 31 09:53:29 2012] [error]     instance_vifs =
> nova.virtual_interfaces_list(request, id)
> [Tue Jan 31 09:53:29 2012] [error]   File
> "/opt/stack/horizon/horizon/horizon/api/nova.py", line 398, in
> virtual_interfaces_list
> [Tue Jan 31 09:53:29 2012] [error]     return
> novaclient(request).virtual_interfaces.list(instance_id)
> [Tue Jan 31 09:53:29 2012] [error]   File
> "/opt/stack/python-novaclient/novaclient/v1_1/virtual_interfaces.py",
> line 33, in list
> [Tue Jan 31 09:53:29 2012] [error]     'virtual_interfaces')
> [Tue Jan 31 09:53:29 2012] [error]   File
> "/opt/stack/python-novaclient/novaclient/base.py", line 69, in _list
> [Tue Jan 31 09:53:29 2012] [error]     resp, body = self.api.client.get(url)
> [Tue Jan 31 09:53:29 2012] [error]   File
> "/opt/stack/python-novaclient/novaclient/client.py", line 130, in get
> [Tue Jan 31 09:53:29 2012] [error]     return self._cs_request(url,
> 'GET', **kwargs)
> [Tue Jan 31 09:53:29 2012] [error]   File
> "/opt/stack/python-novaclient/novaclient/client.py", line 118, in
> _cs_request
> [Tue Jan 31 09:53:29 2012] [error]     **kwargs)
> [Tue Jan 31 09:53:29 2012] [error]   File
> "/opt/stack/python-novaclient/novaclient/client.py", line 101, in
> request
> [Tue Jan 31 09:53:29 2012] [error]     raise
> exceptions.from_response(resp, body)
> [Tue Jan 31 09:53:29 2012] [error] ClientException: The server has
> either erred or is incapable of performing the requested operation.
> (HTTP 50
>
> This is because dashboard is trying to build up a dictionary mapping
> from server-id to interface-id using the os-virtual-interfaces
> extension for nova.  But that extension isn't working.  My best guess
> is that this is because of the shift from using ids to uuids within
> Nova API calls, but I'm not 100% sure.
>
> If you work around that issue by commenting out the vif-id related
> code in network/views.py, you can get the ports page to come up, and
> you can more-or-less see the current state of things.
>
> Here are some other suggestions for items to look at:
>
> - on the network detail page, we can get rid of the "create-ports",
> "attach", and "detach", and "delete" buttons as well and any
> associated dialogs, as Quantum Manager actually does all of the port
> creation/attaching/detaching/deletion on behalf of the user.  Leaving
> the bottom to put the port in "admin down" or "admin up" state makes
> sense.
> - We should add a row to the table to show the operational status of a
> port, as this is very useful for understanding if the port is working.
> This is only supported in v1.1 of the API, but the dashboard can have
> a slot for it, and show N/A if it is not available.
> - We should also hide the "create  new network" button on the main
> networks page.  This is a longer discussion, but until we can create
> not only a quantum network but also an IPAM subnet (e.g., via
> melange), we can't actually create networks that are used by Quantum
> Manager in nova.  Fixing this will be an important next step.  With
> this in mind, deleting the network also should not be possible via the
> dashboard.
> - on the "network" page, we should get rid of the notion of
> "available" and "used" ports, as with Quantum Manager, all ports that
> are created are in use, since they are automatically created/destroyed
> by Quantum Manager.
> - On the networks page, I would probably not show the UUID as the main
> name of the network.  Similar to the "instances + volumes" page, I
> should show the name of the network, with the UUID only shown on a
> details page for that network.
>
> Another big thing that I would like to add is the ability to use the
> os-create-server API extension in nova to specify the set and order of
> NICs that are to be created on a server (by default, a server gets all
> NICs associated with the current project, as well as a NIC on any
> "global" network created by the service provider for use by all
> tenants).  This is the same capability that is already exposed with
> the --nic option in python-novaclient.   (note: quantum manager
> currently only specifies setting the network-id, it does not support
> selecting a particular IP address for that NIC, even though an IP
> address is specified in the API extension schema).  Given that Horizon
> already uses the python-novaclient library, leveraging this in Horizon
> should be pretty straightforward.
>
> Ok, that was a lot of ideas :)  One last point is how to setup an
> environment to develop and test all of this.
>
> Here are instructions for running devstack with Quantum, which is what
> I use:  http://wiki.openstack.org/QuantumDevstack
>
> With devstack, the useful Horizon code is mainly in:
> - /opt/stack/horizon/horizon/horizon/dashboards/nova/networks  :
> fetches data for network pages
> - /opt/stack/horizon/horizon/horizon/api  : contains libraries for
> talking to nova + quantum.
>
> I also have a script, pasted below, that I use to setup some
> interesting networks + hosts across two users "demo1" and "demo2".
> After stack.sh completes, I run this script, which is much faster than
> setting things up manually.
>
> Would be great to have people volunteer to create bugs and work on any
> of the above issues.  Let me know how I can help out!
>
> Dan
>
>
>
> DEMO1_ID=`keystone-manage -c /opt/stack/keystone/etc/keystone.conf
> tenant list | grep demo1 | awk '{ print $1 }'`
> DEMO2_ID=`keystone-manage -c /opt/stack/keystone/etc/keystone.conf
> tenant list | grep demo2 | awk '{ print $1 }'`
>
> nova-manage --flagfile=/opt/stack/nova/bin/nova.conf  network create
> --label=demo1-net1 --fixed_range_v4=11.0.0.0/24 --project_id=$DEMO1_ID
> --priority=1
> nova-manage --flagfile=/opt/stack/nova/bin/nova.conf  network create
> --label=demo1-net2 --fixed_range_v4=12.0.0.0/24 --project_id=$DEMO1_ID
> --priority=2
> nova-manage --flagfile=/opt/stack/nova/bin/nova.conf  network create
> --label=demo2-net1 --fixed_range_v4=13.0.0.0/24 --project_id=$DEMO2_ID
> --priority=1
> nova-manage --flagfile=/opt/stack/nova/bin/nova.conf  network create
> --label=demo2-net2 --fixed_range_v4=14.0.0.0/24 --project_id=$DEMO2_ID
> --priority=2
>
> TENANT=demo1
> . openrc
>
> IMAGE_UUID=`nova image-list | grep ACTIVE | awk '{ print $2 }'`
> echo "Image ID: $IMAGE_UUID"
>
> nova boot --flavor 1 --image $IMAGE_UUID demo1-test1 > /dev/null
> nova boot --flavor 1 --image $IMAGE_UUID demo1-test2 > /dev/null
>
> TENANT=demo2
> . openrc
>
> nova boot --flavor 1 --image $IMAGE_UUID demo2-test1 > /dev/null
>
> DEMO2_NET1_UUID=`nova-manage --flagfile=/opt/stack/nova/bin/nova.conf
> network quantum_list | grep "13.0.0.0/24" | awk '{print$1}'`
>
> nova boot --flavor 1 --image $IMAGE_UUID --nic net-id=$DEMO2_NET1_UUID
> demo2-test2 > /dev/null
>
>
>
>
>
>
>
>
>
>
> On Tue, Jan 24, 2012 at 3:02 PM, Tres Henry <t...@treshenry.net> wrote:
>> Yo! Looks like Quantum support in Horizon has been languishing a bit. The
>> good news is that we have a much better story for extensibility now
>> (versus
>> the mess you had to deal with for the first cut of the Quantum UI)
>> including
>> encapsulated dashboards/panels and support for some common controls like a
>> fancy new datatable that makes wiring up a table view with actions
>> trivial.
>> The quantum UI has already been moved to a panel
>>
>> (https://github.com/openstack/horizon/tree/master/horizon/horizon/dashboards/nova/networks)
>> and we have done some of the work to convert Quantum's tables to the new
>> table component (https://review.openstack.org/3336). However, that review
>> still needs some work (unit test failures and pep8 issues).
>>
>> From what I understand there are essentially three areas that need
>> eyeballs/work:
>>
>> 1) Horizon API needs to be updated to support new python-quantumclient
>> (Joe
>> has a review open: https://review.openstack.org/3375)
>> 2) Pull request 3336 needs to be finished to bring the network UI inline
>> with the rest of Horizon
>> 3) Recent changes in Quantum need to be reflected in the UI
>>
>> On #2 it would be great if we could get some help from the Quantum
>> team. I'm
>> not really sure of the scope on #3 but would be good to get some
>> blueprints
>> and/or cases in Horizon's launchpad to provide some visibility into what
>> needs to be updated/added to the UI.
>>
>> Thoughts?
>>
>>
>>
>> --
>> Mailing list: https://launchpad.net/~netstack
>> Post to     : netstack@lists.launchpad.net
>> Unsubscribe : https://launchpad.net/~netstack
>> More help   : https://help.launchpad.net/ListHelp
>>
>
>
>
> --
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Dan Wendlandt
> Nicira Networks: www.nicira.com
> twitter: danwendlandt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>



-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dan Wendlandt
Nicira Networks: www.nicira.com
twitter: danwendlandt
~~~~~~~~~~~~~~~~~~~~~~~~~~~

-- 
Mailing list: https://launchpad.net/~netstack
Post to     : netstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~netstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to