28 from ec2.base.action
import Action, CLMException
29 from ec2.error
import InvalidKeyPair, MissingParameter, InvalidFilter
30 from ec2.helpers.filters
import applyEc2Filters, validateEc2Filters
31 from ec2.helpers.parse
import parseFilters, parseSequenceArguments
37 key_name = self.parameters[
'KeyName']
38 except KeyError, error:
39 raise MissingParameter(parameter=error.args[0])
41 id_rsa = self.cluster_manager.user.key.generate({
'name': key_name})
42 except CLMException, error:
43 if error.status ==
'ssh_key_already_exist':
44 raise InvalidKeyPair.Duplicate(key_name=key_name)
46 key_pair = self.cluster_manager.user.key.get({
'name': key_name})
48 'keyFingerprint': key_pair[
'fingerprint'],
49 'keyMaterial': id_rsa,
57 key_name = self.parameters[
'KeyName']
58 except KeyError, error:
59 raise MissingParameter(parameter=error.args[0])
61 self.cluster_manager.user.key.delete({
'name': key_name})
62 except CLMException, error:
68 translation_filters = {
'key-name':
'name',
69 'fingerprint':
'fingerprint'}
71 available_filters = [
'key-name',
'fingerprint']
82 for key_name
in key_names:
83 key_pairs.append(self.cluster_manager.user.key.get({
'name': key_name}))
85 key_pairs = self.cluster_manager.user.key.get_list()
91 for key_pair
in key_pairs:
93 result.append({
'key-name': key_pair[
'name'],
94 'fingerprint': key_pair[
'fingerprint']
99 print 'result:', result
109 key_name = self.parameters[
'KeyName']
110 id_rsa_pub = base64.b64decode(self.parameters[
'PublicKeyMaterial'])
111 except KeyError, error:
112 raise MissingParameter(parameter=error.args[0])
114 self.cluster_manager.user.key.add({
'key': id_rsa_pub,
'name': key_name})
115 except CLMException, error:
117 key_pair = self.cluster_manager.user.key.get({
'name': key_name})
119 'keyFingerprint': key_pair[
'fingerprint'],