EC2: Generate IDs for all key pairs (#5370)
This commit is contained in:
parent
c4965d1e06
commit
e9c5cb2308
@ -10,11 +10,13 @@ from ..utils import (
|
|||||||
rsa_public_key_fingerprint,
|
rsa_public_key_fingerprint,
|
||||||
rsa_public_key_parse,
|
rsa_public_key_parse,
|
||||||
generic_filter,
|
generic_filter,
|
||||||
|
random_key_pair_id,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class KeyPair(BaseModel):
|
class KeyPair(BaseModel):
|
||||||
def __init__(self, name, fingerprint, material):
|
def __init__(self, name, fingerprint, material):
|
||||||
|
self.id = random_key_pair_id()
|
||||||
self.name = name
|
self.name = name
|
||||||
self.fingerprint = fingerprint
|
self.fingerprint = fingerprint
|
||||||
self.material = material
|
self.material = material
|
||||||
|
@ -38,6 +38,7 @@ DESCRIBE_KEY_PAIRS_RESPONSE = """<DescribeKeyPairsResponse xmlns="http://ec2.ama
|
|||||||
<keySet>
|
<keySet>
|
||||||
{% for keypair in keypairs %}
|
{% for keypair in keypairs %}
|
||||||
<item>
|
<item>
|
||||||
|
<keyPairId>{{ keypair.id }}</keyPairId>
|
||||||
<keyName>{{ keypair.name }}</keyName>
|
<keyName>{{ keypair.name }}</keyName>
|
||||||
<keyFingerprint>{{ keypair.fingerprint }}</keyFingerprint>
|
<keyFingerprint>{{ keypair.fingerprint }}</keyFingerprint>
|
||||||
</item>
|
</item>
|
||||||
@ -47,6 +48,7 @@ DESCRIBE_KEY_PAIRS_RESPONSE = """<DescribeKeyPairsResponse xmlns="http://ec2.ama
|
|||||||
|
|
||||||
|
|
||||||
CREATE_KEY_PAIR_RESPONSE = """<CreateKeyPairResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-15/">
|
CREATE_KEY_PAIR_RESPONSE = """<CreateKeyPairResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-15/">
|
||||||
|
<keyPairId>{{ keypair.id }}</keyPairId>
|
||||||
<keyName>{{ keypair.name }}</keyName>
|
<keyName>{{ keypair.name }}</keyName>
|
||||||
<keyFingerprint>{{ keypair.fingerprint }}</keyFingerprint>
|
<keyFingerprint>{{ keypair.fingerprint }}</keyFingerprint>
|
||||||
<keyMaterial>{{ keypair.material }}</keyMaterial>
|
<keyMaterial>{{ keypair.material }}</keyMaterial>
|
||||||
@ -61,6 +63,7 @@ DELETE_KEY_PAIR_RESPONSE = """<DeleteKeyPairResponse xmlns="http://ec2.amazonaws
|
|||||||
IMPORT_KEYPAIR_RESPONSE = """<?xml version="1.0" encoding="UTF-8"?>
|
IMPORT_KEYPAIR_RESPONSE = """<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ImportKeyPairResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-15/">
|
<ImportKeyPairResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-15/">
|
||||||
<requestId>471f9fdd-8fe2-4a84-86b0-bd3d3e350979</requestId>
|
<requestId>471f9fdd-8fe2-4a84-86b0-bd3d3e350979</requestId>
|
||||||
|
<keyPairId>{{ keypair.id }}</keyPairId>
|
||||||
<keyName>{{ keypair.name }}</keyName>
|
<keyName>{{ keypair.name }}</keyName>
|
||||||
<keyFingerprint>{{ keypair.fingerprint }}</keyFingerprint>
|
<keyFingerprint>{{ keypair.fingerprint }}</keyFingerprint>
|
||||||
</ImportKeyPairResponse>"""
|
</ImportKeyPairResponse>"""
|
||||||
|
@ -54,6 +54,7 @@ EC2_RESOURCE_TO_PREFIX = {
|
|||||||
"vpn-gateway": "vgw",
|
"vpn-gateway": "vgw",
|
||||||
"iam-instance-profile-association": "iip-assoc",
|
"iam-instance-profile-association": "iip-assoc",
|
||||||
"carrier-gateway": "cagw",
|
"carrier-gateway": "cagw",
|
||||||
|
"key-pair": "key",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -143,6 +144,10 @@ def random_volume_id():
|
|||||||
return random_id(prefix=EC2_RESOURCE_TO_PREFIX["volume"])
|
return random_id(prefix=EC2_RESOURCE_TO_PREFIX["volume"])
|
||||||
|
|
||||||
|
|
||||||
|
def random_key_pair_id():
|
||||||
|
return random_id(prefix=EC2_RESOURCE_TO_PREFIX["key-pair"])
|
||||||
|
|
||||||
|
|
||||||
def random_vpc_id():
|
def random_vpc_id():
|
||||||
return random_id(prefix=EC2_RESOURCE_TO_PREFIX["vpc"])
|
return random_id(prefix=EC2_RESOURCE_TO_PREFIX["vpc"])
|
||||||
|
|
||||||
|
@ -98,6 +98,7 @@ def test_key_pairs_create_boto3():
|
|||||||
|
|
||||||
kps = client.describe_key_pairs(KeyNames=[key_name])["KeyPairs"]
|
kps = client.describe_key_pairs(KeyNames=[key_name])["KeyPairs"]
|
||||||
kps.should.have.length_of(1)
|
kps.should.have.length_of(1)
|
||||||
|
kps[0].should.have.key("KeyPairId")
|
||||||
kps[0].should.have.key("KeyName").equal(key_name)
|
kps[0].should.have.key("KeyName").equal(key_name)
|
||||||
kps[0].should.have.key("KeyFingerprint")
|
kps[0].should.have.key("KeyFingerprint")
|
||||||
|
|
||||||
@ -160,6 +161,7 @@ def test_key_pairs_import_boto3():
|
|||||||
KeyName=key_name, PublicKeyMaterial=RSA_PUBLIC_KEY_OPENSSH
|
KeyName=key_name, PublicKeyMaterial=RSA_PUBLIC_KEY_OPENSSH
|
||||||
)
|
)
|
||||||
|
|
||||||
|
kp1.should.have.key("KeyPairId")
|
||||||
kp1.should.have.key("KeyName").equal(key_name)
|
kp1.should.have.key("KeyName").equal(key_name)
|
||||||
kp1.should.have.key("KeyFingerprint").equal(RSA_PUBLIC_KEY_FINGERPRINT)
|
kp1.should.have.key("KeyFingerprint").equal(RSA_PUBLIC_KEY_FINGERPRINT)
|
||||||
|
|
||||||
@ -167,6 +169,7 @@ def test_key_pairs_import_boto3():
|
|||||||
kp2 = client.import_key_pair(
|
kp2 = client.import_key_pair(
|
||||||
KeyName=key_name2, PublicKeyMaterial=RSA_PUBLIC_KEY_RFC4716
|
KeyName=key_name2, PublicKeyMaterial=RSA_PUBLIC_KEY_RFC4716
|
||||||
)
|
)
|
||||||
|
kp2.should.have.key("KeyPairId")
|
||||||
kp2.should.have.key("KeyName").equal(key_name2)
|
kp2.should.have.key("KeyName").equal(key_name2)
|
||||||
kp2.should.have.key("KeyFingerprint").equal(RSA_PUBLIC_KEY_FINGERPRINT)
|
kp2.should.have.key("KeyFingerprint").equal(RSA_PUBLIC_KEY_FINGERPRINT)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user