Test top-to-bottom: object-store containers

Replicate the object-store container command tests but use requests_mock
to test the entire stack down to the requests module.

These will be useful regressions tests when the existing object-store lib
modules are moved to the low-level API object.

Change-Id: Ibf25be46156eb1009f1b66f02f2073d3913b846d
Add low-level API base class

Adds the foundation of a low-level REST API client.  This is the final prep
stage in the conversion of the object-store commands from the old restapi
interface to the keystoneclient.session-based API.

* api.api.BaseAPI holds the common operations

Change-Id: I8fba980e3eb2d787344f766507a9d0dae49dcadf
Move object-store commands to low-level API

api.object_store.APIv1 now contains the formerly top-level functions
implementing the object-store REST client. This replaces the old-style
ObjectClientv1 that is no longer necessary.

Change-Id: I7d8fea326b214481e7d6b24119bd41777c6aa968
Add functional tests to osc

Create a script that kicks off function tests that exercise
openstackclient commands against a cloud.

If no keystone/openstack process is detected, a devstack instance
is spun up and the tests are run against that.

There is also a hook added to tox.ini so that we can run these
tests easily from a gate job.

Change-Id: I3cc8b2b800de7ca74af506d2c7e8ee481fa985f0
Create a whole slew of functional tests for identity

Complete the remaining identity v2 and v3 functional tests

Change-Id: I193fd95e58a38caeb66d37c17cde75b983c48ca0
Pass in domain and project as positional args, not kwargs

The signature for users.set in keystoneclient dictates that
domain and project be sent in, not domainId and projectId,
which are being incorrectly sent in as 'extra' data.

Closes-Bug: #1376833

Change-Id: I44df3e492f61eab2241f3758dee622417bb6f399
Remove duplicate env function in shell.py

There already exists an env() function in utils. Let's use that
one since it's common.

Change-Id: I661984394cf0c0543b2f35bf76e3929dead54d1d
Place the command to generate docs on one line

Change-Id: I99d78208c940bc6646327ee967e71187c32a159f
Add some code-blocks to the docs

Add some basic highlighting for the docs

Change-Id: Ifa740856f3ef636bdf0f60f3b7d082c68062fe9b
Merge "Add some code-blocks to the docs"
Merge "Add functional tests to osc"
Merge "Create a whole slew of functional tests for identity"
Merge "Remove duplicate env function in shell.py"
Update gitignore

add .project and .pydevproject to gitignore

Change-Id: Ic258ded80612d31bd3017fce65000b619026e844
Fix issues with object related commands

1) Can't create instance of swiftclient. Since we now create
an API instance, creating a swiftclient instance won't work.
Trying to do any object related command fails.

2) Listing objects in a container fails, we depend on the
data returned in a specific way, during the API transition
this must have slipped through.

Needs regression/funcitonal tests to mame sure this doesn't
happen again.

Change-Id: I69079a0dc9f32b84e6f9307729d3dbbba549ac5e
Implement CRUD operations for Mapping objects

Change-Id: I4b8f2e77e741cf74f50aba98ab975af7321b02c6
Implements: bp/add-openstackclient-federation-crud
Merge "Implement CRUD operations for Mapping objects"
Merge "Fix issues with object related commands"
Update for cliff commandmanager >=1.6.1

Cliff 1.6.1 added  CommandManager.load_commands() so we can adopt it
rather than rolling our own.

Also, that second group is Greek, not Latin.  Jeez...

Change-Id: I4a63c22f37bcfd0ef5d83c2dbd08b58fda0db35c
CRUD operations for federated protocols

Openstackclient needs to have a capability to manage federated protocols
(like saml2, openid connect, abfab). This patch allows users to
administrate such operations from the commandline.

Change-Id: I59eef2acdda60c7ec795d1bfe31e8e960b4478a1
Implements: bp/add-openstackclient-federation-crud