diff --git a/.gitignore b/.gitignore index d6f1cdbc63..a8d9f3d69d 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,3 @@ build ChangeLog dist doc/build -openstackclient/versioninfo diff --git a/MANIFEST.in b/MANIFEST.in index a7f747b848..fd87b80fdf 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,7 +1,6 @@ include AUTHORS include ChangeLog include LICENSE -include openstackclient/versioninfo include README.rst recursive-include doc * diff --git a/openstack-common.conf b/openstack-common.conf index b99037bb3a..58c0dee0ef 100644 --- a/openstack-common.conf +++ b/openstack-common.conf @@ -1,7 +1,7 @@ [DEFAULT] # The list of modules to copy from openstack-common -modules=cfg,iniparser,install_venv_common,openstackkeyring,setup +modules=cfg,iniparser,install_venv_common,openstackkeyring # The base module to hold the copy of openstack.common base=openstackclient diff --git a/openstackclient/openstack/common/setup.py b/openstackclient/openstack/common/setup.py deleted file mode 100644 index fb187fff46..0000000000 --- a/openstackclient/openstack/common/setup.py +++ /dev/null @@ -1,335 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright 2011 OpenStack LLC. -# Copyright 2012-2013 Hewlett-Packard Development Company, L.P. -# All Rights Reserved. -# -# 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. - -""" -Utilities with minimum-depends for use in setup.py -""" - -import email -import os -import re -import subprocess -import sys - -from setuptools.command import sdist - - -def parse_mailmap(mailmap='.mailmap'): - mapping = {} - if os.path.exists(mailmap): - with open(mailmap, 'r') as fp: - for l in fp: - try: - canonical_email, alias = re.match( - r'[^#]*?(<.+>).*(<.+>).*', l).groups() - except AttributeError: - continue - mapping[alias] = canonical_email - return mapping - - -def canonicalize_emails(changelog, mapping): - """Takes in a string and an email alias mapping and replaces all - instances of the aliases in the string with their real email. - """ - for alias, email_address in mapping.iteritems(): - changelog = changelog.replace(alias, email_address) - return changelog - - -# Get requirements from the first file that exists -def get_reqs_from_files(requirements_files): - for requirements_file in requirements_files: - if os.path.exists(requirements_file): - with open(requirements_file, 'r') as fil: - return fil.read().split('\n') - return [] - - -def parse_requirements(requirements_files=['requirements.txt', - 'tools/pip-requires']): - requirements = [] - for line in get_reqs_from_files(requirements_files): - # For the requirements list, we need to inject only the portion - # after egg= so that distutils knows the package it's looking for - # such as: - # -e git://github.com/openstack/nova/master#egg=nova - if re.match(r'\s*-e\s+', line): - requirements.append(re.sub(r'\s*-e\s+.*#egg=(.*)$', r'\1', - line)) - # such as: - # http://github.com/openstack/nova/zipball/master#egg=nova - elif re.match(r'\s*https?:', line): - requirements.append(re.sub(r'\s*https?:.*#egg=(.*)$', r'\1', - line)) - # -f lines are for index locations, and don't get used here - elif re.match(r'\s*-f\s+', line): - pass - # argparse is part of the standard library starting with 2.7 - # adding it to the requirements list screws distro installs - elif line == 'argparse' and sys.version_info >= (2, 7): - pass - else: - requirements.append(line) - - return requirements - - -def parse_dependency_links(requirements_files=['requirements.txt', - 'tools/pip-requires']): - dependency_links = [] - # dependency_links inject alternate locations to find packages listed - # in requirements - for line in get_reqs_from_files(requirements_files): - # skip comments and blank lines - if re.match(r'(\s*#)|(\s*$)', line): - continue - # lines with -e or -f need the whole line, minus the flag - if re.match(r'\s*-[ef]\s+', line): - dependency_links.append(re.sub(r'\s*-[ef]\s+', '', line)) - # lines that are only urls can go in unmolested - elif re.match(r'\s*https?:', line): - dependency_links.append(line) - return dependency_links - - -def _run_shell_command(cmd, throw_on_error=False): - if os.name == 'nt': - output = subprocess.Popen(["cmd.exe", "/C", cmd], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - else: - output = subprocess.Popen(["/bin/sh", "-c", cmd], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - if output.returncode and throw_on_error: - raise Exception("%s returned %d" % cmd, output.returncode) - out = output.communicate() - if len(out) == 0: - return None - if len(out[0].strip()) == 0: - return None - return out[0].strip() - - -def write_git_changelog(): - """Write a changelog based on the git changelog.""" - new_changelog = 'ChangeLog' - if not os.getenv('SKIP_WRITE_GIT_CHANGELOG'): - if os.path.isdir('.git'): - git_log_cmd = 'git log --stat' - changelog = _run_shell_command(git_log_cmd) - mailmap = parse_mailmap() - with open(new_changelog, "w") as changelog_file: - changelog_file.write(canonicalize_emails(changelog, mailmap)) - else: - open(new_changelog, 'w').close() - - -def generate_authors(): - """Create AUTHORS file using git commits.""" - jenkins_email = 'jenkins@review.(openstack|stackforge).org' - old_authors = 'AUTHORS.in' - new_authors = 'AUTHORS' - if not os.getenv('SKIP_GENERATE_AUTHORS'): - if os.path.isdir('.git'): - # don't include jenkins email address in AUTHORS file - git_log_cmd = ("git log --format='%aN <%aE>' | sort -u | " - "egrep -v '" + jenkins_email + "'") - changelog = _run_shell_command(git_log_cmd) - mailmap = parse_mailmap() - with open(new_authors, 'w') as new_authors_fh: - new_authors_fh.write(canonicalize_emails(changelog, mailmap)) - if os.path.exists(old_authors): - with open(old_authors, "r") as old_authors_fh: - new_authors_fh.write('\n' + old_authors_fh.read()) - else: - open(new_authors, 'w').close() - - -_rst_template = """%(heading)s -%(underline)s - -.. automodule:: %(module)s - :members: - :undoc-members: - :show-inheritance: -""" - - -def get_cmdclass(): - """Return dict of commands to run from setup.py.""" - - cmdclass = dict() - - def _find_modules(arg, dirname, files): - for filename in files: - if filename.endswith('.py') and filename != '__init__.py': - arg["%s.%s" % (dirname.replace('/', '.'), - filename[:-3])] = True - - class LocalSDist(sdist.sdist): - """Builds the ChangeLog and Authors files from VC first.""" - - def run(self): - write_git_changelog() - generate_authors() - # sdist.sdist is an old style class, can't use super() - sdist.sdist.run(self) - - cmdclass['sdist'] = LocalSDist - - # If Sphinx is installed on the box running setup.py, - # enable setup.py to build the documentation, otherwise, - # just ignore it - try: - from sphinx.setup_command import BuildDoc - - class LocalBuildDoc(BuildDoc): - - builders = ['html', 'man'] - - def generate_autoindex(self): - print "**Autodocumenting from %s" % os.path.abspath(os.curdir) - modules = {} - option_dict = self.distribution.get_option_dict('build_sphinx') - source_dir = os.path.join(option_dict['source_dir'][1], 'api') - if not os.path.exists(source_dir): - os.makedirs(source_dir) - for pkg in self.distribution.packages: - if '.' not in pkg: - os.path.walk(pkg, _find_modules, modules) - module_list = modules.keys() - module_list.sort() - autoindex_filename = os.path.join(source_dir, 'autoindex.rst') - with open(autoindex_filename, 'w') as autoindex: - autoindex.write(""".. toctree:: - :maxdepth: 1 - -""") - for module in module_list: - output_filename = os.path.join(source_dir, - "%s.rst" % module) - heading = "The :mod:`%s` Module" % module - underline = "=" * len(heading) - values = dict(module=module, heading=heading, - underline=underline) - - print "Generating %s" % output_filename - with open(output_filename, 'w') as output_file: - output_file.write(_rst_template % values) - autoindex.write(" %s.rst\n" % module) - - def run(self): - if not os.getenv('SPHINX_DEBUG'): - self.generate_autoindex() - - for builder in self.builders: - self.builder = builder - self.finalize_options() - self.project = self.distribution.get_name() - self.version = self.distribution.get_version() - self.release = self.distribution.get_version() - BuildDoc.run(self) - - class LocalBuildLatex(LocalBuildDoc): - builders = ['latex'] - - cmdclass['build_sphinx'] = LocalBuildDoc - cmdclass['build_sphinx_latex'] = LocalBuildLatex - except ImportError: - pass - - return cmdclass - - -def _get_revno(): - """Return the number of commits since the most recent tag. - - We use git-describe to find this out, but if there are no - tags then we fall back to counting commits since the beginning - of time. - """ - describe = _run_shell_command("git describe --always") - if "-" in describe: - return describe.rsplit("-", 2)[-2] - - # no tags found - revlist = _run_shell_command("git rev-list --abbrev-commit HEAD") - return len(revlist.splitlines()) - - -def get_version_from_git(pre_version): - """Return a version which is equal to the tag that's on the current - revision if there is one, or tag plus number of additional revisions - if the current revision has no tag.""" - - if os.path.isdir('.git'): - if pre_version: - try: - return _run_shell_command( - "git describe --exact-match", - throw_on_error=True).replace('-', '.') - except Exception: - sha = _run_shell_command("git log -n1 --pretty=format:%h") - return "%s.a%s.g%s" % (pre_version, _get_revno(), sha) - else: - return _run_shell_command( - "git describe --always").replace('-', '.') - return None - - -def get_version_from_pkg_info(package_name): - """Get the version from PKG-INFO file if we can.""" - try: - pkg_info_file = open('PKG-INFO', 'r') - except (IOError, OSError): - return None - try: - pkg_info = email.message_from_file(pkg_info_file) - except email.MessageError: - return None - # Check to make sure we're in our own dir - if pkg_info.get('Name', None) != package_name: - return None - return pkg_info.get('Version', None) - - -def get_version(package_name, pre_version=None): - """Get the version of the project. First, try getting it from PKG-INFO, if - it exists. If it does, that means we're in a distribution tarball or that - install has happened. Otherwise, if there is no PKG-INFO file, pull the - version from git. - - We do not support setup.py version sanity in git archive tarballs, nor do - we support packagers directly sucking our git repo into theirs. We expect - that a source tarball be made from our git repo - or that if someone wants - to make a source tarball from a fork of our repo with additional tags in it - that they understand and desire the results of doing that. - """ - version = os.environ.get("OSLO_PACKAGE_VERSION", None) - if version: - return version - version = get_version_from_pkg_info(package_name) - if version: - return version - version = get_version_from_git(pre_version) - if version: - return version - raise Exception("Versioning for this project requires either an sdist" - " tarball, or access to an upstream git repository.") diff --git a/setup.cfg b/setup.cfg index 11c72013c2..1990b2c5a3 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,3 +1,207 @@ +[metadata] +name = python-openstackclient +summary = OpenStack Command-line Client +description-file = + README.rst +author = OpenStack +author-email = openstack-dev@lists.openstack.org +home-page = http://www.openstack.org/ +classifier = + Environment :: OpenStack + Intended Audience :: Information Technology + Intended Audience :: System Administrators + License :: OSI Approved :: Apache Software License + Operating System :: POSIX :: Linux + Programming Language :: Python + Programming Language :: Python :: 2 + Programming Language :: Python :: 2.7 + Programming Language :: Python :: 2.6 + +[files] +packages = + openstackclient + +[global] +setup-hooks = + pbr.hooks.setup_hook + +[entry_points] +console_scripts = + openstack = openstackclient.shell:main + +openstack.cli = + +openstack.identity.v3_0 = + endpoint_create = openstackclient.identity.v2_0.endpoint:CreateEndpoint + endpoint_delete = openstackclient.identity.v2_0.endpoint:DeleteEndpoint + endpoint_list = openstackclient.identity.v2_0.endpoint:ListEndpoint + endpoint_show = openstackclient.identity.v2_0.endpoint:ShowEndpoint + + role_add = openstackclient.identity.v2_0.role:AddRole + role_create = openstackclient.identity.v2_0.role:CreateRole + role_delete = openstackclient.identity.v2_0.role:DeleteRole + role_list =openstackclient.identity.v2_0.role:ListRole + role_remove = openstackclient.identity.v2_0.role:RemoveRole + role_show =openstackclient.identity.v2_0.role:ShowRole + + service_create = openstackclient.identity.v2_0.service:CreateService + service_delete = openstackclient.identity.v2_0.service:DeleteService + service_list =openstackclient.identity.v2_0.service:ListService + service_show =openstackclient.identity.v2_0.service:ShowService + + tenant_create = openstackclient.identity.v2_0.tenant:CreateTenant + tenant_delete = openstackclient.identity.v2_0.tenant:DeleteTenant + tenant_list = openstackclient.identity.v2_0.tenant:ListTenant + tenant_set = openstackclient.identity.v2_0.tenant:SetTenant + tenant_show = openstackclient.identity.v2_0.tenant:ShowTenant + + user_role_list = openstackclient.identity.v2_0.role:ListUserRole + + user_create = openstackclient.identity.v2_0.user:CreateUser + user_delete = openstackclient.identity.v2_0.user:DeleteUser + user_list = openstackclient.identity.v2_0.user:ListUser + user_set = openstackclient.identity.v2_0.user:SetUser + user_show = openstackclient.identity.v2_0.user:ShowUser + +openstack.identity.v3 = + credential_create = openstackclient.identity.v3.credential:CreateCredential + credential_delete = openstackclient.identity.v3.credential:DeleteCredential + credential_list = openstackclient.identity.v3.credential:ListCredential + credential_set = openstackclient.identity.v3.credential:SetCredential + credential_show = openstackclient.identity.v3.credential:ShowCredential + + domain_create = openstackclient.identity.v3.domain:CreateDomain + domain_delete = openstackclient.identity.v3.domain:DeleteDomain + domain_list = openstackclient.identity.v3.domain:ListDomain + domain_set = openstackclient.identity.v3.domain:SetDomain + domain_show = openstackclient.identity.v3.domain:ShowDomain + + endpoint_create = openstackclient.identity.v3.endpoint:CreateEndpoint + endpoint_delete = openstackclient.identity.v3.endpoint:DeleteEndpoint + endpoint_set = openstackclient.identity.v3.endpoint:SetEndpoint + endpoint_show = openstackclient.identity.v3.endpoint:ShowEndpoint + endpoint_list = openstackclient.identity.v3.endpoint:ListEndpoint + + group_create = openstackclient.identity.v3.group:CreateGroup + group_delete = openstackclient.identity.v3.group:DeleteGroup + group_list = openstackclient.identity.v3.group:ListGroup + group_set = openstackclient.identity.v3.group:SetGroup + group_show = openstackclient.identity.v3.group:ShowGroup + + policy_create = openstackclient.identity.v3.policy:CreatePolicy + policy_delete = openstackclient.identity.v3.policy:DeletePolicy + policy_list = openstackclient.identity.v3.policy:ListPolicy + policy_set = openstackclient.identity.v3.policy:SetPolicy + policy_show = openstackclient.identity.v3.policy:ShowPolicy + + project_create = openstackclient.identity.v3.project:CreateProject + project_delete = openstackclient.identity.v3.project:DeleteProject + project_list = openstackclient.identity.v3.project:ListProject + project_set = openstackclient.identity.v3.project:SetProject + project_show = openstackclient.identity.v3.project:ShowProject + + role_add = openstackclient.identity.v3.role:AddRole + role_create = openstackclient.identity.v3.role:CreateRole + role_delete = openstackclient.identity.v3.role:DeleteRole + role_list = openstackclient.identity.v3.role:ListRole + role_show = openstackclient.identity.v3.role:ShowRole + role_set = openstackclient.identity.v3.role:SetRole + + service_create = openstackclient.identity.v3.service:CreateService + service_delete = openstackclient.identity.v3.service:DeleteService + service_list = openstackclient.identity.v3.service:ListService + service_show = openstackclient.identity.v3.service:ShowService + service_set = openstackclient.identity.v3.service:SetService + + user_create = openstackclient.identity.v3.user:CreateUser + user_delete = openstackclient.identity.v3.user:DeleteUser + user_list = openstackclient.identity.v3.user:ListUser + user_set = openstackclient.identity.v3.user:SetUser + user_show = openstackclient.identity.v3.user:ShowUser + +openstack.image.v1 = + image_create = openstackclient.image.v1.image:CreateImage + +openstack.image.v2 = + image_delete = openstackclient.image.v2.image:DeleteImage + image_list = openstackclient.image.v2.image:ListImage + image_save = openstackclient.image.v2.image:SaveImage + image_show = openstackclient.image.v2.image:ShowImage + +openstack.compute.v2 = + agent_create = openstackclient.compute.v2.agent:CreateAgent + agent_delete = openstackclient.compute.v2.agent:DeleteAgent + agent_list = openstackclient.compute.v2.agent:ListAgent + agent_set = openstackclient.compute.v2.agent:SetAgent + + compute_service_list = openstackclient.compute.v2.service:ListService + compute_service_set = openstackclient.compute.v2.service:SetService + + console_log_show = openstackclient.compute.v2.console:ShowConsoleLog + console_url_show = openstackclient.compute.v2.console:ShowConsoleURL + + ip_fixed_add = openstackclient.compute.v2.fixedip:AddFixedIP + ip_fixed_remove = openstackclient.compute.v2.fixedip:RemoveFixedIP + + flavor_create = openstackclient.compute.v2.flavor:CreateFlavor + flavor_delete = openstackclient.compute.v2.flavor:DeleteFlavor + flavor_list = openstackclient.compute.v2.flavor:ListFlavor + flavor_show = openstackclient.compute.v2.flavor:ShowFlavor + + ip_floating_add = openstackclient.compute.v2.floatingip:AddFloatingIP + ip_floating_create = openstackclient.compute.v2.floatingip:CreateFloatingIP + ip_floating_delete = openstackclient.compute.v2.floatingip:DeleteFloatingIP + ip_floating_list = openstackclient.compute.v2.floatingip:ListFloatingIP + ip_floating_remove = openstackclient.compute.v2.floatingip:RemoveFloatingIP + + ip_floating_pool_list = openstackclient.compute.v2.floatingippool:ListFloatingIPPool + + host_list = openstackclient.compute.v2.host:ListHost + host_show = openstackclient.compute.v2.host:ShowHost + + hypervisor_list = openstackclient.compute.v2.hypervisor:ListHypervisor + hypervisor_show = openstackclient.compute.v2.hypervisor:ShowHypervisor + + keypair_create = openstackclient.compute.v2.keypair:CreateKeypair + keypair_delete = openstackclient.compute.v2.keypair:DeleteKeypair + keypair_list = openstackclient.compute.v2.keypair:ListKeypair + keypair_show = openstackclient.compute.v2.keypair:ShowKeypair + + server_create = openstackclient.compute.v2.server:CreateServer + server_delete = openstackclient.compute.v2.server:DeleteServer + server_list = openstackclient.compute.v2.server:ListServer + server_pause = openstackclient.compute.v2.server:PauseServer + server_reboot = openstackclient.compute.v2.server:RebootServer + server_rebuild = openstackclient.compute.v2.server:RebuildServer + server_resume = openstackclient.compute.v2.server:ResumeServer + server_show = openstackclient.compute.v2.server:ShowServer + server_suspend = openstackclient.compute.v2.server:SuspendServer + server_unpause = openstackclient.compute.v2.server:UnpauseServer + +openstack.volume.v1 = + quota_list = openstackclient.volume.v1.quota:ListQuota + quota_set = openstackclient.volume.v1.quota:SetQuota + quota_show = openstackclient.volume.v1.quota:ShowQuota + + snapshot_create = openstackclient.volume.v1.snapshot:CreateSnapshot + snapshot_delete = openstackclient.volume.v1.snapshot:DeleteSnapshot + snapshot_list = openstackclient.volume.v1.snapshot:ListSnapshot + snapshot_set = openstackclient.volume.v1.snapshot:SetSnapshot + snapshot_show = openstackclient.volume.v1.snapshot:ShowSnapshot + + volume_create = openstackclient.volume.v1.volume:CreateVolume + volume_delete = openstackclient.volume.v1.volume:DeleteVolume + volume_list = openstackclient.volume.v1.volume:ListVolume + volume_set = openstackclient.volume.v1.volume:SetVolume + volume_show = openstackclient.volume.v1.volume:ShowVolume + volume_unset = openstackclient.volume.v1.volume:UnsetVolume + + volume_type_create = openstackclient.volume.v1.type:CreateVolumeType + volume_type_delete = openstackclient.volume.v1.type:DeleteVolumeType + volume_type_list = openstackclient.volume.v1.type:ListVolumeType + volume_type_set = openstackclient.volume.v1.type:SetVolumeType + volume_type_unset = openstackclient.volume.v1.type:UnsetVolumeType + [build_sphinx] source-dir = doc/source build-dir = doc/build diff --git a/setup.py b/setup.py index 9181fe5739..3144d17a05 100644 --- a/setup.py +++ b/setup.py @@ -1,280 +1,21 @@ -# Copyright 2012-2013 OpenStack, LLC. +#!/usr/bin/env python +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. # -# 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 +# 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 +# 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. -# - -import os +# 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. import setuptools -from openstackclient.openstack.common import setup - - -project = "python-openstackclient" -requires = setup.parse_requirements() -dependency_links = setup.parse_dependency_links() - - -def read(fname): - return open(os.path.join(os.path.dirname(__file__), fname)).read() - - setuptools.setup( - name=project, - version=setup.get_version(project), - description="OpenStack command-line client", - long_description=read('README.rst'), - url='https://github.com/openstack/python-openstackclient', - license="Apache License, Version 2.0", - author='OpenStack Client Contributors', - author_email='openstack@lists.launchpad.net', - packages=setuptools.find_packages(exclude=['tests', 'tests.*']), - classifiers=[ - 'Development Status :: 2 - Pre-Alpha', - 'Environment :: Console', - 'Environment :: OpenStack', - 'Intended Audience :: Developers', - 'Intended Audience :: Information Technology', - 'License :: OSI Approved :: Apache Software License', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - ], - install_requires=requires, - dependency_links=dependency_links, - cmdclass=setup.get_cmdclass(), - entry_points={ - 'console_scripts': ['openstack=openstackclient.shell:main'], - 'openstack.cli': [ - ], - 'openstack.identity.v3_0': [ - 'endpoint_create=' - 'openstackclient.identity.v2_0.endpoint:CreateEndpoint', - 'endpoint_delete=' - 'openstackclient.identity.v2_0.endpoint:DeleteEndpoint', - 'endpoint_list=' - 'openstackclient.identity.v2_0.endpoint:ListEndpoint', - 'endpoint_show=' - 'openstackclient.identity.v2_0.endpoint:ShowEndpoint', - - 'role_add=' - 'openstackclient.identity.v2_0.role:AddRole', - 'role_create=' - 'openstackclient.identity.v2_0.role:CreateRole', - 'role_delete=' - 'openstackclient.identity.v2_0.role:DeleteRole', - 'role_list=openstackclient.identity.v2_0.role:ListRole', - 'role_remove=' - 'openstackclient.identity.v2_0.role:RemoveRole', - 'role_show=openstackclient.identity.v2_0.role:ShowRole', - - 'service_create=' - 'openstackclient.identity.v2_0.service:CreateService', - 'service_delete=' - 'openstackclient.identity.v2_0.service:DeleteService', - 'service_list=openstackclient.identity.v2_0.service:ListService', - 'service_show=openstackclient.identity.v2_0.service:ShowService', - - 'tenant_create=' - 'openstackclient.identity.v2_0.tenant:CreateTenant', - 'tenant_delete=' - 'openstackclient.identity.v2_0.tenant:DeleteTenant', - 'tenant_list=openstackclient.identity.v2_0.tenant:ListTenant', - 'tenant_set=openstackclient.identity.v2_0.tenant:SetTenant', - 'tenant_show=openstackclient.identity.v2_0.tenant:ShowTenant', - - 'user_role_list=openstackclient.identity.v2_0.role:ListUserRole', - - 'user_create=' - 'openstackclient.identity.v2_0.user:CreateUser', - 'user_delete=' - 'openstackclient.identity.v2_0.user:DeleteUser', - 'user_list=openstackclient.identity.v2_0.user:ListUser', - 'user_set=openstackclient.identity.v2_0.user:SetUser', - 'user_show=openstackclient.identity.v2_0.user:ShowUser', - ], - 'openstack.identity.v3': [ - 'credential_create=' - 'openstackclient.identity.v3.credential:CreateCredential', - 'credential_delete=' - 'openstackclient.identity.v3.credential:DeleteCredential', - 'credential_list=' - 'openstackclient.identity.v3.credential:ListCredential', - 'credential_set=' - 'openstackclient.identity.v3.credential:SetCredential', - 'credential_show=' - 'openstackclient.identity.v3.credential:ShowCredential', - - 'domain_create=openstackclient.identity.v3.domain:CreateDomain', - 'domain_delete=openstackclient.identity.v3.domain:DeleteDomain', - 'domain_list=openstackclient.identity.v3.domain:ListDomain', - 'domain_set=openstackclient.identity.v3.domain:SetDomain', - 'domain_show=openstackclient.identity.v3.domain:ShowDomain', - - 'endpoint_create=' - 'openstackclient.identity.v3.endpoint:CreateEndpoint', - 'endpoint_delete=' - 'openstackclient.identity.v3.endpoint:DeleteEndpoint', - 'endpoint_set=openstackclient.identity.v3.endpoint:SetEndpoint', - 'endpoint_show=openstackclient.identity.v3.endpoint:ShowEndpoint', - 'endpoint_list=openstackclient.identity.v3.endpoint:ListEndpoint', - - 'group_create=openstackclient.identity.v3.group:CreateGroup', - 'group_delete=openstackclient.identity.v3.group:DeleteGroup', - 'group_list=openstackclient.identity.v3.group:ListGroup', - 'group_set=openstackclient.identity.v3.group:SetGroup', - 'group_show=openstackclient.identity.v3.group:ShowGroup', - - 'policy_create=openstackclient.identity.v3.policy:CreatePolicy', - 'policy_delete=openstackclient.identity.v3.policy:DeletePolicy', - 'policy_list=openstackclient.identity.v3.policy:ListPolicy', - 'policy_set=openstackclient.identity.v3.policy:SetPolicy', - 'policy_show=openstackclient.identity.v3.policy:ShowPolicy', - - 'project_create=' - 'openstackclient.identity.v3.project:CreateProject', - 'project_delete=' - 'openstackclient.identity.v3.project:DeleteProject', - 'project_list=openstackclient.identity.v3.project:ListProject', - 'project_set=openstackclient.identity.v3.project:SetProject', - 'project_show=openstackclient.identity.v3.project:ShowProject', - - 'role_add=openstackclient.identity.v3.role:AddRole', - 'role_create=' - 'openstackclient.identity.v3.role:CreateRole', - 'role_delete=' - 'openstackclient.identity.v3.role:DeleteRole', - 'role_list=openstackclient.identity.v3.role:ListRole', - 'role_show=openstackclient.identity.v3.role:ShowRole', - 'role_set=openstackclient.identity.v3.role:SetRole', - - 'service_create=' - 'openstackclient.identity.v3.service:CreateService', - 'service_delete=' - 'openstackclient.identity.v3.service:DeleteService', - 'service_list=openstackclient.identity.v3.service:ListService', - 'service_show=openstackclient.identity.v3.service:ShowService', - 'service_set=openstackclient.identity.v3.service:SetService', - - 'user_create=' - 'openstackclient.identity.v3.user:CreateUser', - 'user_delete=' - 'openstackclient.identity.v3.user:DeleteUser', - 'user_list=openstackclient.identity.v3.user:ListUser', - 'user_set=openstackclient.identity.v3.user:SetUser', - 'user_show=openstackclient.identity.v3.user:ShowUser', - ], - 'openstack.image.v1': [ - 'image_create=openstackclient.image.v1.image:CreateImage', - ], - 'openstack.image.v2': [ - 'image_delete=openstackclient.image.v2.image:DeleteImage', - 'image_list=openstackclient.image.v2.image:ListImage', - 'image_save=openstackclient.image.v2.image:SaveImage', - 'image_show=openstackclient.image.v2.image:ShowImage', - ], - 'openstack.compute.v2': [ - 'agent_create=openstackclient.compute.v2.agent:CreateAgent', - 'agent_delete=openstackclient.compute.v2.agent:DeleteAgent', - 'agent_list=openstackclient.compute.v2.agent:ListAgent', - 'agent_set=openstackclient.compute.v2.agent:SetAgent', - - 'compute_service_list=' - 'openstackclient.compute.v2.service:ListService', - 'compute_service_set=' - 'openstackclient.compute.v2.service:SetService', - - 'console_log_show=' - 'openstackclient.compute.v2.console:ShowConsoleLog', - 'console_url_show=' - 'openstackclient.compute.v2.console:ShowConsoleURL', - - 'ip_fixed_add=openstackclient.compute.v2.fixedip:AddFixedIP', - 'ip_fixed_remove=openstackclient.compute.v2.fixedip:RemoveFixedIP', - - 'flavor_create=openstackclient.compute.v2.flavor:CreateFlavor', - 'flavor_delete=openstackclient.compute.v2.flavor:DeleteFlavor', - 'flavor_list=openstackclient.compute.v2.flavor:ListFlavor', - 'flavor_show=openstackclient.compute.v2.flavor:ShowFlavor', - - 'ip_floating_add=' - 'openstackclient.compute.v2.floatingip:AddFloatingIP', - 'ip_floating_create=' - 'openstackclient.compute.v2.floatingip:CreateFloatingIP', - 'ip_floating_delete=' - 'openstackclient.compute.v2.floatingip:DeleteFloatingIP', - 'ip_floating_list=' - 'openstackclient.compute.v2.floatingip:ListFloatingIP', - 'ip_floating_remove=' - 'openstackclient.compute.v2.floatingip:RemoveFloatingIP', - - 'ip_floating_pool_list=' - 'openstackclient.compute.v2.floatingippool:ListFloatingIPPool', - - 'host_list=openstackclient.compute.v2.host:ListHost', - 'host_show=openstackclient.compute.v2.host:ShowHost', - - 'hypervisor_list=' - 'openstackclient.compute.v2.hypervisor:ListHypervisor', - 'hypervisor_show=' - 'openstackclient.compute.v2.hypervisor:ShowHypervisor', - - 'keypair_create=' - 'openstackclient.compute.v2.keypair:CreateKeypair', - 'keypair_delete=' - 'openstackclient.compute.v2.keypair:DeleteKeypair', - 'keypair_list=' - 'openstackclient.compute.v2.keypair:ListKeypair', - 'keypair_show=' - 'openstackclient.compute.v2.keypair:ShowKeypair', - - 'server_create=openstackclient.compute.v2.server:CreateServer', - 'server_delete=openstackclient.compute.v2.server:DeleteServer', - 'server_list=openstackclient.compute.v2.server:ListServer', - 'server_pause=openstackclient.compute.v2.server:PauseServer', - 'server_reboot=openstackclient.compute.v2.server:RebootServer', - 'server_rebuild=openstackclient.compute.v2.server:RebuildServer', - 'server_resume=openstackclient.compute.v2.server:ResumeServer', - 'server_show=openstackclient.compute.v2.server:ShowServer', - 'server_suspend=openstackclient.compute.v2.server:SuspendServer', - 'server_unpause=openstackclient.compute.v2.server:UnpauseServer', - ], - 'openstack.volume.v1': [ - 'quota_list=openstackclient.volume.v1.quota:ListQuota', - 'quota_set=openstackclient.volume.v1.quota:SetQuota', - 'quota_show=openstackclient.volume.v1.quota:ShowQuota', - - 'snapshot_create=' - 'openstackclient.volume.v1.snapshot:CreateSnapshot', - 'snapshot_delete=' - 'openstackclient.volume.v1.snapshot:DeleteSnapshot', - 'snapshot_list=openstackclient.volume.v1.snapshot:ListSnapshot', - 'snapshot_set=openstackclient.volume.v1.snapshot:SetSnapshot', - 'snapshot_show=openstackclient.volume.v1.snapshot:ShowSnapshot', - - 'volume_create=openstackclient.volume.v1.volume:CreateVolume', - 'volume_delete=openstackclient.volume.v1.volume:DeleteVolume', - 'volume_list=openstackclient.volume.v1.volume:ListVolume', - 'volume_set=openstackclient.volume.v1.volume:SetVolume', - 'volume_show=openstackclient.volume.v1.volume:ShowVolume', - 'volume_unset=openstackclient.volume.v1.volume:UnsetVolume', - - 'volume_type_create=' - 'openstackclient.volume.v1.type:CreateVolumeType', - 'volume_type_delete=' - 'openstackclient.volume.v1.type:DeleteVolumeType', - 'volume_type_list=openstackclient.volume.v1.type:ListVolumeType', - 'volume_type_set=openstackclient.volume.v1.type:SetVolumeType', - 'volume_type_unset=openstackclient.volume.v1.type:UnsetVolumeType', - ] - } -) + setup_requires=['d2to1', 'pbr>=0.5,<0.6'], + d2to1=True) diff --git a/tools/pip-requires b/tools/pip-requires index 9b71d402bf..fe30e2dd91 100644 --- a/tools/pip-requires +++ b/tools/pip-requires @@ -1,3 +1,5 @@ +d2to1>=0.2.10,<0.3 +pbr>=0.5,<0.6 cliff keyring pycrypto