Hello community, here is the log from the commit of package python-neutronclient for openSUSE:Factory checked in at 2020-06-05 20:12:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-neutronclient (Old) and /work/SRC/openSUSE:Factory/.python-neutronclient.new.3606 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-neutronclient" Fri Jun 5 20:12:27 2020 rev:24 rq:803576 version:7.1.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-neutronclient/python-neutronclient.changes 2020-03-24 22:33:17.133116913 +0100 +++ /work/SRC/openSUSE:Factory/.python-neutronclient.new.3606/python-neutronclient.changes 2020-06-05 20:14:46.754663619 +0200 @@ -1,0 +2,20 @@ +Tue May 12 09:56:11 UTC 2020 - cloud-de...@suse.de + +- update to version 7.1.1 + - Remove 'public' and 'private' parameters in fwaas_v2 + - Switch to Ussuri jobs + - Fix pep8 errors with hacking 2.0.0 + - Drop python 2.7 support + - Avoid py36 error when printing unicode chars in a stream + - Drop python3 hack for XML serializer + - fix a typo + - PDF documentation build + - Add support for port bindings + - Cleanup py27 support + - Update master for stable/train + - Drop lib-forward-testing + - Convert exception to string before passing it in + - Move grenade neutron-lib job to py3 and in python-neutronclient repo + - Replace 'bgp speaker show dragents' with 'bgp dragent list' + +------------------------------------------------------------------- Old: ---- python-neutronclient-6.14.0.tar.gz New: ---- python-neutronclient-7.1.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-neutronclient.spec ++++++ --- /var/tmp/diff_new_pack.N9mNtI/_old 2020-06-05 20:14:48.650670595 +0200 +++ /var/tmp/diff_new_pack.N9mNtI/_new 2020-06-05 20:14:48.654670610 +0200 @@ -17,13 +17,13 @@ Name: python-neutronclient -Version: 6.14.0 +Version: 7.1.1 Release: 0 Summary: Python API and CLI for OpenStack Neutron License: Apache-2.0 Group: Development/Languages/Python URL: https://launchpad.net/%{name} -Source0: https://files.pythonhosted.org/packages/source/p/python-neutronclient/python-neutronclient-6.14.0.tar.gz +Source0: https://files.pythonhosted.org/packages/source/p/python-neutronclient/python-neutronclient-7.1.1.tar.gz BuildRequires: openstack-macros BuildRequires: python3-cliff >= 2.8.0 BuildRequires: python3-fixtures @@ -100,8 +100,8 @@ %{py3_build} # Build HTML docs and man page -PBR_VERSION=6.14.0 %sphinx_build -b html doc/source doc/build/html -PBR_VERSION=6.14.0 %sphinx_build -b man doc/source doc/build/man +PBR_VERSION=7.1.1 %sphinx_build -b html doc/source doc/build/html +PBR_VERSION=7.1.1 %sphinx_build -b man doc/source doc/build/man rm -r doc/build/html/.{doctrees,buildinfo} %install ++++++ _service ++++++ --- /var/tmp/diff_new_pack.N9mNtI/_old 2020-06-05 20:14:48.682670713 +0200 +++ /var/tmp/diff_new_pack.N9mNtI/_new 2020-06-05 20:14:48.682670713 +0200 @@ -1,8 +1,8 @@ <services> <service mode="disabled" name="renderspec"> - <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/train/openstack/python-neutronclient/python-neutronclient.spec.j2</param> + <param name="input-template">https://opendev.org/openstack/rpm-packaging/raw/branch/stable/ussuri/openstack/python-neutronclient/python-neutronclient.spec.j2</param> <param name="output-name">python-neutronclient.spec</param> - <param name="requirements">https://raw.githubusercontent.com/openstack/python-neutronclient/stable/train/requirements.txt</param> + <param name="requirements">https://opendev.org/openstack/python-neutronclient/raw/branch/stable/ussuri/requirements.txt</param> <param name="changelog-email">cloud-de...@suse.de</param> <param name="changelog-provider">gh,openstack,python-neutronclient</param> </service> ++++++ python-neutronclient-6.14.0.tar.gz -> python-neutronclient-7.1.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/.zuul.yaml new/python-neutronclient-7.1.1/.zuul.yaml --- old/python-neutronclient-6.14.0/.zuul.yaml 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/.zuul.yaml 2020-04-08 14:05:32.000000000 +0200 @@ -2,11 +2,9 @@ templates: - openstack-cover-jobs - openstack-lower-constraints-jobs - - openstack-python-jobs - - openstack-python3-train-jobs + - openstack-python3-ussuri-jobs - publish-openstack-docs-pti - check-requirements - - lib-forward-testing - lib-forward-testing-python3 - release-notes-jobs-python3 - openstackclient-plugin-jobs @@ -18,7 +16,7 @@ - neutronclient-functional experimental: jobs: - - legacy-grenade-dsvm-neutron-libs: + - neutron-lib-grenade-dsvm: irrelevant-files: - ^(test-|)requirements.txt$ - ^setup.cfg$ @@ -45,3 +43,29 @@ LIBS_FROM_GIT: python-neutronclient devstack_plugins: neutron-vpnaas: https://opendev.org/openstack/neutron-vpnaas + +- job: + name: neutron-lib-grenade-dsvm + # Old name: legacy-grenade-dsvm-neutron-libs + parent: legacy-dsvm-base + run: playbooks/legacy/grenade-dsvm-neutron-libs/run.yaml + post-run: playbooks/legacy/grenade-dsvm-neutron-libs/post.yaml + timeout: 10800 + required-projects: + - openstack/grenade + - openstack/devstack-gate + - openstack/keystoneauth + - openstack/neutron + - openstack/neutron-lib + - openstack/os-client-config + - openstack/python-cinderclient + - openstack/python-glanceclient + - openstack/python-ironicclient + - openstack/python-keystoneclient + - openstack/python-neutronclient + - openstack/python-novaclient + # This is py3 version for ussuri onwards rest all branch needs to be py2 + # version which is present in openstack-zuul-jobs. + # We need to take care of this branch variant and python version while + # migrating these jobs to zuulv3. + branches: ^(?!(stable/(ocata|pike|queens|rocky|stein|train))).*$ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/AUTHORS new/python-neutronclient-7.1.1/AUTHORS --- old/python-neutronclient-6.14.0/AUTHORS 2019-09-13 19:01:12.000000000 +0200 +++ new/python-neutronclient-7.1.1/AUTHORS 2020-04-08 14:06:45.000000000 +0200 @@ -115,6 +115,7 @@ Jason Zhang <zhe...@nttmcl.com> Jaspinder <sin...@us.ibm.com> Jaume Devesa <devv...@gmail.com> +Jay Faulkner <j...@jvf.cc> Jens Harbott <j.harb...@x-ion.de> Jeremy Liu <liuji...@gohighsec.com> Jeremy Stanley <fu...@yuggoth.org> @@ -185,6 +186,7 @@ Robert Collins <rbtcoll...@hp.com> Robert Li <ba...@cisco.com> Rodion Tikunov <rtiku...@mirantis.com> +Rodolfo Alonso Hernandez <ralon...@redhat.com> Rodolfo Alonso Hernandez <rodolfo.alonso.hernan...@intel.com> Roman Podolyaka <rpodoly...@mirantis.com> Rudrajit Tapadar <rtapa...@cisco.com> @@ -208,6 +210,7 @@ Stanislav Kudriashev <stas.kudrias...@gmail.com> Stanislaw Pitucha <stanislaw.pitu...@hp.com> Stephen Balukoff <sbaluk...@bluebox.net> +Stephen Finucane <stephen...@redhat.com> Stephen Ma <stephen...@hp.com> Steve Martinelli <steve...@ca.ibm.com> Sudhakar Babu Gariganti <sudhakar-babu.gariga...@hp.com> @@ -281,6 +284,7 @@ ji-xuepeng <ji.xuep...@zte.com.cn> jiasirui <jiasi...@inspur.com> jichenjc <jiche...@cn.ibm.com> +kangyufei <kan...@inspur.com> karthik s <ksund...@redhat.com> kavithahr <kavith...@nectechnologies.in> lilintan <lintan...@easystack.cn> @@ -288,6 +292,7 @@ liu-sheng <liush...@huawei.com> liujingzte <liu.ji...@zte.com.cn> liuqing <jing.liuq...@99cloud.net> +liushuobj <liushu...@inspur.com> liuweicai <liuuwei...@gmail.com> llg8212 <lilin...@huawei.com> mathieu-rohon <mathieu.ro...@gmail.com> @@ -324,6 +329,7 @@ yong sheng gong <gong...@cn.ibm.com> yuyangbj <yan...@vmware.com> zengfagao <zengfa....@hp.com> +zhanghao <zhangh...@cmss.chinamobile.com> zhanghao2 <zhangh...@cmss.chinamobile.com> zhaojingjing0067370 <zhao.jingji...@zte.com.cn> zheng yin <yin.zh...@easystack.cn> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/ChangeLog new/python-neutronclient-7.1.1/ChangeLog --- old/python-neutronclient-6.14.0/ChangeLog 2019-09-13 19:01:12.000000000 +0200 +++ new/python-neutronclient-7.1.1/ChangeLog 2020-04-08 14:06:45.000000000 +0200 @@ -1,10 +1,37 @@ CHANGES ======= +7.1.1 +----- + +* Cleanup py27 support + +7.1.0 +----- + +* Replace 'bgp speaker show dragents' with 'bgp dragent list' +* Drop lib-forward-testing +* Add support for port bindings + +7.0.0 +----- + +* Convert exception to string before passing it in +* Avoid py36 error when printing unicode chars in a stream +* fix a typo +* Fix pep8 errors with hacking 2.0.0 +* Drop python 2.7 support +* Drop python3 hack for XML serializer +* Move grenade neutron-lib job to py3 and in python-neutronclient repo +* Switch to Ussuri jobs +* Remove 'public' and 'private' parameters in fwaas\_v2 +* Update master for stable/train + 6.14.0 ------ * Add router add/remove extra routes operations +* PDF documentation build * Improve help text * Fix string in header * Use secure sha256 instead of sha1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/PKG-INFO new/python-neutronclient-7.1.1/PKG-INFO --- old/python-neutronclient-6.14.0/PKG-INFO 2019-09-13 19:01:12.000000000 +0200 +++ new/python-neutronclient-7.1.1/PKG-INFO 2020-04-08 14:06:46.000000000 +0200 @@ -1,6 +1,6 @@ -Metadata-Version: 1.1 +Metadata-Version: 1.2 Name: python-neutronclient -Version: 6.14.0 +Version: 7.1.1 Summary: CLI and Client Library for OpenStack Networking Home-page: https://docs.openstack.org/python-neutronclient/latest/ Author: OpenStack Networking Project @@ -53,8 +53,9 @@ Classifier: License :: OSI Approved :: Apache Software License Classifier: Operating System :: POSIX :: Linux Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 +Requires-Python: >=3.6 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/doc/requirements.txt new/python-neutronclient-7.1.1/doc/requirements.txt --- old/python-neutronclient-6.14.0/doc/requirements.txt 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/doc/requirements.txt 2020-04-08 14:05:32.000000000 +0200 @@ -1,7 +1,6 @@ # The order of packages is significant, because pip processes them in the order # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. -openstackdocstheme>=1.18.1 # Apache-2.0 +openstackdocstheme>=1.32.1 # Apache-2.0 reno>=2.5.0 # Apache-2.0 -sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD -sphinx!=1.6.6,!=1.6.7,>=1.6.2;python_version>='3.4' # BSD +sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/doc/source/conf.py new/python-neutronclient-7.1.1/doc/source/conf.py --- old/python-neutronclient-6.14.0/doc/source/conf.py 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/doc/source/conf.py 2020-04-08 14:05:32.000000000 +0200 @@ -16,7 +16,6 @@ repository_name = 'openstack/python-neutronclient' bug_project = 'python-neutronclient' bug_tag = 'doc' -html_last_updated_fmt = '%Y-%m-%d %H:%M' # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -49,6 +48,25 @@ # Output file base name for HTML help builder. htmlhelp_basename = 'neutronclientdoc' +# -- Options for LaTeX output ------------------------------------------------ + +latex_documents = [ + ('index', 'doc-python-neutronclient.tex', + u'python-neutronclient Documentation', + u'Neutron Contributors', 'manual'), +] + +# Disable usage of xindy https://bugzilla.redhat.com/show_bug.cgi?id=1643664 +latex_use_xindy = False + +latex_domain_indices = False + +latex_elements = { + 'makeindex': '', + 'printindex': '', + 'preamble': r'\setcounter{tocdepth}{5}', +} + # -- Options for cliff.sphinxext plugin --------------------------------------- autoprogram_cliff_application = 'openstack' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/lower-constraints.txt new/python-neutronclient-7.1.1/lower-constraints.txt --- old/python-neutronclient-6.14.0/lower-constraints.txt 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/lower-constraints.txt 2020-04-08 14:05:32.000000000 +0200 @@ -46,7 +46,7 @@ munch==2.1.0 netaddr==0.7.18 netifaces==0.10.4 -openstackdocstheme==1.18.1 +openstackdocstheme==1.32.1 openstacksdk==0.11.2 os-client-config==1.28.0 os-service-types==1.2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/neutronclient/client.py new/python-neutronclient-7.1.1/neutronclient/client.py --- old/python-neutronclient-6.14.0/neutronclient/client.py 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/neutronclient/client.py 2020-04-08 14:05:32.000000000 +0200 @@ -104,13 +104,13 @@ try: resp, body = self.request(*args, **kargs) except requests.exceptions.SSLError as e: - raise exceptions.SslCertificateValidationError(reason=e) + raise exceptions.SslCertificateValidationError(reason=str(e)) except Exception as e: # Wrap the low-level connection error (socket timeout, redirect # limit, decompression error, etc) into our custom high-level # connection exception (it is excepted in the upper layers of code) _logger.debug("throwing ConnectionFailed : %s", e) - raise exceptions.ConnectionFailed(reason=e) + raise exceptions.ConnectionFailed(reason=str(e)) utils.http_log_resp(_logger, resp, body) # log request-id for each api call diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/neutronclient/common/serializer.py new/python-neutronclient-7.1.1/neutronclient/common/serializer.py --- old/python-neutronclient-6.14.0/neutronclient/common/serializer.py 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/neutronclient/common/serializer.py 2020-04-08 14:05:32.000000000 +0200 @@ -20,10 +20,6 @@ from neutronclient.common import exceptions as exception -if six.PY3: - long = int - - class ActionDispatcher(object): """Maps method name to local methods through action name.""" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/neutronclient/osc/v2/dynamic_routing/bgp_dragent.py new/python-neutronclient-7.1.1/neutronclient/osc/v2/dynamic_routing/bgp_dragent.py --- old/python-neutronclient-6.14.0/neutronclient/osc/v2/dynamic_routing/bgp_dragent.py 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/neutronclient/osc/v2/dynamic_routing/bgp_dragent.py 2020-04-08 14:05:32.000000000 +0200 @@ -70,18 +70,25 @@ class ListDRAgentsHostingBgpSpeaker(command.Lister): - """List dynamic routing agents hosting a BGP speaker""" + """(Deprecated) List dynamic routing agents hosting a BGP speaker + + (Use "bgp dragent list" instead) + """ resource = 'agent' list_columns = ['id', 'host', 'admin_state_up', 'alive'] unknown_parts_flag = False def get_parser(self, prog_name): + self.log.warning("The 'openstack bgp speaker show dragents' CLI is " + "deprecated and will be removed in the future. Use " + "'openstack bgp dragent list' CLI instead.") parser = super(ListDRAgentsHostingBgpSpeaker, self).get_parser(prog_name) parser.add_argument('bgp_speaker', metavar='<bgp-speaker>', - help=_("ID or name of the BGP speaker")) + help=_("List dynamic routing agents hosting a " + "BGP speaker (name or ID)")) return parser def take_action(self, parsed_args): @@ -94,6 +101,42 @@ headers = ('ID', 'Host', 'State', 'Alive') columns = ('id', 'host', 'admin_state_up', 'alive') return (headers, + (utils.get_dict_properties( + s, columns, formatters=_formatters, + ) for s in data['agents'])) + + +class ListDRAgent(command.Lister): + """List dynamic routing agents""" + + resource = 'agent' + list_columns = ['id', 'host', 'admin_state_up', 'alive'] + unknown_parts_flag = False + + def get_parser(self, prog_name): + parser = super(ListDRAgent, + self).get_parser(prog_name) + parser.add_argument('--bgp-speaker', + metavar='<bgp-speaker>', + help=_("List dynamic routing agents hosting a " + "BGP speaker (name or ID)")) + return parser + + def take_action(self, parsed_args): + search_opts = {} + client = self.app.client_manager.neutronclient + if parsed_args.bgp_speaker is not None: + search_opts = {} + speaker_id = client.find_resource(constants.BGP_SPEAKER, + parsed_args.bgp_speaker)['id'] + search_opts['bgp_speaker'] = speaker_id + data = client.list_dragents_hosting_bgp_speaker(**search_opts) + else: + attrs = {'agent_type': 'BGP dynamic routing agent'} + data = client.list_agents(**attrs) + headers = ('ID', 'Host', 'State', 'Alive') + columns = ('id', 'host', 'admin_state_up', 'alive') + return (headers, (utils.get_dict_properties( s, columns, formatters=_formatters, ) for s in data['agents'])) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/neutronclient/osc/v2/fwaas/firewallgroup.py new/python-neutronclient-7.1.1/neutronclient/osc/v2/fwaas/firewallgroup.py --- old/python-neutronclient-6.14.0/neutronclient/osc/v2/fwaas/firewallgroup.py 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/neutronclient/osc/v2/fwaas/firewallgroup.py 2020-04-08 14:05:32.000000000 +0200 @@ -77,19 +77,6 @@ action='store_true', help=_('Detach egress firewall policy from the firewall group')) shared_group = parser.add_mutually_exclusive_group() - shared_group.add_argument( - '--public', - action='store_true', - help=_('Make the firewall group public, which allows it to be ' - 'used in all projects (as opposed to the default, ' - 'which is to restrict its use to the current project). ' - 'This option is deprecated and would be removed in R release.')) - shared_group.add_argument( - '--private', - action='store_true', - help=_('Restrict use of the firewall group to the ' - 'current project. This option is deprecated ' - 'and would be removed in R release.')) shared_group.add_argument( '--share', @@ -147,9 +134,9 @@ cmd_resource=const.CMD_FWP)['id'] elif parsed_args.no_egress_firewall_policy: attrs['egress_firewall_policy_id'] = None - if parsed_args.share or parsed_args.public: + if parsed_args.share: attrs['shared'] = True - if parsed_args.no_share or parsed_args.private: + if parsed_args.no_share: attrs['shared'] = False if parsed_args.enable: attrs['admin_state_up'] = True @@ -350,14 +337,6 @@ help=_('Egress firewall policy (name or ID) to delete')) shared_group = parser.add_mutually_exclusive_group() shared_group.add_argument( - '--public', - action='store_true', - help=_('Make the firewall group public, which allows it to be ' - 'used in all projects (as opposed to the default, ' - 'which is to restrict its use to the current project). ' - 'This option is deprecated and would be removed in R' - ' release.')) - shared_group.add_argument( '--share', action='store_true', help=_('Restrict use of the firewall group to the ' @@ -375,7 +354,7 @@ attrs['ingress_firewall_policy_id'] = None if parsed_args.egress_firewall_policy: attrs['egress_firewall_policy_id'] = None - if parsed_args.share or parsed_args.public: + if parsed_args.share: attrs['shared'] = False if parsed_args.enable: attrs['admin_state_up'] = False diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/neutronclient/osc/v2/fwaas/firewallpolicy.py new/python-neutronclient-7.1.1/neutronclient/osc/v2/fwaas/firewallpolicy.py --- old/python-neutronclient-6.14.0/neutronclient/osc/v2/fwaas/firewallpolicy.py 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/neutronclient/osc/v2/fwaas/firewallpolicy.py 2020-04-08 14:05:32.000000000 +0200 @@ -80,9 +80,9 @@ attrs['name'] = str(parsed_args.name) if parsed_args.description: attrs['description'] = str(parsed_args.description) - if parsed_args.share or parsed_args.public: + if parsed_args.share: attrs['shared'] = True - if parsed_args.no_share or parsed_args.private: + if parsed_args.no_share: attrs['shared'] = False return attrs @@ -108,19 +108,6 @@ '(by default, it is restricted to be used by the ' 'current project).')) shared_group.add_argument( - '--public', - action='store_true', - help=_('Make the firewall policy public, which allows it to be ' - 'used in all projects (as opposed to the default, which ' - 'is to restrict its use to the current project.) This ' - 'option is deprecated and would be removed in R release.')) - shared_group.add_argument( - '--private', - action='store_true', - help=_( - 'Restrict use of the firewall policy to the current project.' - 'This option is deprecated and would be removed in R release.')) - shared_group.add_argument( '--no-share', action='store_true', help=_('Restrict use of the firewall policy to the ' @@ -403,12 +390,6 @@ action='store_true', help=_('Restrict use of the firewall policy to the ' 'current project')) - parser.add_argument( - '--public', - action='store_true', - help=_('Restrict use of the firewall policy to the ' - 'current project. This option is deprecated ' - 'and would be removed in R release.')) return parser def _get_attrs(self, client_manager, parsed_args): @@ -428,7 +409,7 @@ attrs[const.FWRS] = [] if parsed_args.audited: attrs['audited'] = False - if parsed_args.share or parsed_args.public: + if parsed_args.share: attrs['shared'] = False return attrs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/neutronclient/osc/v2/fwaas/firewallrule.py new/python-neutronclient-7.1.1/neutronclient/osc/v2/fwaas/firewallrule.py --- old/python-neutronclient-6.14.0/neutronclient/osc/v2/fwaas/firewallrule.py 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/neutronclient/osc/v2/fwaas/firewallrule.py 2020-04-08 14:05:32.000000000 +0200 @@ -118,19 +118,6 @@ help=_('Detach destination port number or range')) shared_group = parser.add_mutually_exclusive_group() shared_group.add_argument( - '--public', - action='store_true', - help=_('Make the firewall policy public, which allows it to be ' - 'used in all projects (as opposed to the default, ' - 'which is to restrict its use to the current project). ' - 'This option is deprecated and would be removed in R Release')) - shared_group.add_argument( - '--private', - action='store_true', - help=_( - 'Restrict use of the firewall rule to the current project.' - 'This option is deprecated and would be removed in R release.')) - shared_group.add_argument( '--share', action='store_true', help=_('Share the firewall rule to be used in all projects ' @@ -212,9 +199,9 @@ attrs['enabled'] = True if parsed_args.disable_rule: attrs['enabled'] = False - if parsed_args.share or parsed_args.public: + if parsed_args.share: attrs['shared'] = True - if parsed_args.no_share or parsed_args.private: + if parsed_args.no_share: attrs['shared'] = False if parsed_args.source_firewall_group: attrs['source_firewall_group_id'] = client.find_resource( @@ -417,12 +404,6 @@ action='store_true', help=_('Restrict use of the firewall rule to the current project')) parser.add_argument( - '--public', - action='store_true', - help=_('Restrict use of the firewall rule to the current project. ' - 'This option is deprecated and would be removed in ' - 'R Release.')) - parser.add_argument( '--enable-rule', action='store_true', help=_('Disable this rule')) @@ -448,7 +429,7 @@ attrs['destination_ip_address'] = None if parsed_args.destination_port: attrs['destination_port'] = None - if parsed_args.share or parsed_args.public: + if parsed_args.share: attrs['shared'] = False if parsed_args.enable_rule: attrs['enabled'] = False diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/neutronclient/tests/unit/osc/v2/dynamic_routing/fakes.py new/python-neutronclient-7.1.1/neutronclient/tests/unit/osc/v2/dynamic_routing/fakes.py --- old/python-neutronclient-6.14.0/neutronclient/tests/unit/osc/v2/dynamic_routing/fakes.py 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/neutronclient/tests/unit/osc/v2/dynamic_routing/fakes.py 2020-04-08 14:05:32.000000000 +0200 @@ -57,7 +57,7 @@ """ bgp_speakers = [] - for i in range(0, count): + for i in range(count): bgp_speaker = FakeBgpSpeaker.create_one_bgp_speaker(attrs) bgp_speakers.append(bgp_speaker) @@ -89,8 +89,42 @@ def create_bgp_peers(attrs=None, count=1): """Create one or multiple fake bgp peers.""" bgp_peers = [] - for i in range(0, count): + for i in range(count): bgp_peer = FakeBgpPeer.create_one_bgp_peer(attrs) bgp_peers.append(bgp_peer) return {'bgp_peers': bgp_peers} + + +class FakeDRAgent(object): + """Fake one or more dynamic routing agents.""" + + @staticmethod + def create_one_dragent(attrs=None): + attrs = attrs or {} + # Set default attributes. + dragent_attrs = { + 'binary': 'neutron-bgp-dragent', + 'admin_state_up': True, + 'alive': True, + 'topic': 'bgp_dragent', + 'host': 'network-' + uuid.uuid4().hex, + 'name': 'bgp-dragent-' + uuid.uuid4().hex, + 'agent_type': 'BGP dynamic routing agent', + 'id': uuid.uuid4().hex, + } + + # Overwrite default attributes. + dragent_attrs.update(attrs) + + return copy.deepcopy(dragent_attrs) + + @staticmethod + def create_dragents(attrs=None, count=1): + """Create one or multiple fake dynamic routing agents.""" + agents = [] + for i in range(count): + agent = FakeDRAgent.create_one_dragent(attrs) + agents.append(agent) + + return {'agents': agents} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/neutronclient/tests/unit/osc/v2/dynamic_routing/test_bgp_dragent.py new/python-neutronclient-7.1.1/neutronclient/tests/unit/osc/v2/dynamic_routing/test_bgp_dragent.py --- old/python-neutronclient-6.14.0/neutronclient/tests/unit/osc/v2/dynamic_routing/test_bgp_dragent.py 1970-01-01 01:00:00.000000000 +0100 +++ new/python-neutronclient-7.1.1/neutronclient/tests/unit/osc/v2/dynamic_routing/test_bgp_dragent.py 2020-04-08 14:05:32.000000000 +0200 @@ -0,0 +1,123 @@ +# 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. +# +import mock + +from neutronclient.osc.v2.dynamic_routing import bgp_dragent +from neutronclient.tests.unit.osc.v2.dynamic_routing import fakes + + +class TestAddBgpSpeakerToDRAgent(fakes.TestNeutronDynamicRoutingOSCV2): + _bgp_speaker = fakes.FakeBgpSpeaker.create_one_bgp_speaker() + _bgp_dragent = fakes.FakeDRAgent.create_one_dragent() + _bgp_speaker_id = _bgp_speaker['id'] + _bgp_dragent_id = _bgp_dragent['id'] + + def setUp(self): + super(TestAddBgpSpeakerToDRAgent, self).setUp() + + # Get the command object to test + self.cmd = bgp_dragent.AddBgpSpeakerToDRAgent(self.app, self.namespace) + + def test_add_bgp_speaker_to_dragent(self): + arglist = [ + self._bgp_dragent_id, + self._bgp_speaker_id, + ] + verifylist = [ + ('dragent_id', self._bgp_dragent_id), + ('bgp_speaker', self._bgp_speaker_id), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + with mock.patch.object(self.neutronclient, + "add_bgp_speaker_to_dragent", + return_value=None): + + result = self.cmd.take_action(parsed_args) + self.neutronclient.add_bgp_speaker_to_dragent.\ + assert_called_once_with( + self._bgp_dragent_id, + {'bgp_speaker_id': self._bgp_speaker_id}) + self.assertIsNone(result) + + +class TestRemoveBgpSpeakerFromDRAgent(fakes.TestNeutronDynamicRoutingOSCV2): + _bgp_speaker = fakes.FakeBgpSpeaker.create_one_bgp_speaker() + _bgp_dragent = fakes.FakeDRAgent.create_one_dragent() + _bgp_speaker_id = _bgp_speaker['id'] + _bgp_dragent_id = _bgp_dragent['id'] + + def setUp(self): + super(TestRemoveBgpSpeakerFromDRAgent, self).setUp() + + # Get the command object to test + self.cmd = bgp_dragent.RemoveBgpSpeakerFromDRAgent( + self.app, self.namespace) + + def test_remove_bgp_speaker_from_dragent(self): + arglist = [ + self._bgp_dragent_id, + self._bgp_speaker_id, + ] + verifylist = [ + ('dragent_id', self._bgp_dragent_id), + ('bgp_speaker', self._bgp_speaker_id), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + with mock.patch.object(self.neutronclient, + "remove_bgp_speaker_from_dragent", + return_value=None): + result = self.cmd.take_action(parsed_args) + self.neutronclient.remove_bgp_speaker_from_dragent.\ + assert_called_once_with(self._bgp_dragent_id, + self._bgp_speaker_id) + self.assertIsNone(result) + + +class TestListDRAgentsHostingBgpSpeaker(fakes.TestNeutronDynamicRoutingOSCV2): + _bgp_speaker = fakes.FakeBgpSpeaker.create_one_bgp_speaker() + _bgp_speaker_id = _bgp_speaker['id'] + attrs = {'bgp_speaker_id': _bgp_speaker_id} + _bgp_dragents = fakes.FakeDRAgent.create_dragents(attrs) + columns = ('ID', 'Host', 'State', 'Alive') + data = [(_bgp_dragent['id'], + _bgp_dragent['host'], + _bgp_dragent['admin_state_up'], + ':-)' if _bgp_dragent['alive'] else 'XXX') + for _bgp_dragent in _bgp_dragents['agents']] + + def setUp(self): + super(TestListDRAgentsHostingBgpSpeaker, self).setUp() + + # Get the command object to test + self.cmd = bgp_dragent.ListDRAgent(self.app, self.namespace) + + def test_list_dragents_hosting_bgp_speaker(self): + arglist = [ + '--bgp-speaker', self._bgp_speaker_id, + ] + verifylist = [ + ('bgp_speaker', self._bgp_speaker_id), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + with mock.patch.object(self.neutronclient, + "list_dragents_hosting_bgp_speaker", + return_value=self._bgp_dragents): + columns, data = self.cmd.take_action(parsed_args) + attrs = {'bgp_speaker': self._bgp_speaker_id} + self.neutronclient.list_dragents_hosting_bgp_speaker.\ + assert_called_once_with(**attrs) + self.assertEqual(self.columns, columns) + self.assertListEqual(self.data, list(data)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/neutronclient/tests/unit/osc/v2/fwaas/common.py new/python-neutronclient-7.1.1/neutronclient/tests/unit/osc/v2/fwaas/common.py --- old/python-neutronclient-6.14.0/neutronclient/tests/unit/osc/v2/fwaas/common.py 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/neutronclient/tests/unit/osc/v2/fwaas/common.py 2020-04-08 14:05:32.000000000 +0200 @@ -120,20 +120,6 @@ target, {self.res: {'shared': True}}) self.assertIsNone(result) - def test_set_public(self): - target = self.resource['id'] - arglist = [target, '--public'] - verifylist = [ - (self.res, target), - ('public', True), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - result = self.cmd.take_action(parsed_args) - - self.mocked.assert_called_once_with( - target, {self.res: {'shared': True}}) - self.assertIsNone(result) - def test_set_duplicate_shared(self): target = self.resource['id'] arglist = [target, '--share', '--share'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/neutronclient/tests/unit/osc/v2/logging/test_network_log.py new/python-neutronclient-7.1.1/neutronclient/tests/unit/osc/v2/logging/test_network_log.py --- old/python-neutronclient-6.14.0/neutronclient/tests/unit/osc/v2/logging/test_network_log.py 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/neutronclient/tests/unit/osc/v2/logging/test_network_log.py 2020-04-08 14:05:32.000000000 +0200 @@ -139,8 +139,8 @@ self.mocked = self.neutronclient.create_network_log self.cmd = network_log.CreateNetworkLog(self.app, self.namespace) loggables = { - "loggable_resources": [{"type": RES_TYPE_SG, - "type": RES_TYPE_FWG}] + "loggable_resources": [{"type": RES_TYPE_SG}, + {"type": RES_TYPE_FWG}] } self.neutronclient.list_network_loggable_resources = mock.Mock( return_value=loggables) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/neutronclient/tests/unit/qos/test_cli20_rule.py new/python-neutronclient-7.1.1/neutronclient/tests/unit/qos/test_cli20_rule.py --- old/python-neutronclient-6.14.0/neutronclient/tests/unit/qos/test_cli20_rule.py 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/neutronclient/tests/unit/qos/test_cli20_rule.py 2020-04-08 14:05:32.000000000 +0200 @@ -33,9 +33,9 @@ # qos_rule_types. resources = 'rule_types' cmd_resources = 'qos_rule_types' - response_contents = [{'type': 'bandwidth_limit', - 'type': 'dscp_marking', - 'type': 'minimum_bandwidth'}] + response_contents = [{'type': 'bandwidth_limit'}, + {'type': 'dscp_marking'}, + {'type': 'minimum_bandwidth'}] cmd = qos_rule.ListQoSRuleTypes(test_cli20.MyApp(sys.stdout), None) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/neutronclient/tests/unit/test_exceptions.py new/python-neutronclient-7.1.1/neutronclient/tests/unit/test_exceptions.py --- old/python-neutronclient-6.14.0/neutronclient/tests/unit/test_exceptions.py 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/neutronclient/tests/unit/test_exceptions.py 2020-04-08 14:05:32.000000000 +0200 @@ -12,7 +12,9 @@ # License for the specific language governing permissions and limitations # under the License. -import fixtures +import sys + +import mock from oslo_utils import encodeutils import six import testtools @@ -30,12 +32,11 @@ multibyte_unicode_string = u'\uff21\uff22\uff23' e = TestException(reason=multibyte_unicode_string) - fixture = fixtures.StringStream('stdout') - self.useFixture(fixture) - with fixtures.MonkeyPatch('sys.stdout', fixture.stream): + with mock.patch.object(sys, 'stdout') as mock_stdout: print(e) - self.assertEqual('Exception with %s' % multibyte_unicode_string, - fixture.getDetails().get('stdout').as_text()) + + exc_str = 'Exception with %s' % multibyte_unicode_string + mock_stdout.assert_has_calls([mock.call.write(exc_str)]) def test_exception_message_with_encoded_unicode(self): class TestException(exceptions.NeutronException): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/neutronclient/v2_0/client.py new/python-neutronclient-7.1.1/neutronclient/v2_0/client.py --- old/python-neutronclient-6.14.0/neutronclient/v2_0/client.py 2019-09-13 19:00:26.000000000 +0200 +++ new/python-neutronclient-7.1.1/neutronclient/v2_0/client.py 2020-04-08 14:05:32.000000000 +0200 @@ -492,6 +492,9 @@ network_path = "/networks/%s" ports_path = "/ports" port_path = "/ports/%s" + port_bindings_path = "/ports/%s/bindings" + port_binding_path = "/ports/%s/bindings/%s" + port_binding_path_activate = "/ports/%s/bindings/%s/activate" subnets_path = "/subnets" subnet_path = "/subnets/%s" onboard_network_subnets_path = "/subnetpools/%s/onboard_network_subnets" @@ -811,6 +814,28 @@ """Deletes the specified port.""" return self.delete(self.port_path % (port)) + def create_port_binding(self, port_id, body=None): + """Creates a new port binding.""" + return self.post(self.port_bindings_path % port_id, body=body) + + def delete_port_binding(self, port_id, host_id): + """Deletes the specified port binding.""" + return self.delete(self.port_binding_path % (port_id, host_id)) + + def show_port_binding(self, port_id, host_id, **_params): + """Fetches information for a certain port binding.""" + return self.get(self.port_binding_path % (port_id, host_id), + params=_params) + + def list_port_bindings(self, port_id, retrieve_all=True, **_params): + """Fetches a list of all bindings for a certain port.""" + return self.list('port_bindings', self.port_bindings_path % port_id, + retrieve_all, **_params) + + def activate_port_binding(self, port_id, host_id): + """Activates a port binding.""" + return self.put(self.port_binding_path_activate % (port_id, host_id)) + def list_networks(self, retrieve_all=True, **_params): """Fetches a list of all networks for a project.""" # Pass filters in "params" argument to do_request diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/playbooks/legacy/grenade-dsvm-neutron-libs/post.yaml new/python-neutronclient-7.1.1/playbooks/legacy/grenade-dsvm-neutron-libs/post.yaml --- old/python-neutronclient-6.14.0/playbooks/legacy/grenade-dsvm-neutron-libs/post.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/python-neutronclient-7.1.1/playbooks/legacy/grenade-dsvm-neutron-libs/post.yaml 2020-04-08 14:05:32.000000000 +0200 @@ -0,0 +1,15 @@ +- hosts: primary + tasks: + + - name: Copy files from {{ ansible_user_dir }}/workspace/ on node + synchronize: + src: '{{ ansible_user_dir }}/workspace/' + dest: '{{ zuul.executor.log_root }}' + mode: pull + copy_links: true + verify_host: true + rsync_opts: + - --include=/logs/** + - --include=*/ + - --exclude=* + - --prune-empty-dirs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/playbooks/legacy/grenade-dsvm-neutron-libs/run.yaml new/python-neutronclient-7.1.1/playbooks/legacy/grenade-dsvm-neutron-libs/run.yaml --- old/python-neutronclient-6.14.0/playbooks/legacy/grenade-dsvm-neutron-libs/run.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/python-neutronclient-7.1.1/playbooks/legacy/grenade-dsvm-neutron-libs/run.yaml 2020-04-08 14:05:32.000000000 +0200 @@ -0,0 +1,52 @@ +- hosts: all + name: Autoconverted job legacy-grenade-dsvm-neutron-libs from old job gate-grenade-dsvm-neutron-libs-ubuntu-xenial-nv + tasks: + + - name: Ensure legacy workspace directory + file: + path: '{{ ansible_user_dir }}/workspace' + state: directory + + - shell: + cmd: | + set -e + set -x + cat > clonemap.yaml << EOF + clonemap: + - name: openstack/devstack-gate + dest: devstack-gate + EOF + /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \ + https://opendev.org \ + openstack/devstack-gate + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}' + + - shell: + cmd: | + set -e + set -x + export PROJECTS="openstack/grenade $PROJECTS" + export DEVSTACK_PROJECT_FROM_GIT="os-client-config" + export DEVSTACK_PROJECT_FROM_GIT+=",keystoneauth" + export DEVSTACK_PROJECT_FROM_GIT+=",python-novaclient" + export DEVSTACK_PROJECT_FROM_GIT+=",python-keystoneclient" + export DEVSTACK_PROJECT_FROM_GIT+=",python-glanceclient" + export DEVSTACK_PROJECT_FROM_GIT+=",python-cinderclient" + export DEVSTACK_PROJECT_FROM_GIT+=",python-neutronclient" + export DEVSTACK_PROJECT_FROM_GIT+=",python-ironicclient" + export PYTHONUNBUFFERED=true + export DEVSTACK_GATE_TEMPEST=1 + export DEVSTACK_GATE_GRENADE=pullup + export DEVSTACK_GATE_USE_PYTHON3=True + export DEVSTACK_GATE_NEUTRON=1 + export BRANCH_OVERRIDE=default + if [ "$BRANCH_OVERRIDE" != "default" ] ; then + export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE + fi + cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh + ./safe-devstack-vm-gate-wrap.sh + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/python_neutronclient.egg-info/PKG-INFO new/python-neutronclient-7.1.1/python_neutronclient.egg-info/PKG-INFO --- old/python-neutronclient-6.14.0/python_neutronclient.egg-info/PKG-INFO 2019-09-13 19:01:12.000000000 +0200 +++ new/python-neutronclient-7.1.1/python_neutronclient.egg-info/PKG-INFO 2020-04-08 14:06:45.000000000 +0200 @@ -1,6 +1,6 @@ -Metadata-Version: 1.1 +Metadata-Version: 1.2 Name: python-neutronclient -Version: 6.14.0 +Version: 7.1.1 Summary: CLI and Client Library for OpenStack Networking Home-page: https://docs.openstack.org/python-neutronclient/latest/ Author: OpenStack Networking Project @@ -53,8 +53,9 @@ Classifier: License :: OSI Approved :: Apache Software License Classifier: Operating System :: POSIX :: Linux Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 +Requires-Python: >=3.6 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/python_neutronclient.egg-info/SOURCES.txt new/python-neutronclient-7.1.1/python_neutronclient.egg-info/SOURCES.txt --- old/python-neutronclient-6.14.0/python_neutronclient.egg-info/SOURCES.txt 2019-09-13 19:01:12.000000000 +0200 +++ new/python-neutronclient-7.1.1/python_neutronclient.egg-info/SOURCES.txt 2020-04-08 14:06:46.000000000 +0200 @@ -237,6 +237,7 @@ neutronclient/tests/unit/osc/v2/fakes.py neutronclient/tests/unit/osc/v2/dynamic_routing/__init__.py neutronclient/tests/unit/osc/v2/dynamic_routing/fakes.py +neutronclient/tests/unit/osc/v2/dynamic_routing/test_bgp_dragent.py neutronclient/tests/unit/osc/v2/dynamic_routing/test_bgp_peer.py neutronclient/tests/unit/osc/v2/dynamic_routing/test_bgp_speaker.py neutronclient/tests/unit/osc/v2/fwaas/__init__.py @@ -289,6 +290,8 @@ neutronclient/tests/unit/vpn/test_utils.py neutronclient/v2_0/__init__.py neutronclient/v2_0/client.py +playbooks/legacy/grenade-dsvm-neutron-libs/post.yaml +playbooks/legacy/grenade-dsvm-neutron-libs/run.yaml python_neutronclient.egg-info/PKG-INFO python_neutronclient.egg-info/SOURCES.txt python_neutronclient.egg-info/dependency_links.txt @@ -320,10 +323,12 @@ releasenotes/notes/bug-1676922-81341b70bc6f055a.yaml releasenotes/notes/bulk-delete-support-94a353db08efec8d.yaml releasenotes/notes/default-subnetpool-support-c0d34870e9d3e814.yaml +releasenotes/notes/deprecate-bgp-speaker-show-dragents-2fcce99cf6bb5b60.yaml releasenotes/notes/deprecate-cli-7be1123817969439.yaml releasenotes/notes/direct-physical-vnic-port-create-736d8b2600faf22b.yaml releasenotes/notes/docs-improvements-17e31babe38e2962.yaml releasenotes/notes/drop-nuage-commands-df10aab6ccd77ed2.yaml +releasenotes/notes/drop-python-2.7-f615ebae463b2143.yaml releasenotes/notes/drop-xml-support-41babecb1784d996.yaml releasenotes/notes/dscp_qos-4a26d3c0363624b0.yaml releasenotes/notes/extraroute-atomic-b11919d8e33b0d92.yaml @@ -336,6 +341,7 @@ releasenotes/notes/log-request-id-64bef955b8292c18.yaml releasenotes/notes/network-ip-availability-ac9a462f42fe9db4.yaml releasenotes/notes/osprofiler-support-9ba539761ae437e9.yaml +releasenotes/notes/port-bindings-c3f36bd76ece0a71.yaml releasenotes/notes/qos_minimum_bandwidth-dc4adb23c51de30b.yaml releasenotes/notes/quota-update-for-LB-b21e7bc9e4a10f3e.yaml releasenotes/notes/quota-update-for-rbac-192a8e65bf481941.yaml @@ -343,6 +349,7 @@ releasenotes/notes/remote_fwg-0f5362e5be8b2e84.yaml releasenotes/notes/remove-case-dependency-773ccb3237c38e81.yaml releasenotes/notes/remove-deprecated-option-b53f5d7e6a16ce95.yaml +releasenotes/notes/remove-public-and-private-parameters-d683e7c30ecedc3b.yaml releasenotes/notes/return-request-id-to-caller-15b1d23a4ddc27a3.yaml releasenotes/notes/sfc-tap-service-function-support-a05242f25f79066b.yaml releasenotes/notes/show-tenant-id-admin-listing-dc13ee7eb889d418.yaml @@ -366,6 +373,7 @@ releasenotes/source/queens.rst releasenotes/source/rocky.rst releasenotes/source/stein.rst +releasenotes/source/train.rst releasenotes/source/unreleased.rst releasenotes/source/_static/.placeholder releasenotes/source/_templates/.placeholder diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/python_neutronclient.egg-info/entry_points.txt new/python-neutronclient-7.1.1/python_neutronclient.egg-info/entry_points.txt --- old/python-neutronclient-6.14.0/python_neutronclient.egg-info/entry_points.txt 2019-09-13 19:01:12.000000000 +0200 +++ new/python-neutronclient-7.1.1/python_neutronclient.egg-info/entry_points.txt 2020-04-08 14:06:45.000000000 +0200 @@ -260,6 +260,7 @@ [openstack.neutronclient.v2] bgp_dragent_add_speaker = neutronclient.osc.v2.dynamic_routing.bgp_dragent:AddBgpSpeakerToDRAgent +bgp_dragent_list = neutronclient.osc.v2.dynamic_routing.bgp_dragent:ListDRAgent bgp_dragent_remove_speaker = neutronclient.osc.v2.dynamic_routing.bgp_dragent:RemoveBgpSpeakerFromDRAgent bgp_peer_create = neutronclient.osc.v2.dynamic_routing.bgp_peer:CreateBgpPeer bgp_peer_delete = neutronclient.osc.v2.dynamic_routing.bgp_peer:DeleteBgpPeer diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/python_neutronclient.egg-info/pbr.json new/python-neutronclient-7.1.1/python_neutronclient.egg-info/pbr.json --- old/python-neutronclient-6.14.0/python_neutronclient.egg-info/pbr.json 2019-09-13 19:01:12.000000000 +0200 +++ new/python-neutronclient-7.1.1/python_neutronclient.egg-info/pbr.json 2020-04-08 14:06:45.000000000 +0200 @@ -1 +1 @@ -{"git_version": "115f60f", "is_release": true} \ No newline at end of file +{"git_version": "ac04e5d", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/releasenotes/notes/deprecate-bgp-speaker-show-dragents-2fcce99cf6bb5b60.yaml new/python-neutronclient-7.1.1/releasenotes/notes/deprecate-bgp-speaker-show-dragents-2fcce99cf6bb5b60.yaml --- old/python-neutronclient-6.14.0/releasenotes/notes/deprecate-bgp-speaker-show-dragents-2fcce99cf6bb5b60.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/python-neutronclient-7.1.1/releasenotes/notes/deprecate-bgp-speaker-show-dragents-2fcce99cf6bb5b60.yaml 2020-04-08 14:05:32.000000000 +0200 @@ -0,0 +1,10 @@ +--- +deprecations: + - | + The ``openstack bgp speaker show dragents`` CLI is deprecated and + will be removed in the future. Use ``openstack bgp dragent list + --bgp-speaker <bgp-speaker>`` CLI instead. +features: + - | + The ``openstack bgp dragent list`` CLI is added to support showing + the list of dynamic routing agents. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/releasenotes/notes/drop-python-2.7-f615ebae463b2143.yaml new/python-neutronclient-7.1.1/releasenotes/notes/drop-python-2.7-f615ebae463b2143.yaml --- old/python-neutronclient-6.14.0/releasenotes/notes/drop-python-2.7-f615ebae463b2143.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/python-neutronclient-7.1.1/releasenotes/notes/drop-python-2.7-f615ebae463b2143.yaml 2020-04-08 14:05:32.000000000 +0200 @@ -0,0 +1,5 @@ +--- +upgrade: + - | + Python 2.7 support has been dropped. The minimum version of Python now + supported by python-neutronclient is Python 3.6. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/releasenotes/notes/port-bindings-c3f36bd76ece0a71.yaml new/python-neutronclient-7.1.1/releasenotes/notes/port-bindings-c3f36bd76ece0a71.yaml --- old/python-neutronclient-6.14.0/releasenotes/notes/port-bindings-c3f36bd76ece0a71.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/python-neutronclient-7.1.1/releasenotes/notes/port-bindings-c3f36bd76ece0a71.yaml 2020-04-08 14:05:32.000000000 +0200 @@ -0,0 +1,5 @@ +--- +features: + - | + New client methods: ``create_port_binding``, ``delete_port_binding``, + ``show_port_binding``, ``list_port_bindings`` and ``activate_port_binding``. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/releasenotes/notes/relnotes-from-3.0.0-d7306f5af5e3868d.yaml new/python-neutronclient-7.1.1/releasenotes/notes/relnotes-from-3.0.0-d7306f5af5e3868d.yaml --- old/python-neutronclient-6.14.0/releasenotes/notes/relnotes-from-3.0.0-d7306f5af5e3868d.yaml 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/releasenotes/notes/relnotes-from-3.0.0-d7306f5af5e3868d.yaml 2020-04-08 14:05:32.000000000 +0200 @@ -2,7 +2,7 @@ features: - Support os-client-config. OS_CLOUD environment variable is used for selecting named cloud configuration. - - Support keystoneauth1 library which brings us better kyestone v3 support. + - Support keystoneauth1 library which brings us better keystone v3 support. - Client command extension now supports a child resource. - New CLI for VPNaaS multiple local subnets. - New CLI for VPNaaS endpoint group API. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/releasenotes/notes/remove-public-and-private-parameters-d683e7c30ecedc3b.yaml new/python-neutronclient-7.1.1/releasenotes/notes/remove-public-and-private-parameters-d683e7c30ecedc3b.yaml --- old/python-neutronclient-6.14.0/releasenotes/notes/remove-public-and-private-parameters-d683e7c30ecedc3b.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/python-neutronclient-7.1.1/releasenotes/notes/remove-public-and-private-parameters-d683e7c30ecedc3b.yaml 2020-04-08 14:05:32.000000000 +0200 @@ -0,0 +1,6 @@ +--- +upgrade: + - | + The deprecated options ``--public`` and ``--private`` were + dropped in FWaaS v2 related commands. Use ``--share`` and + ``--no-share`` instead. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/releasenotes/source/conf.py new/python-neutronclient-7.1.1/releasenotes/source/conf.py --- old/python-neutronclient-6.14.0/releasenotes/source/conf.py 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/releasenotes/source/conf.py 2020-04-08 14:05:32.000000000 +0200 @@ -46,7 +46,6 @@ repository_name = 'openstack/python-neutronclient' bug_project = 'python-neutronclient' bug_tag = 'doc' -html_last_updated_fmt = '%Y-%m-%d %H:%M' # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/releasenotes/source/index.rst new/python-neutronclient-7.1.1/releasenotes/source/index.rst --- old/python-neutronclient-6.14.0/releasenotes/source/index.rst 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/releasenotes/source/index.rst 2020-04-08 14:05:32.000000000 +0200 @@ -6,6 +6,7 @@ :maxdepth: 1 unreleased + train stein rocky queens diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/releasenotes/source/train.rst new/python-neutronclient-7.1.1/releasenotes/source/train.rst --- old/python-neutronclient-6.14.0/releasenotes/source/train.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/python-neutronclient-7.1.1/releasenotes/source/train.rst 2020-04-08 14:05:32.000000000 +0200 @@ -0,0 +1,6 @@ +========================== +Train Series Release Notes +========================== + +.. release-notes:: + :branch: stable/train diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/setup.cfg new/python-neutronclient-7.1.1/setup.cfg --- old/python-neutronclient-6.14.0/setup.cfg 2019-09-13 19:01:12.000000000 +0200 +++ new/python-neutronclient-7.1.1/setup.cfg 2020-04-08 14:06:46.000000000 +0200 @@ -6,6 +6,7 @@ author = OpenStack Networking Project author-email = openstack-disc...@lists.openstack.org home-page = https://docs.openstack.org/python-neutronclient/latest/ +python-requires = >=3.6 classifier = Environment :: OpenStack Intended Audience :: Developers @@ -14,8 +15,8 @@ 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 :: Implementation :: CPython + Programming Language :: Python :: 3 :: Only Programming Language :: Python :: 3 Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 @@ -24,10 +25,6 @@ packages = neutronclient -[global] -setup-hooks = - pbr.hooks.setup_hook - [entry_points] console_scripts = neutron = neutronclient.shell:main @@ -70,6 +67,7 @@ sfc_service_graph_show = neutronclient.osc.v2.sfc.sfc_service_graph:ShowSfcServiceGraph bgp_dragent_add_speaker = neutronclient.osc.v2.dynamic_routing.bgp_dragent:AddBgpSpeakerToDRAgent + bgp_dragent_list = neutronclient.osc.v2.dynamic_routing.bgp_dragent:ListDRAgent bgp_dragent_remove_speaker = neutronclient.osc.v2.dynamic_routing.bgp_dragent:RemoveBgpSpeakerFromDRAgent bgp_peer_create = neutronclient.osc.v2.dynamic_routing.bgp_peer:CreateBgpPeer bgp_peer_delete = neutronclient.osc.v2.dynamic_routing.bgp_peer:DeleteBgpPeer @@ -454,9 +452,6 @@ vpn-ikepolicy-update = neutronclient.neutron.v2_0.vpn.ikepolicy:UpdateIKEPolicy vpn-ikepolicy-delete = neutronclient.neutron.v2_0.vpn.ikepolicy:DeleteIKEPolicy -[wheel] -universal = 1 - [extract_messages] keywords = _ gettext ngettext l_ lazy_gettext mapping_file = babel.cfg diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/setup.py new/python-neutronclient-7.1.1/setup.py --- old/python-neutronclient-6.14.0/setup.py 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/setup.py 2020-04-08 14:05:32.000000000 +0200 @@ -13,17 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT import setuptools -# In python < 2.7.4, a lazy loading of package `pbr` will break -# setuptools if some other modules registered functions in `atexit`. -# solution from: http://bugs.python.org/issue15881#msg170215 -try: - import multiprocessing # noqa -except ImportError: - pass - setuptools.setup( setup_requires=['pbr>=2.0.0'], pbr=True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-neutronclient-6.14.0/tox.ini new/python-neutronclient-7.1.1/tox.ini --- old/python-neutronclient-6.14.0/tox.ini 2019-09-13 19:00:21.000000000 +0200 +++ new/python-neutronclient-7.1.1/tox.ini 2020-04-08 14:05:32.000000000 +0200 @@ -1,10 +1,11 @@ [tox] -# py3 first to avoid .testrepository incompatibility -envlist = py37,py27,pypy,pep8 +envlist = py37,pep8 minversion = 2.3.2 skipsdist = True +ignore_basepython_conflict = True [testenv] +basepython = python3 setenv = VIRTUAL_ENV={envdir} LANG=en_US.UTF-8 LANGUAGE=en_US:en @@ -25,24 +26,20 @@ whitelist_externals = sh [testenv:pep8] -basepython = python3 commands = flake8 {[testenv:bandit]commands} distribute = false [testenv:venv] -basepython = python3 commands = {posargs} [testenv:functional] -basepython = python3 setenv = OS_TEST_PATH = ./neutronclient/tests/functional OS_NEUTRONCLIENT_EXEC_DIR = {envdir}/bin [testenv:cover] -basepython = python3 setenv = {[testenv]setenv} PYTHON=coverage run --source neutronclient --parallel-mode @@ -54,12 +51,19 @@ coverage report [testenv:docs] -basepython = python3 deps = -r{toxinidir}/doc/requirements.txt commands = sphinx-build -W -b html doc/source doc/build/html +[testenv:pdf-docs] +envdir = {toxworkdir}/docs +deps = {[testenv:docs]deps} +whitelist_externals = + make +commands = + sphinx-build -W -b latex doc/source doc/build/pdf + make -C doc/build/pdf + [testenv:releasenotes] -basepython = python3 deps = -r{toxinidir}/doc/requirements.txt commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html @@ -72,13 +76,11 @@ enable-extensions=H904 [testenv:bandit] -basepython = python3 # B303: blacklist calls: md5, sha1 deps = -r{toxinidir}/test-requirements.txt commands = bandit -r neutronclient -x tests -n5 -s B303 [testenv:lower-constraints] -basepython = python3 deps = -c{toxinidir}/lower-constraints.txt -r{toxinidir}/test-requirements.txt