// getInstanceTypesLocked returns the instance types for Azure, by listing the // role sizes available to the subscription. func (env *azureEnviron) getInstanceTypesLocked() (map[string]instances.InstanceType, error) { if env.instanceTypes != nil { return env.instanceTypes, nil } location := env.config.location client := compute.VirtualMachineSizesClient{env.compute} result, err := client.List(location) if err != nil { return nil, errors.Trace(err) } instanceTypes := make(map[string]instances.InstanceType) if result.Value != nil { for _, size := range *result.Value { instanceType := newInstanceType(size) instanceTypes[instanceType.Name] = instanceType // Create aliases for standard role sizes. if strings.HasPrefix(instanceType.Name, "Standard_") { instanceTypes[instanceType.Name[len("Standard_"):]] = instanceType } } } env.instanceTypes = instanceTypes return instanceTypes, nil }
// getInstanceTypesLocked returns the instance types for Azure, by listing the // role sizes available to the subscription. func (env *azureEnviron) getInstanceTypesLocked() (map[string]instances.InstanceType, error) { if env.instanceTypes != nil { return env.instanceTypes, nil } location := env.location client := compute.VirtualMachineSizesClient{env.compute} var result compute.VirtualMachineSizeListResult if err := env.callAPI(func() (autorest.Response, error) { var err error result, err = client.List(location) return result.Response, err }); err != nil { return nil, errors.Annotate(err, "listing VM sizes") } instanceTypes := make(map[string]instances.InstanceType) if result.Value != nil { for _, size := range *result.Value { instanceType := newInstanceType(size) instanceTypes[instanceType.Name] = instanceType // Create aliases for standard role sizes. if strings.HasPrefix(instanceType.Name, "Standard_") { instanceTypes[instanceType.Name[len("Standard_"):]] = instanceType } } } env.instanceTypes = instanceTypes return instanceTypes, nil }