blob: 7a1a5e3f210c69a34b797c3ac80ded34669836ee [file] [log] [blame]
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +05301# Copyright 2012 OpenStack Foundation
2# Copyright 2013 IBM Corp
3# All Rights Reserved.
4#
5# Licensed under the Apache License, Version 2.0 (the "License"); you may
6# not use this file except in compliance with the License. You may obtain
7# a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14# License for the specific language governing permissions and limitations
15# under the License.
16
Matthew Treinish01472ff2015-02-20 17:26:52 -050017from tempest_lib.common.utils import data_utils
Masayuki Igawad9388762015-01-20 14:56:42 +090018from tempest_lib import exceptions as lib_exc
19
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053020from tempest.api.compute import base
ivan-zhu58d50772013-12-10 14:02:38 +080021from tempest import test
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053022
23
24class KeyPairsNegativeTestJSON(base.BaseV2ComputeTest):
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053025
26 @classmethod
Rohan Kanade60b73092015-02-04 17:58:19 +053027 def setup_clients(cls):
28 super(KeyPairsNegativeTestJSON, cls).setup_clients()
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053029 cls.client = cls.keypairs_client
30
ivan-zhu58d50772013-12-10 14:02:38 +080031 def _create_keypair(self, keypair_name, pub_key=None):
32 self.client.create_keypair(keypair_name, pub_key)
33 self.addCleanup(self.client.delete_keypair, keypair_name)
34
35 @test.attr(type=['negative', 'gate'])
Chris Hoge7579c1a2015-02-26 14:12:15 -080036 @test.idempotent_id('29cca892-46ae-4d48-bc32-8fe7e731eb81')
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053037 def test_keypair_create_with_invalid_pub_key(self):
38 # Keypair should not be created with a non RSA public key
39 k_name = data_utils.rand_name('keypair-')
40 pub_key = "ssh-rsa JUNK nova@ubuntu"
Masayuki Igawa4b29e472015-02-16 10:41:54 +090041 self.assertRaises(lib_exc.BadRequest,
ivan-zhu58d50772013-12-10 14:02:38 +080042 self._create_keypair, k_name, pub_key)
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053043
ivan-zhu58d50772013-12-10 14:02:38 +080044 @test.attr(type=['negative', 'gate'])
Chris Hoge7579c1a2015-02-26 14:12:15 -080045 @test.idempotent_id('7cc32e47-4c42-489d-9623-c5e2cb5a2fa5')
nayna-patel179077c2014-01-15 12:27:16 +000046 def test_keypair_delete_nonexistent_key(self):
47 # Non-existent key deletion should throw a proper error
48 k_name = data_utils.rand_name("keypair-non-existent-")
Masayuki Igawabfa07602015-01-20 18:47:17 +090049 self.assertRaises(lib_exc.NotFound, self.client.delete_keypair,
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053050 k_name)
51
ivan-zhu58d50772013-12-10 14:02:38 +080052 @test.attr(type=['negative', 'gate'])
Chris Hoge7579c1a2015-02-26 14:12:15 -080053 @test.idempotent_id('dade320e-69ca-42a9-ba4a-345300f127e0')
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053054 def test_create_keypair_with_empty_public_key(self):
55 # Keypair should not be created with an empty public key
56 k_name = data_utils.rand_name("keypair-")
57 pub_key = ' '
Masayuki Igawa4b29e472015-02-16 10:41:54 +090058 self.assertRaises(lib_exc.BadRequest, self._create_keypair,
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053059 k_name, pub_key)
60
ivan-zhu58d50772013-12-10 14:02:38 +080061 @test.attr(type=['negative', 'gate'])
Chris Hoge7579c1a2015-02-26 14:12:15 -080062 @test.idempotent_id('fc100c19-2926-4b9c-8fdc-d0589ee2f9ff')
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053063 def test_create_keypair_when_public_key_bits_exceeds_maximum(self):
64 # Keypair should not be created when public key bits are too long
65 k_name = data_utils.rand_name("keypair-")
66 pub_key = 'ssh-rsa ' + 'A' * 2048 + ' openstack@ubuntu'
Masayuki Igawa4b29e472015-02-16 10:41:54 +090067 self.assertRaises(lib_exc.BadRequest, self._create_keypair,
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053068 k_name, pub_key)
69
ivan-zhu58d50772013-12-10 14:02:38 +080070 @test.attr(type=['negative', 'gate'])
Chris Hoge7579c1a2015-02-26 14:12:15 -080071 @test.idempotent_id('0359a7f1-f002-4682-8073-0c91e4011b7c')
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053072 def test_create_keypair_with_duplicate_name(self):
73 # Keypairs with duplicate names should not be created
74 k_name = data_utils.rand_name('keypair-')
David Kranz173f0e02015-02-06 13:47:57 -050075 self.client.create_keypair(k_name)
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053076 # Now try the same keyname to create another key
Masayuki Igawad9388762015-01-20 14:56:42 +090077 self.assertRaises(lib_exc.Conflict, self._create_keypair,
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053078 k_name)
David Kranz173f0e02015-02-06 13:47:57 -050079 self.client.delete_keypair(k_name)
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053080
ivan-zhu58d50772013-12-10 14:02:38 +080081 @test.attr(type=['negative', 'gate'])
Chris Hoge7579c1a2015-02-26 14:12:15 -080082 @test.idempotent_id('1398abe1-4a84-45fb-9294-89f514daff00')
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053083 def test_create_keypair_with_empty_name_string(self):
84 # Keypairs with name being an empty string should not be created
Masayuki Igawa4b29e472015-02-16 10:41:54 +090085 self.assertRaises(lib_exc.BadRequest, self._create_keypair,
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053086 '')
87
ivan-zhu58d50772013-12-10 14:02:38 +080088 @test.attr(type=['negative', 'gate'])
Chris Hoge7579c1a2015-02-26 14:12:15 -080089 @test.idempotent_id('3faa916f-779f-4103-aca7-dc3538eee1b7')
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053090 def test_create_keypair_with_long_keynames(self):
91 # Keypairs with name longer than 255 chars should not be created
92 k_name = 'keypair-'.ljust(260, '0')
Masayuki Igawa4b29e472015-02-16 10:41:54 +090093 self.assertRaises(lib_exc.BadRequest, self._create_keypair,
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053094 k_name)
95
ivan-zhu58d50772013-12-10 14:02:38 +080096 @test.attr(type=['negative', 'gate'])
Chris Hoge7579c1a2015-02-26 14:12:15 -080097 @test.idempotent_id('45fbe5e0-acb5-49aa-837a-ff8d0719db91')
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +053098 def test_create_keypair_invalid_name(self):
99 # Keypairs with name being an invalid name should not be created
100 k_name = 'key_/.\@:'
Masayuki Igawa4b29e472015-02-16 10:41:54 +0900101 self.assertRaises(lib_exc.BadRequest, self._create_keypair,
Hoisaleshwara Madan V S6a5dfb22013-11-28 14:31:40 +0530102 k_name)