Fix tests

This commit is contained in:
Justin Santa Barbara
2015-03-26 10:04:10 -07:00
parent edf0292d4a
commit 8fde691aa7
3 changed files with 34 additions and 7 deletions

View File

@@ -216,7 +216,8 @@ func getAvailabilityZone(metadata AWSMetadata) (string, error) {
}
// newAWSCloud creates a new instance of AWSCloud.
func newAWSCloud(config io.Reader, authFunc AuthFunc, metadata AWSMetadata) (*AWSCloud, error) {
// authFunc and instanceId are primarily for tests
func newAWSCloud(config io.Reader, authFunc AuthFunc, instanceId string, metadata AWSMetadata) (*AWSCloud, error) {
cfg, err := readAWSCloudConfig(config, metadata)
if err != nil {
return nil, fmt.Errorf("unable to read AWS cloud provider config file: %v", err)
@@ -240,9 +241,12 @@ func newAWSCloud(config io.Reader, authFunc AuthFunc, metadata AWSMetadata) (*AW
ec2 := &goamzEC2{ec2: ec2.New(auth, region)}
instanceId, err := ec2.GetMetaData("instance-id")
if err != nil {
return nil, fmt.Errorf("error fetching instance-id from ec2 metadata service: %v", err)
if instanceId == "" {
instanceIdBytes, err := ec2.GetMetaData("instance-id")
if err != nil {
return nil, fmt.Errorf("error fetching instance-id from ec2 metadata service: %v", err)
}
instanceId = string(instanceIdBytes)
}
awsCloud := &AWSCloud{
@@ -252,7 +256,7 @@ func newAWSCloud(config io.Reader, authFunc AuthFunc, metadata AWSMetadata) (*AW
availabilityZone: zone,
}
awsCloud.selfAwsInstance = newAwsInstance(ec2, string(instanceId))
awsCloud.selfAwsInstance = newAwsInstance(ec2, instanceId)
return awsCloud, nil
}

View File

@@ -188,6 +188,26 @@ func (self *FakeMetadata) GetMetaData(key string) ([]byte, error) {
}
}
func (ec2 *FakeEC2) AttachVolume(volumeId string, instanceId string, mountDevice string) (resp *ec2.AttachVolumeResp, err error) {
panic("Not implemented")
}
func (ec2 *FakeEC2) DetachVolume(volumeId string) (resp *ec2.SimpleResp, err error) {
panic("Not implemented")
}
func (ec2 *FakeEC2) Volumes(volumeIds []string, filter *ec2.Filter) (resp *ec2.VolumesResp, err error) {
panic("Not implemented")
}
func (ec2 *FakeEC2) CreateVolume(request *ec2.CreateVolume) (resp *ec2.CreateVolumeResp, err error) {
panic("Not implemented")
}
func (ec2 *FakeEC2) DeleteVolume(volumeId string) (resp *ec2.SimpleResp, err error) {
panic("Not implemented")
}
func mockInstancesResp(instances []ec2.Instance) (aws *AWSCloud) {
availabilityZone := "us-west-2d"
return &AWSCloud{