Assign 1 admin IP per node

Change-Id: If64e4a3e6f13b32f13293507f83626104ae9bcd9
Fix Ubuntu to use MAC instead of arbitrary iface name

Change-Id: Ie3bed8de63fbb38edc9d08727100238178c83d09
Add fallback test in __check_interfaces_correctness

In some cases, it may be OK for there to be an admin interface
 that is outside the admin network. To support this case we we will
 test if the interface mac matches the mac that contacted us, if this
 is the case, we will use this interface.

This prevents the NetworkManager from erroneously removing interfaces
 from an otherwise valid node.

Resolves-bug: #1271043

Change-Id: I04120d538e2efba6cb7a04cfbd7cb4852f2576c9
ml3 - API changes to manage networks and network assignments

Fix copy/paste error

Change-Id: I51affe01817973cbc641b1c210fc0a95cafeb3de
ml3 - Update address allocators

Admin IP allocation fixes
Add gateways to all networks in yaml
Add gateway for admin interface
Serialize network ranges per-node

Change-Id: I696a3812363a87221dcd8f51673ca276dfd454bd
ml3 - Pass net.id in a places where we need it

fix _get_admin_network to return net.id and net.name
add net.id to get_node_networks_optimized

Change-Id: Ib8c4969624a1d59e1849b05d02d17f2cfccafb8b
Fix network check

Change-Id: Ie817995d283f0fc0e5ffe28361437514e2c44a1b
Return full list of allowed_networks

Change-Id: I1bb1f4fd5aca4953274f800f792061757b076b71
ml3 - Add additional sub-grouping for networks in a cluster (rack_id)

Nodes can be assigned a rack_id which will force Nailgun to only
assign networks that have a corresponding rack_id
Assign VIP out of primary controller's management network
Allow node handler to set rack_id
 Add handlers to POST and PUT to search for rack_id if None
 Allow 'fuel node' to show rack_id
 set/clear error state if rack_id is still None

make 0 default network rack_id

Change-Id: Iaafb3caac192a535ad2a3dad2709570adc758384
Add IP Address to fuel node

Change-Id: Ice378edab885660f79fc2b41cb116a2ad7db6439
Fix for nailgun in setup.py

Packaged nailgun module is lowercase, however in setup.py its Nailgun
 this prevents being able to use 'python setup.py develop' which is needed
 for development envs

Closes-bug: #1272552

Change-Id: If255757012cf21542b6b0803d9fb30f757f915f8
Add __repr__ to some models

Change-Id: I400751d9f02777a799e3f7ba1506e6dbda1d1bdd