Example #1
0
// Creates a new key pair and returns the private info and the public keypair
func createKey(name string, ec2client *ec2.EC2) (string, ec2.KeyPairInfo, error) {
	//Build our input data
	keyIn := ec2.CreateKeyPairInput{
		KeyName: aws.String(name),
	}

	//Create the keypair and get the response from the system
	keyResp, err := ec2client.CreateKeyPair(&keyIn)
	if err != nil {
		return "", ec2.KeyPairInfo{}, err
	}

	//Setup our key info object to return
	keyInfo := ec2.KeyPairInfo{
		KeyFingerprint: keyResp.KeyFingerprint,
		KeyName:        keyResp.KeyName,
	}
	return *keyResp.KeyMaterial, keyInfo, nil
}
Example #2
0
	BeforeEach(func() {
		fakeBackend = &FakeEC2Backend{}
		fakeServer = httptest.NewServer(awsfaker.New(fakeBackend))
		client = ec2.New(newSession(fakeServer.URL))
	})

	AfterEach(func() {
		if fakeServer != nil {
			fakeServer.Close()
		}
	})

	It("should call the backend method", func() {
		client.CreateKeyPair(
			&ec2.CreateKeyPairInput{
				KeyName: aws.String("some-key-name"),
			})

		Expect(fakeBackend.CreateKeyPairCall.Receives).NotTo(BeNil())
		Expect(fakeBackend.CreateKeyPairCall.Receives.KeyName).To(Equal(aws.String("some-key-name")))
	})

	Context("when the backend succeeds", func() {
		It("should return the data in a format parsable by the client library", func() {
			fakeBackend.CreateKeyPairCall.ReturnsResult = &ec2.CreateKeyPairOutput{
				KeyFingerprint: aws.String("some-fingerprint"),
				KeyMaterial:    aws.String("some-pem-data"),
				KeyName:        aws.String("some-key-name"),
			}

			output, err := client.CreateKeyPair(