← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1647629] Re: auto_allocate_network is not called when external network exists

 

You're getting the public external network because you marked it as
shared=True so it's pulled in here:

https://github.com/openstack/nova/blob/a67af1f110f160861f5cbbff987766c46d60198a/nova/network/neutronv2/api.py#L343

And you pass this check for the external shared network on the compute:

https://github.com/openstack/nova/blob/a67af1f110f160861f5cbbff987766c46d60198a/nova/network/neutronv2/api.py#L466

So the port for the server gets created in that network. I'm not sure
what else you expect to happen here.

** Tags added: neutron

** Changed in: nova
       Status: New => Invalid

** Summary changed:

- auto_allocate_network is not called when external network exists
+ auto_allocate_network is not called when external shared network exists

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1647629

Title:
  auto_allocate_network is not called when external shared network
  exists

Status in OpenStack Compute (nova):
  Invalid

Bug description:
  When I try to boot an instance with '--nic auto', a network isn't created
  automatically.  In neutron side, in order to automatically allocate
  network/subnet/router, following network is necessary in advance:

      * router:external is True(it means an external network)
      * is_default is True
      * subnet is associated

  However, if I prepared above default network, nova doesn't call
  '_can_auto_allocate_network'[1].  As a result, the VM instance is attached that
  external network.(not generated a network automatically)

  [1]
  https://github.com/openstack/nova/blob/master/nova/network/neutronv2/api.py#L1532

  [Steps to reproduce]
  1. Delete all network/subnet/port/router in neutron

  2. Try to create an instance
    $ nova boot --flavor 1 --image 198384a2-9ece-4d24-a509-4ce02f183b63 vm1 --nic auto

  ERROR (BadRequest): Unable to automatically allocate a network for project c8607bb7e4334b43aede76831b91ca03 (HTTP 400) (Request-ID: req-2d4088f6-d9aa-492d-a645-02327a058a47)
  In n-api.log, we can see following error message:
  Error message: {"NeutronError": {"message": "Deployment error: No default router:external network.", "type": "AutoAllocationFailure", "detail": ""}}

  3. I see.  OK, let's create default external network(router:external)
    $ neutron net-create public --is_default --router:external --shared
    $ neutron subnet-create public --subnetpool a811bf33-dacc-42b9-b44a-d424f37023df

  4. Try it again 'nova boot'
    $ nova boot --flavor 1 --image 198384a2-9ece-4d24-a509-4ce02f183b63 vm1 --nic auto

  5. You can check the result with 'nova list'
    $ nova list
  +--------------------------------------+------+--------+------------+-------------+-----------------+
  | ID                                   | Name | Status | Task State | Power State | Networks        |
  +--------------------------------------+------+--------+------------+-------------+-----------------+
  | 4e83f9d0-acbf-4440-8563-17dd6ec0cde5 | vm1  | BUILD  | spawning   | NOSTATE     | public=10.0.0.9 |
  +--------------------------------------+------+--------+------------+-------------+-----------------+

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1647629/+subscriptions


References