Remove deprecated certs CLIs and python bindings
The certs CLIs and python API bindings were deprecated in release 9.0.0 in Pike via change: If3e1e40947a8ad3f665f6a96d46de8cef6a2a190 We can safely remove them now and we'll do a major version release for this. Change-Id: I91a49b03e4d3c661ef6072962fac416f2dc37d0b
This commit is contained in:
parent
40bf060233
commit
4bc4078fcb
@ -1,55 +0,0 @@
|
|||||||
# 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.
|
|
||||||
|
|
||||||
from novaclient.tests.unit.fixture_data import base
|
|
||||||
|
|
||||||
|
|
||||||
class Fixture(base.Fixture):
|
|
||||||
|
|
||||||
base_url = 'os-certificates'
|
|
||||||
|
|
||||||
def get_os_certificates_root(self, **kw):
|
|
||||||
return (
|
|
||||||
200,
|
|
||||||
{},
|
|
||||||
{'certificate': {'private_key': None, 'data': 'foo'}}
|
|
||||||
)
|
|
||||||
|
|
||||||
def post_os_certificates(self, **kw):
|
|
||||||
return (
|
|
||||||
200,
|
|
||||||
{},
|
|
||||||
{'certificate': {'private_key': 'foo', 'data': 'bar'}}
|
|
||||||
)
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
super(Fixture, self).setUp()
|
|
||||||
|
|
||||||
get_os_certificate = {
|
|
||||||
'certificate': {
|
|
||||||
'private_key': None,
|
|
||||||
'data': 'foo'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
self.requests_mock.get(self.url('root'),
|
|
||||||
json=get_os_certificate,
|
|
||||||
headers=self.json_headers)
|
|
||||||
|
|
||||||
post_os_certificates = {
|
|
||||||
'certificate': {
|
|
||||||
'private_key': 'foo',
|
|
||||||
'data': 'bar'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
self.requests_mock.post(self.url(),
|
|
||||||
json=post_os_certificates,
|
|
||||||
headers=self.json_headers)
|
|
@ -1,45 +0,0 @@
|
|||||||
#
|
|
||||||
# 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 novaclient.tests.unit.fixture_data import certs as data
|
|
||||||
from novaclient.tests.unit.fixture_data import client
|
|
||||||
from novaclient.tests.unit import utils
|
|
||||||
from novaclient.tests.unit.v2 import fakes
|
|
||||||
from novaclient.v2 import certs
|
|
||||||
|
|
||||||
|
|
||||||
class CertsTest(utils.FixturedTestCase):
|
|
||||||
|
|
||||||
data_fixture_class = data.Fixture
|
|
||||||
cert_type = certs.Certificate
|
|
||||||
|
|
||||||
scenarios = [('original', {'client_fixture_class': client.V1}),
|
|
||||||
('session', {'client_fixture_class': client.SessionV1})]
|
|
||||||
|
|
||||||
@mock.patch('warnings.warn')
|
|
||||||
def test_create_cert(self, mock_warn):
|
|
||||||
cert = self.cs.certs.create()
|
|
||||||
self.assert_request_id(cert, fakes.FAKE_REQUEST_ID_LIST)
|
|
||||||
self.assert_called('POST', '/os-certificates')
|
|
||||||
self.assertIsInstance(cert, self.cert_type)
|
|
||||||
self.assertEqual(1, mock_warn.call_count)
|
|
||||||
|
|
||||||
@mock.patch('warnings.warn')
|
|
||||||
def test_get_root_cert(self, mock_warn):
|
|
||||||
cert = self.cs.certs.get()
|
|
||||||
self.assert_request_id(cert, fakes.FAKE_REQUEST_ID_LIST)
|
|
||||||
self.assert_called('GET', '/os-certificates/root')
|
|
||||||
self.assertIsInstance(cert, self.cert_type)
|
|
||||||
self.assertEqual(1, mock_warn.call_count)
|
|
@ -1,53 +0,0 @@
|
|||||||
# Copyright 2010 Jacob Kaplan-Moss
|
|
||||||
|
|
||||||
# Copyright 2011 OpenStack Foundation
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
"""
|
|
||||||
DEPRECATED Certificate interface.
|
|
||||||
"""
|
|
||||||
|
|
||||||
import warnings
|
|
||||||
|
|
||||||
from novaclient import base
|
|
||||||
from novaclient.i18n import _
|
|
||||||
|
|
||||||
CERT_DEPRECATION_WARNING = (
|
|
||||||
_('The nova-cert service is deprecated. This API binding will be removed '
|
|
||||||
'in the first major release after the Nova server 16.0.0 Pike release.')
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class Certificate(base.Resource):
|
|
||||||
"""DEPRECATED"""
|
|
||||||
def __repr__(self):
|
|
||||||
return ("<Certificate: private_key=[%s bytes] data=[%s bytes]>" %
|
|
||||||
(len(self.private_key) if self.private_key else 0,
|
|
||||||
len(self.data)))
|
|
||||||
|
|
||||||
|
|
||||||
class CertificateManager(base.Manager):
|
|
||||||
"""DEPRECATED Manage :class:`Certificate` resources."""
|
|
||||||
resource_class = Certificate
|
|
||||||
|
|
||||||
def create(self):
|
|
||||||
"""DEPRECATED Create a x509 certificate for a user in tenant."""
|
|
||||||
warnings.warn(CERT_DEPRECATION_WARNING, DeprecationWarning)
|
|
||||||
return self._create('/os-certificates', {}, 'certificate')
|
|
||||||
|
|
||||||
def get(self):
|
|
||||||
"""DEPRECATED Get root certificate."""
|
|
||||||
warnings.warn(CERT_DEPRECATION_WARNING, DeprecationWarning)
|
|
||||||
return self._get("/os-certificates/root", 'certificate')
|
|
@ -23,7 +23,6 @@ from novaclient.v2 import aggregates
|
|||||||
from novaclient.v2 import assisted_volume_snapshots
|
from novaclient.v2 import assisted_volume_snapshots
|
||||||
from novaclient.v2 import availability_zones
|
from novaclient.v2 import availability_zones
|
||||||
from novaclient.v2 import cells
|
from novaclient.v2 import cells
|
||||||
from novaclient.v2 import certs
|
|
||||||
from novaclient.v2 import cloudpipe
|
from novaclient.v2 import cloudpipe
|
||||||
from novaclient.v2 import contrib
|
from novaclient.v2 import contrib
|
||||||
from novaclient.v2 import flavor_access
|
from novaclient.v2 import flavor_access
|
||||||
@ -150,7 +149,6 @@ class Client(object):
|
|||||||
# extensions
|
# extensions
|
||||||
self.agents = agents.AgentsManager(self)
|
self.agents = agents.AgentsManager(self)
|
||||||
self.cloudpipe = cloudpipe.CloudpipeManager(self)
|
self.cloudpipe = cloudpipe.CloudpipeManager(self)
|
||||||
self.certs = certs.CertificateManager(self)
|
|
||||||
self.volumes = volumes.VolumeManager(self)
|
self.volumes = volumes.VolumeManager(self)
|
||||||
self.keypairs = keypairs.KeypairManager(self)
|
self.keypairs = keypairs.KeypairManager(self)
|
||||||
self.neutron = networks.NeutronManager(self)
|
self.neutron = networks.NeutronManager(self)
|
||||||
|
@ -48,11 +48,6 @@ from novaclient.v2 import servers
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
CERT_DEPRECATION_WARNING = (
|
|
||||||
_('The nova-cert service is deprecated. This command will be removed '
|
|
||||||
'in the first major release after the Nova server 16.0.0 Pike release.')
|
|
||||||
)
|
|
||||||
|
|
||||||
CLOUDPIPE_DEPRECATION_WARNING = (
|
CLOUDPIPE_DEPRECATION_WARNING = (
|
||||||
_('The os-cloudpipe Nova API has been removed. This command will be '
|
_('The os-cloudpipe Nova API has been removed. This command will be '
|
||||||
'removed in the first major release after the Nova server 16.0.0 Pike '
|
'removed in the first major release after the Nova server 16.0.0 Pike '
|
||||||
@ -3157,63 +3152,6 @@ def do_usage(cs, args):
|
|||||||
print(_('None'))
|
print(_('None'))
|
||||||
|
|
||||||
|
|
||||||
@utils.arg(
|
|
||||||
'pk_filename',
|
|
||||||
metavar='<private-key-filename>',
|
|
||||||
nargs='?',
|
|
||||||
default='pk.pem',
|
|
||||||
help=_('Filename for the private key. [Default: pk.pem]'))
|
|
||||||
@utils.arg(
|
|
||||||
'cert_filename',
|
|
||||||
metavar='<x509-cert-filename>',
|
|
||||||
nargs='?',
|
|
||||||
default='cert.pem',
|
|
||||||
help=_('Filename for the X.509 certificate. [Default: cert.pem]'))
|
|
||||||
def do_x509_create_cert(cs, args):
|
|
||||||
"""DEPRECATED Create x509 cert for a user in tenant."""
|
|
||||||
print(CERT_DEPRECATION_WARNING, file=sys.stderr)
|
|
||||||
|
|
||||||
if os.path.exists(args.pk_filename):
|
|
||||||
raise exceptions.CommandError(_("Unable to write privatekey - %s "
|
|
||||||
"exists.") % args.pk_filename)
|
|
||||||
if os.path.exists(args.cert_filename):
|
|
||||||
raise exceptions.CommandError(_("Unable to write x509 cert - %s "
|
|
||||||
"exists.") % args.cert_filename)
|
|
||||||
|
|
||||||
certs = cs.certs.create()
|
|
||||||
|
|
||||||
try:
|
|
||||||
old_umask = os.umask(0o377)
|
|
||||||
with open(args.pk_filename, 'w') as private_key:
|
|
||||||
private_key.write(certs.private_key)
|
|
||||||
print(_("Wrote private key to %s") % args.pk_filename)
|
|
||||||
finally:
|
|
||||||
os.umask(old_umask)
|
|
||||||
|
|
||||||
with open(args.cert_filename, 'w') as cert:
|
|
||||||
cert.write(certs.data)
|
|
||||||
print(_("Wrote x509 certificate to %s") % args.cert_filename)
|
|
||||||
|
|
||||||
|
|
||||||
@utils.arg(
|
|
||||||
'filename',
|
|
||||||
metavar='<filename>',
|
|
||||||
nargs='?',
|
|
||||||
default='cacert.pem',
|
|
||||||
help=_('Filename to write the x509 root cert.'))
|
|
||||||
def do_x509_get_root_cert(cs, args):
|
|
||||||
"""DEPRECATED Fetch the x509 root cert."""
|
|
||||||
print(CERT_DEPRECATION_WARNING, file=sys.stderr)
|
|
||||||
if os.path.exists(args.filename):
|
|
||||||
raise exceptions.CommandError(_("Unable to write x509 root cert - \
|
|
||||||
%s exists.") % args.filename)
|
|
||||||
|
|
||||||
with open(args.filename, 'w') as cert:
|
|
||||||
cacert = cs.certs.get()
|
|
||||||
cert.write(cacert.data)
|
|
||||||
print(_("Wrote x509 root cert to %s") % args.filename)
|
|
||||||
|
|
||||||
|
|
||||||
@utils.arg(
|
@utils.arg(
|
||||||
'--hypervisor',
|
'--hypervisor',
|
||||||
metavar='<hypervisor>',
|
metavar='<hypervisor>',
|
||||||
|
6
releasenotes/notes/remove-certs-4333342189200d91.yaml
Normal file
6
releasenotes/notes/remove-certs-4333342189200d91.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
The ``nova x509-create-cert`` and ``nova x509-get-root-cert`` commands
|
||||||
|
and ``novaclient.v2.certs`` API binding were deprecated in the 9.0.0
|
||||||
|
release and have now been removed.
|
Loading…
Reference in New Issue
Block a user