package service
import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/labels"
"github.com/openshift/origin/pkg/api"
)
// Mainly used for testing.
type MemoryRegistry struct {
serviceData map[string]api.Service
}
func MakeMemoryRegistry() *MemoryRegistry {
return &MemoryRegistry{
serviceData: map[string]api.Service{},
}
}
func (registry *MemoryRegistry) ListServices(selector labels.Selector) ([]api.Service, error) {
result := []api.Service{}
for _, value := range registry.serviceData {
if selector.Matches(labels.Set(value.Labels)) {
result = append(result, value)
}
}
return result, nil
}
func (registry *MemoryRegistry) GetService(serviceID string) (*api.Service, error) {
service, found := registry.serviceData[serviceID]
if found {
return &service, nil
} else {
return nil, nil
}
}
func (registry *MemoryRegistry) CreateService(service api.Service) error {
registry.serviceData[service.ID] = service
return nil
}
func (registry *MemoryRegistry) DeleteService(serviceID string) error {
delete(registry.serviceData, serviceID)
return nil
}
func (registry *MemoryRegistry) UpdateService(service api.Service) error {
registry.serviceData[service.ID] = service
return nil
}