Make get_all_server_info and get_scaling_group_servers use pure-http

The metrics.py code had to be updated to deal with this, and I refactored the effectiness a little bit into metrics.py, so that there's a new get_all_metrics_effects function extracted from get_all_metrics.

I've added unit tests for get_all_metrics_effects, and left the unit tests for get_all_metrics in place (and updated them to ensure that code is using pure-HTTP properly). The tests for that are pretty nasty, but hopefully they'll go away if more of metrics.py gets Effect-ified.


Yeah, so, this is all a bit confusing. Sorry.

That 'services' is directly from the config. Also, I *think* none of the actual configs in practice specify services -- only the defaults are ever used. But if we ever want to run this against nova staging, we need to support configurability, since nova staging uses different names in the catalog.

I ended up changing the defaults in the metrics code because it was using "nova" as the key, but everything else in otter uses cloudServersOpenStack. To be able to use the get_service_mapping function, I needed it to be consistent with the rest of otter.

The service constants are _not_ in that mapping; they're returned from get_service_mapping, which is then passed to get_request_func, which is the only thing that actually needs the service mapping.

I know this is all a bit of a mess, but I've tried to make it a tiny bit more consistent in this branch. Everything related to configurations and service names could certainly use some better factoring.