def run(opts):
    """Run the examples"""

    # Look for configuration file
    # To support token-flow we have no required values
    # print "options: %s" % self.options
    cloud = cloud_config.OpenStackConfig().get_one_cloud(
        cloud=opts.cloud,
        argparse=opts,
    )
    LOG.debug("cloud cfg: %s", cloud.config)

    # Set up certificate verification and CA bundle
    # NOTE(dtroyer): This converts from the usual OpenStack way to the single
    #                requests argument and is an app-specific thing because
    #                we want to be like OpenStackClient.
    if opts.cacert:
        verify = opts.cacert
    else:
        verify = not opts.insecure

    # get a session
    # common.make_session() does all the ugly work of mapping
    # CLI options/env vars to the required plugin arguments.
    # The returned session will have a configured auth object
    # based on the selected plugin's available options.
    # So to do...oh, just go to api.auth.py and look at what it does.
    session = common.make_session(cloud, verify=verify)

    # Extract an endpoint
    auth_ref = session.auth.get_auth_ref(session)

    if opts.url:
        endpoint = opts.url
    else:
        endpoint = auth_ref.service_catalog.url_for(
            service_type='object-store',
            endpoint_type='public',
        )

    # At this point we have a working session with a configured authentication
    # plugin.  From here on it is the app making the decisions.  Need to
    # talk to two clouds?  Go back and make another session but with opts
    # set to different credentials.  Or use a config file and load it
    # directly into the plugin.  This example doesn't show that (yet).
    # Want to work ahead?  Look into the plugin load_from_*() methods
    # (start in keystoneclient/auth/base.py).

    # This example is for the Object Store API so make one
    obj_api = object_store.APIv1(
        session=session,
        service_type='object-store',
        endpoint=endpoint,
    )

    # Do useful things with it

    c_list = obj_api.container_list()
    print("Name\tCount\tBytes")
    for c in c_list:
        print("%s\t%d\t%d" % (c['name'], c['count'], c['bytes']))

    if 0 > len(c_list):
        # See what is in the first container
        o_list = obj_api.object_list(c_list[0]['name'])
        print("\nObject")
        for o in o_list:
            print("%s" % o)
dataset/ETHPy150Open dtroyer/python-openstackclient/examples/object_api.py/run/swapped operands of `>`