Fix service API and cells

The move to the object model broke the service API when used together
with cells. The underlying problem is how cells will overload the id
field with a cell path to uniquely identify each service in each cell.

Changing the id to a string would defeat the purpose of the object model
so this patch uses a proxy to modify the id on access to make the
difference transparent to the API.

Change-Id: I165b5d64b0c1556511eb02d179ca9fc6f101c008
Closes-bug: 1251043
Disable volume attach/detach for suspended instances

As described in the bug - some hypervisors (libvirt) do not support
this. It is best to disable it in the API to provide a consistent user
experience.

Also adds a test to prevent an accidental regression.

Change-Id: I5b404cca22cffecbaf524e2511810e5341242052
Closes-bug: #1240922
Use binding:vif_details to control firewall

Neutron can include 'ovs_hybrid_plug' and 'port_filter' boolean keys in
the binding:vif_details port attribute. 'port_filter' indicates whether
or not neutron is handling port filtering for nova to determine if it needs
to filter for that port. 'ovs_hybrid_plug' can be set to True to indicate
that the neutron plugin still requires the bridge plugging strategy to attach
firewall rules.

Corresponding neutron patch:
Review -  https://review.openstack.org/#/c/83280/
Commit -  8c42ba115b58cc2c7486be9fee89e1facedb5f76

Closes-Bug: 1297469
Change-Id: I3bbcfc67036ab7389c82720add0bc0fc627bfee0
Add nova.conf.sample to gitignore

Now that we aren't storing this in tree and are recommending people
generate it locally add nova.conf.sample to .gitignore.

Change-Id: I0727c7552fead5a201116f9c2c6510fec3b92cd6
Merge "Use binding:vif_details to control firewall"
Add InstanceGroup.get_by_name()

Legacy behavior of the 'group' scheduler hint was that the value was
treated as a name for the group.  To preserve the old behavior, the
InstanceGroup object needs to be able to look up a group by name.

Since we're so close to doing an RC, just use the db API methods
available now but leave a note that this should be optimized later
with a db.api query that looks up the group by name.

Change-Id: I1b8c72b29a9a44a171aaa231aeb3533ccf41f7c2
Partial-bug: #1296913
Merge "Disable volume attach/detach for suspended instances"
Merge "Fix service API and cells"
Merge "Add nova.conf.sample to gitignore"
Merge "Add InstanceGroup.get_by_name()"