24: def create(name=nil)
25: name ||= current_machine_root
26: keyname = user_keypairname name
27: kp_file = pkey name
28:
29: if registered? name && !@@global.force
30: raise PrivateKeyNotFound, kp_file if !File.exists?(kp_file)
31: end
32:
33: if Rudy::AWS::EC2::Keypairs.exists? keyname
34: if @@global.force
35: li "Destroying existing keypair: #{keyname}"
36: Rudy::AWS::EC2::Keypairs.destroy keyname
37: else
38: raise Rudy::AWS::EC2::KeypairAlreadyDefined, keyname
39: end
40: end
41:
42: if File.exists?(kp_file)
43: if @@global.force
44: delete_pkey name
45: else
46: raise PrivateKeyFileExists, kp_file
47: end
48: end
49:
50: li "Creating keypair: #{keyname}"
51: kp = Rudy::AWS::EC2::Keypairs.create(keyname)
52: li "Saving #{kp_file}"
53: Rudy::Utils.write_to_file(kp_file, kp.private_key, 'w', 0600)
54:
55: kp
56: end