IAM delete_server_certificate (#1380)

* IAM delete_server_certificate

* flake8 fixes
This commit is contained in:
David Bartle 2017-12-08 02:43:09 -08:00 committed by Terry Cain
parent 0c01c7f495
commit 52ce8d378f
4 changed files with 34 additions and 1 deletions

View File

@ -1906,7 +1906,7 @@
- [X] delete_role
- [X] delete_role_policy
- [ ] delete_saml_provider
- [ ] delete_server_certificate
- [X] delete_server_certificate
- [ ] delete_service_linked_role
- [ ] delete_service_specific_credential
- [ ] delete_signing_certificate

View File

@ -663,6 +663,20 @@ class IAMBackend(BaseBackend):
"The Server Certificate with name {0} cannot be "
"found.".format(name))
def delete_server_certificate(self, name):
cert_id = None
for key, cert in self.certificates.items():
if name == cert.cert_name:
cert_id = key
break
if cert_id is None:
raise IAMNotFoundException(
"The Server Certificate with name {0} cannot be "
"found.".format(name))
self.certificates.pop(cert_id, None)
def create_group(self, group_name, path='/'):
if group_name in self.groups:
raise IAMConflictException(

View File

@ -271,6 +271,12 @@ class IamResponse(BaseResponse):
template = self.response_template(GET_SERVER_CERTIFICATE_TEMPLATE)
return template.render(certificate=cert)
def delete_server_certificate(self):
cert_name = self._get_param('ServerCertificateName')
iam_backend.delete_server_certificate(cert_name)
template = self.response_template(GENERIC_EMPTY_TEMPLATE)
return template.render(name="DeleteServerCertificate")
def create_group(self):
group_name = self._get_param('GroupName')
path = self._get_param('Path')

View File

@ -58,6 +58,19 @@ def test_upload_server_cert():
"arn:aws:iam::123456789012:server-certificate/certname")
@mock_iam_deprecated()
def test_delete_server_cert():
conn = boto.connect_iam()
conn.upload_server_cert("certname", "certbody", "privatekey")
conn.get_server_certificate("certname")
conn.delete_server_cert("certname")
with assert_raises(BotoServerError):
conn.get_server_certificate("certname")
with assert_raises(BotoServerError):
conn.delete_server_cert("certname")
@mock_iam_deprecated()
@raises(BotoServerError)
def test_get_role__should_throw__when_role_does_not_exist():