~dave-cheney/goose/003-fix-fd-leak

« back to all changes in this revision

Viewing changes to testservices/novaservice/service_http.go

  • Committer: Tarmac
  • Author(s): Dimiter Naydenov
  • Date: 2013-02-08 17:35:15 UTC
  • mfrom: (69.1.5 nova-filter-refactoring)
  • Revision ID: tarmac-20130208173515-1olxekdz64n5fw1v
[r=dimitern] nova: Refactor filters

Now nova client and test double use separate filter types for better
isolation and simple code: nova.Filter (by the client), having only
Set() as it's write-only; and novaservice.filter (by the double), being
a thin wrapper over map[string]string.

As discussed, this relays the intent better and makes code cleaner.
Also removed a now redundant test to compare Add() and Set() on nova.Filter
and updated all tests as needed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
682
682
                        }{*server}
683
683
                        return sendJSON(http.StatusOK, resp, w, r)
684
684
                }
685
 
                filter := nova.NewFilter()
 
685
                f := make(filter)
686
686
                if err := r.ParseForm(); err == nil && len(r.Form) > 0 {
687
687
                        for filterKey, filterValues := range r.Form {
688
688
                                for _, value := range filterValues {
689
 
                                        filter.Set(filterKey, value)
 
689
                                        f[filterKey] = value
690
690
                                }
691
691
                        }
692
692
                }
693
 
                entities := n.allServersAsEntities(filter)
 
693
                entities := n.allServersAsEntities(f)
694
694
                if len(entities) == 0 {
695
695
                        entities = []nova.Entity{}
696
696
                }
747
747
                if serverId := path.Base(r.URL.Path); serverId != "detail" {
748
748
                        return errNotFound
749
749
                }
750
 
                var filter *nova.Filter
 
750
                f := make(filter)
751
751
                if err := r.ParseForm(); err == nil && len(r.Form) > 0 {
752
 
                        filter = &nova.Filter{r.Form}
 
752
                        for filterKey, filterValues := range r.Form {
 
753
                                for _, value := range filterValues {
 
754
                                        f[filterKey] = value
 
755
                                }
 
756
                        }
753
757
                }
754
 
                servers := n.allServers(filter)
 
758
                servers := n.allServers(f)
755
759
                if len(servers) == 0 {
756
760
                        servers = []nova.ServerDetail{}
757
761
                }