On 2014?02?12? 17:15, Alex Xu wrote:
Hi, guys,
I'm working neutron network stuff in nova V3 API. We will only pass
port ids when create server, and
Nova won't proxy any neutron call in the future. I plan to add new v3
network extension, that only
accept port ids as parameters. And it will pass those port ids in the
old request_networks parameters.
(line 50 in
https://review.openstack.org/#/c/36615/13/nova/api/openstack/compute/plugins/v3/networks.py)
Then other code path is same with before. In next release or when we
remove nova-network, we
can add neutron specific code path. But v2 and v3 api's behavior is
different. I need change something
before adding new network api. I want to hear you guys' suggestion
first, ensure I'm working on the right
way.
1. Disable allocate ports automatically when create server without any
port in v3 api.
When user create server without any port, the new server shouldn't be
created with any ports in V3.
But in v2, nova-compute will allocate port from existed networks. I
plan to pass parameter down to
nova-compute, that told nova-compute don't allocate ports for new
server. And also keep old behavior
for v2 api.
reference to https://review.openstack.org/#/c/73000/
2. Disable delete ports from neutron when remove server in v3 api.
In v2 api, after remove server, the port that attached to that server
is removed by nova-compute.
But in v3 api, we shoudn't proxy any neutron call. Because there are
some periodic tasks will delete
servers, just pass a parameter down to nova-compute from api isn't
enough. So I plan to add a parameter in instance's
metadata when create server. When remove server, it will check the
metadata first. If the server is marked as
created by v3 api, nova-compute won't remove attached neutron ports.
reference to https://review.openstack.org/#/c/73001/
3. Enable pass port ids when multiple servers creation.
Currently multiple_create didn't support pass port ids. And we won't
allocate ports automatically in v3 api.
So my plan as below:
When request with max_count=2 and ports=[{'id': 'port_id1'}, {'id':
'port_id2'}, {'id': 'port_id3'}, {'id': 'port_id4}]
The first server create with ports 'port_id1' and 'port_id2', the
second server create with ports 'port_id3' and 'port_id4'
When request with max_count=2 and ports = [{'id': 'port_id1'}]
The request return fault.
The request must be len(ports) % max_count == 0
reference to https://review.openstack.org/#/c/73002/
V3 API layer works reference to:
https://review.openstack.org/#/c/36615/
https://review.openstack.org/#/c/42315/
https://review.openstack.org/#/c/42315/
Thanks
Alex
_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev