Hi, I am trying to establish a connection to openstack cloud . I am able to establish a connection with the following statement from openstack import connectionconn = connection.Connection(auth_url="http://192.168.0.19:5000/v3", project_name="admin",username="admin", password="6908a8d218f843dd", user_domain_id="default", project_domain_id="default")
I am looking for exact Connection api argument match in below connection.py file. Also, i am looking for api to access the object store(list out files,creating backup) and network(creating subnet). I am able to create duplicate subnet in network. It doesn't prompt out any error. Thanks,Jayshankar # Licensed under the Apache License, Version 2.0 (the "License"); you mayb# not use this file except in compliance with the License. You may obtain# a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the# License for the specific language governing permissions and limitations# under the License. """The :class:`~openstack.connection.Connection` class is the primary interfaceto the Python SDK. It maintains a context for a connection to a region ofa cloud provider. The :class:`~openstack.connection.Connection` has anattribute to access each OpenStack service. At a minimum, the :class:`~openstack.connection.Connection` class needs to becreated with a config or the parameters to build one. While the overall system is very flexible, there are four main use casesfor different ways to create a :class:`~openstack.connection.Connection`. * Using config settings and keyword arguments as described in :ref:`openstack-config`* Using only keyword arguments passed to the constructor ignoring config files and environment variables.* Using an existing authenticated `keystoneauth1.session.Session`, such as might exist inside of an OpenStack service operational context.* Using an existing :class:`~openstack.config.cloud_region.CloudRegion`. Using config settings--------------------- For users who want to create a :class:`~openstack.connection.Connection` makinguse of named clouds in ``clouds.yaml`` files, ``OS_`` environment variablesand python keyword arguments, the :func:`openstack.connect` factory functionis the recommended way to go: .. code-block:: python import openstack conn = openstack.connect(cloud='example', region_name='earth1') If the application in question is a command line application that should alsoaccept command line arguments, an `argparse.Namespace` can be passed to:func:`openstack.connect` that will have relevant arguments added to it andthen subsequently consumed by the construtor: .. code-block:: python import argparse import openstack options = argparse.ArgumentParser(description='Awesome OpenStack App') conn = openstack.connect(options=options) Using Only Keyword Arguments---------------------------- If the application wants to avoid loading any settings from ``clouds.yaml`` orenvironment variables, use the :class:`~openstack.connection.Connection`constructor directly. As long as the ``cloud`` argument is omitted or ``None``,the :class:`~openstack.connection.Connection` constructor will not loadsettings from files or the environment. .. note:: This is a different default behavior than the :func:`~openstack.connect` factory function. In :func:`~openstack.connect` if ``cloud`` is omitted or ``None``, a default cloud will be loaded, defaulting to the ``envvars`` cloud if it exists. .. code-block:: python from openstack import connection conn = connection.Connection( region_name='example-region', auth=dict( auth_url='https://auth.example.com', username='amazing-user', password='super-secret-password', project_id='33aa1afc-03fe-43b8-8201-4e0d3b4b8ab5', user_domain_id='054abd68-9ad9-418b-96d3-3437bb376703'), compute_api_version='2', identity_interface='internal') Per-service settings as needed by `keystoneauth1.adapter.Adapter` such as``api_version``, ``service_name``, and ``interface`` can be set, as seenabove, by prefixing them with the official ``service-type`` name of theservice. ``region_name`` is a setting for the entire:class:`~openstack.config.cloud_region.CloudRegion` and cannot be set perservice. From existing authenticated Session----------------------------------- For applications that already have an authenticated Session, simply passingit to the :class:`~openstack.connection.Connection` constructor is all thatis needed: .. code-block:: python from openstack import connection conn = connection.Connection( session=session, region_name='example-region', compute_api_version='2', identity_interface='internal') From existing CloudRegion------------------------- If you already have an :class:`~openstack.config.cloud_region.CloudRegion`you can pass it in instead: .. code-block:: python from openstack import connection import openstack.config config = openstack.config.get_cloud_region( cloud='example', region_name='earth') conn = connection.Connection(config=config) Using the Connection-------------------- Services are accessed through an attribute named after the service's officialservice-type. List~~~~ An iterator containing a list of all the projects is retrieved in this manner: .. code-block:: python projects = conn.identity.projects() Find or create~~~~~~~~~~~~~~ If you wanted to make sure you had a network named 'zuul', you would firsttry to find it and if that fails, you would create it:: network = conn.network.find_network("zuul") if network is None: network = conn.network.create_network(name="zuul") Additional information about the services can be found in the:ref:`service-proxies` documentation."""__all__ = [ 'from_config', 'Connection',] import warnings import keystoneauth1.exceptionsimport requestsexceptionsimport six from openstack import _logfrom openstack import _metafrom openstack import config as _configfrom openstack.config import cloud_regionfrom openstack import exceptionsfrom openstack import service_descriptionfrom openstack import task_manager if requestsexceptions.SubjectAltNameWarning: warnings.filterwarnings( 'ignore', category=requestsexceptions.SubjectAltNameWarning) _logger = _log.setup_logging('openstack') def from_config(cloud=None, config=None, options=None, **kwargs): """Create a Connection using openstack.config :param str cloud: Use the `cloud` configuration details when creating the Connection. :param openstack.config.cloud_region.CloudRegion config: An existing CloudRegion configuration. If no `config` is provided, `openstack.config.OpenStackConfig` will be called, and the provided `name` will be used in determining which cloud's configuration details will be used in creation of the `Connection` instance. :param argparse.Namespace options: Allows direct passing in of options to be added to the cloud config. This does not have to be an actual instance of argparse.Namespace, despite the naming of the the `openstack.config.loader.OpenStackConfig.get_one` argument to which it is passed. :rtype: :class:`~openstack.connection.Connection` """ # TODO(mordred) Backwards compat while we transition cloud = kwargs.pop('cloud_name', cloud) config = kwargs.pop('cloud_config', config) if config is None: config = _config.OpenStackConfig().get_one( cloud=cloud, argparse=options, **kwargs) return Connection(config=config) class Connection(six.with_metaclass(_meta.ConnectionMeta)): def __init__(self, cloud=None, config=None, session=None, app_name=None, app_version=None, # TODO(shade) Remove these once we've shifted # python-openstackclient to not use the profile interface. authenticator=None, profile=None, extra_services=None, **kwargs): """Create a connection to a cloud. A connection needs information about how to connect, how to authenticate and how to select the appropriate services to use. The recommended way to provide this information is by referencing a named cloud config from an existing `clouds.yaml` file. The cloud name ``envvars`` may be used to consume a cloud configured via ``OS_`` environment variables. A pre-existing :class:`~openstack.config.cloud_region.CloudRegion` object can be passed in lieu of a cloud name, for cases where the user already has a fully formed CloudRegion and just wants to use it. Similarly, if for some reason the user already has a :class:`~keystoneauth1.session.Session` and wants to use it, it may be passed in. :param str cloud: Name of the cloud from config to use. :param config: CloudRegion object representing the config for the region of the cloud in question. :type config: :class:`~openstack.config.cloud_region.CloudRegion` :param session: A session object compatible with :class:`~keystoneauth1.session.Session`. :type session: :class:`~keystoneauth1.session.Session` :param str app_name: Name of the application to be added to User Agent. :param str app_version: Version of the application to be added to User Agent. :param authenticator: DEPRECATED. Only exists for short-term backwards compatibility for python-openstackclient while we transition. See :doc:`transition_from_profile` for details. :param profile: DEPRECATED. Only exists for short-term backwards compatibility for python-openstackclient while we transition. See :doc:`transition_from_profile` for details. :param extra_services: List of :class:`~openstack.service_description.ServiceDescription` objects describing services that openstacksdk otherwise does not know about. :param kwargs: If a config is not provided, the rest of the parameters provided are assumed to be arguments to be passed to the CloudRegion contructor. """ self.config = config self._extra_services = {} if extra_services: for service in extra_services: self._extra_services[service.service_type] = service if not self.config: if profile: import openstack.profile # TODO(shade) Remove this once we've shifted # python-openstackclient to not use the profile interface. self.config = openstack.profile._get_config_from_profile( profile, authenticator, **kwargs) elif session: self.config = cloud_region.from_session( session=session, app_name=app_name, app_version=app_version, load_yaml_config=False, load_envvars=False, **kwargs) else: self.config = _config.get_cloud_region( cloud=cloud, app_name=app_name, app_version=app_version, load_yaml_config=cloud is not None, load_envvars=cloud is not None, **kwargs) if self.config.name: tm_name = ':'.join([ self.config.name, self.config.region_name or 'unknown']) else: tm_name = self.config.region_name or 'unknown' self.task_manager = task_manager.TaskManager(name=tm_name) if session: # TODO(mordred) Expose constructor option for this in OCC self.config._keystone_session = session self.session = self.config.get_session() # Hide a reference to the connection on the session to help with # backwards compatibility for folks trying to just pass conn.session # to a Resource method's session argument. self.session._sdk_connection = self self._proxies = {} def add_service(self, service): """Add a service to the Connection. Attaches an instance of the :class:`~openstack.proxy.BaseProxy` class contained in :class:`~openstack.service_description.ServiceDescription`. The :class:`~openstack.proxy.BaseProxy` will be attached to the `Connection` by its ``service_type`` and by any ``aliases`` that may be specified. :param openstack.service_description.ServiceDescription service: Object describing the service to be attached. As a convenience, if ``service`` is a string it will be treated as a ``service_type`` and a basic :class:`~openstack.service_description.ServiceDescription` will be created. """ # If we don't have a proxy, just instantiate BaseProxy so that # we get an adapter. if isinstance(service, six.string_types): service = service_description.ServiceDescription(service) # Register the proxy class with every known alias for attr_name in service.all_types: setattr(self, attr_name.replace('-', '_'), service) def authorize(self): """Authorize this Connection .. note:: This method is optional. When an application makes a call to any OpenStack service, this method allows you to request a token manually before attempting to do anything else. :returns: A string token. :raises: :class:`~openstack.exceptions.HttpException` if the authorization fails due to reasons like the credentials provided are unable to be authorized or the `auth_type` argument is missing, etc. """ try: return self.session.get_token() except keystoneauth1.exceptions.ClientException as e: raise exceptions.raise_from_response(e.response) -----------------------------------------------------------------------------------------------------------I am looking for the corresponding api with exact arguments in openstack connection.py file(attached below). Also i am looking for api to accesrs object store(list out files in object store,size of object store,other features of object store) and network(creating network). Also i am able to c---------------------------------------------------------------------------------------------------------------------------connection.py# Licensed under the Apache License, Version 2.0 (the "License"); you may# not use this file except in compliance with the License. You may obtain# a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the# License for the specific language governing permissions and limitations# under the License. """The :class:`~openstack.connection.Connection` class is the primary interfaceto the Python SDK. It maintains a context for a connection to a region ofa cloud provider. The :class:`~openstack.connection.Connection` has anattribute to access each OpenStack service. At a minimum, the :class:`~openstack.connection.Connection` class needs to becreated with a config or the parameters to build one. While the overall system is very flexible, there are four main use casesfor different ways to create a :class:`~openstack.connection.Connection`. * Using config settings and keyword arguments as described in :ref:`openstack-config`* Using only keyword arguments passed to the constructor ignoring config files and environment variables.* Using an existing authenticated `keystoneauth1.session.Session`, such as might exist inside of an OpenStack service operational context.* Using an existing :class:`~openstack.config.cloud_region.CloudRegion`. Using config settings--------------------- For users who want to create a :class:`~openstack.connection.Connection` makinguse of named clouds in ``clouds.yaml`` files, ``OS_`` environment variablesand python keyword arguments, the :func:`openstack.connect` factory functionis the recommended way to go: .. code-block:: python import openstack conn = openstack.connect(cloud='example', region_name='earth1') If the application in question is a command line application that should alsoaccept command line arguments, an `argparse.Namespace` can be passed to:func:`openstack.connect` that will have relevant arguments added to it andthen subsequently consumed by the construtor: .. code-block:: python import argparse import openstack options = argparse.ArgumentParser(description='Awesome OpenStack App') conn = openstack.connect(options=options) Using Only Keyword Arguments---------------------------- If the application wants to avoid loading any settings from ``clouds.yaml`` orenvironment variables, use the :class:`~openstack.connection.Connection`constructor directly. As long as the ``cloud`` argument is omitted or ``None``,the :class:`~openstack.connection.Connection` constructor will not loadsettings from files or the environment. .. note:: This is a different default behavior than the :func:`~openstack.connect` factory function. In :func:`~openstack.connect` if ``cloud`` is omitted or ``None``, a default cloud will be loaded, defaulting to the ``envvars`` cloud if it exists. .. code-block:: python from openstack import connection conn = connection.Connection( region_name='example-region', auth=dict( auth_url='https://auth.example.com', username='amazing-user', password='super-secret-password', project_id='33aa1afc-03fe-43b8-8201-4e0d3b4b8ab5', user_domain_id='054abd68-9ad9-418b-96d3-3437bb376703'), compute_api_version='2', identity_interface='internal') Per-service settings as needed by `keystoneauth1.adapter.Adapter` such as``api_version``, ``service_name``, and ``interface`` can be set, as seenabove, by prefixing them with the official ``service-type`` name of theservice. ``region_name`` is a setting for the entire:class:`~openstack.config.cloud_region.CloudRegion` and cannot be set perservice. From existing authenticated Session----------------------------------- For applications that already have an authenticated Session, simply passingit to the :class:`~openstack.connection.Connection` constructor is all thatis needed: .. code-block:: python from openstack import connection conn = connection.Connection( session=session, region_name='example-region', compute_api_version='2', identity_interface='internal') From existing CloudRegion------------------------- If you already have an :class:`~openstack.config.cloud_region.CloudRegion`you can pass it in instead: .. code-block:: python from openstack import connection import openstack.config config = openstack.config.get_cloud_region( cloud='example', region_name='earth') conn = connection.Connection(config=config) Using the Connection-------------------- Services are accessed through an attribute named after the service's officialservice-type. List~~~~ An iterator containing a list of all the projects is retrieved in this manner: .. code-block:: python projects = conn.identity.projects() Find or create~~~~~~~~~~~~~~ If you wanted to make sure you had a network named 'zuul', you would firsttry to find it and if that fails, you would create it:: network = conn.network.find_network("zuul") if network is None: network = conn.network.create_network(name="zuul") Additional information about the services can be found in the:ref:`service-proxies` documentation."""__all__ = [ 'from_config', 'Connection',] import warnings import keystoneauth1.exceptionsimport requestsexceptionsimport six from openstack import _logfrom openstack import _metafrom openstack import config as _configfrom openstack.config import cloud_regionfrom openstack import exceptionsfrom openstack import service_descriptionfrom openstack import task_manager if requestsexceptions.SubjectAltNameWarning: warnings.filterwarnings( 'ignore', category=requestsexceptions.SubjectAltNameWarning) _logger = _log.setup_logging('openstack') def from_config(cloud=None, config=None, options=None, **kwargs): """Create a Connection using openstack.config :param str cloud: Use the `cloud` configuration details when creating the Connection. :param openstack.config.cloud_region.CloudRegion config: An existing CloudRegion configuration. If no `config` is provided, `openstack.config.OpenStackConfig` will be called, and the provided `name` will be used in determining which cloud's configuration details will be used in creation of the `Connection` instance. :param argparse.Namespace options: Allows direct passing in of options to be added to the cloud config. This does not have to be an actual instance of argparse.Namespace, despite the naming of the the `openstack.config.loader.OpenStackConfig.get_one` argument to which it is passed. :rtype: :class:`~openstack.connection.Connection` """ # TODO(mordred) Backwards compat while we transition cloud = kwargs.pop('cloud_name', cloud) config = kwargs.pop('cloud_config', config) if config is None: config = _config.OpenStackConfig().get_one( cloud=cloud, argparse=options, **kwargs) return Connection(config=config) class Connection(six.with_metaclass(_meta.ConnectionMeta)): def __init__(self, cloud=None, config=None, session=None, app_name=None, app_version=None, # TODO(shade) Remove these once we've shifted # python-openstackclient to not use the profile interface. authenticator=None, profile=None, extra_services=None, **kwargs): """Create a connection to a cloud. A connection needs information about how to connect, how to authenticate and how to select the appropriate services to use. The recommended way to provide this information is by referencing a named cloud config from an existing `clouds.yaml` file. The cloud name ``envvars`` may be used to consume a cloud configured via ``OS_`` environment variables. A pre-existing :class:`~openstack.config.cloud_region.CloudRegion` object can be passed in lieu of a cloud name, for cases where the user already has a fully formed CloudRegion and just wants to use it. Similarly, if for some reason the user already has a :class:`~keystoneauth1.session.Session` and wants to use it, it may be passed in. :param str cloud: Name of the cloud from config to use. :param config: CloudRegion object representing the config for the region of the cloud in question. :type config: :class:`~openstack.config.cloud_region.CloudRegion` :param session: A session object compatible with :class:`~keystoneauth1.session.Session`. :type session: :class:`~keystoneauth1.session.Session` :param str app_name: Name of the application to be added to User Agent. :param str app_version: Version of the application to be added to User Agent. :param authenticator: DEPRECATED. Only exists for short-term backwards compatibility for python-openstackclient while we transition. See :doc:`transition_from_profile` for details. :param profile: DEPRECATED. Only exists for short-term backwards compatibility for python-openstackclient while we transition. See :doc:`transition_from_profile` for details. :param extra_services: List of :class:`~openstack.service_description.ServiceDescription` objects describing services that openstacksdk otherwise does not know about. :param kwargs: If a config is not provided, the rest of the parameters provided are assumed to be arguments to be passed to the CloudRegion contructor. """ self.config = config self._extra_services = {} if extra_services: for service in extra_services: self._extra_services[service.service_type] = service if not self.config: if profile: import openstack.profile # TODO(shade) Remove this once we've shifted # python-openstackclient to not use the profile interface. self.config = openstack.profile._get_config_from_profile( profile, authenticator, **kwargs) elif session: self.config = cloud_region.from_session( session=session, app_name=app_name, app_version=app_version, load_yaml_config=False, load_envvars=False, **kwargs) else: self.config = _config.get_cloud_region( cloud=cloud, app_name=app_name, app_version=app_version, load_yaml_config=cloud is not None, load_envvars=cloud is not None, **kwargs) if self.config.name: tm_name = ':'.join([ self.config.name, self.config.region_name or 'unknown']) else: tm_name = self.config.region_name or 'unknown' self.task_manager = task_manager.TaskManager(name=tm_name) if session: # TODO(mordred) Expose constructor option for this in OCC self.config._keystone_session = session self.session = self.config.get_session() # Hide a reference to the connection on the session to help with # backwards compatibility for folks trying to just pass conn.session # to a Resource method's session argument. self.session._sdk_connection = self self._proxies = {} def add_service(self, service): """Add a service to the Connection. Attaches an instance of the :class:`~openstack.proxy.BaseProxy` class contained in :class:`~openstack.service_description.ServiceDescription`. The :class:`~openstack.proxy.BaseProxy` will be attached to the `Connection` by its ``service_type`` and by any ``aliases`` that may be specified. :param openstack.service_description.ServiceDescription service: Object describing the service to be attached. As a convenience, if ``service`` is a string it will be treated as a ``service_type`` and a basic :class:`~openstack.service_description.ServiceDescription` will be created. """ # If we don't have a proxy, just instantiate BaseProxy so that # we get an adapter. if isinstance(service, six.string_types): service = service_description.ServiceDescription(service) # Register the proxy class with every known alias for attr_name in service.all_types: setattr(self, attr_name.replace('-', '_'), service) def authorize(self): """Authorize this Connection .. note:: This method is optional. When an application makes a call to any OpenStack service, this method allows you to request a token manually before attempting to do anything else. :returns: A string token. :raises: :class:`~openstack.exceptions.HttpException` if the authorization fails due to reasons like the credentials provided are unable to be authorized or the `auth_type` argument is missing, etc. """ try: return self.session.get_token() except keystoneauth1.exceptions.ClientException as e: raise exceptions.raise_from_response(e.response) ------------------------------------------------------------------------------------------ | | Virus-free. www.avast.com | -- https://mail.python.org/mailman/listinfo/python-list