func getServerByName(api gophercloud.CloudServersProvider, name string) (*gophercloud.Server, error) { filter := url.Values{} filter.Set("name", fmt.Sprintf("^%s$", regexp.QuoteMeta(name))) filter.Set("status", "ACTIVE") servers, err := api.ListServersByFilter(filter) if err != nil { return nil, err } if len(servers) == 0 { return nil, ErrServerNotFound } else if len(servers) > 1 { return nil, ErrMultipleServersFound } return &servers[0], nil }