github.com/fanux/shipyard@v0.0.0-20161009071005-6515ce223235/registry.go (about)

     1  package shipyard
     2  
     3  import (
     4  	registry "github.com/shipyard/shipyard/registry/v1"
     5  )
     6  
     7  type Registry struct {
     8  	ID             string                   `json:"id,omitempty" gorethink:"id,omitempty"`
     9  	Name           string                   `json:"name,omitempty" gorethink:"name,omitempty"`
    10  	Addr           string                   `json:"addr,omitempty", gorethink:"addr,omitempty"`
    11  	registryClient *registry.RegistryClient `json:"-" gorethink:"-"`
    12  }
    13  
    14  func NewRegistry(id, name, addr string) (*Registry, error) {
    15  	rClient, err := registry.NewRegistryClient(addr, nil)
    16  	if err != nil {
    17  		return nil, err
    18  	}
    19  
    20  	return &Registry{
    21  		ID:             id,
    22  		Name:           name,
    23  		Addr:           addr,
    24  		registryClient: rClient,
    25  	}, nil
    26  }
    27  
    28  func (r *Registry) Repositories() ([]*registry.Repository, error) {
    29  	res, err := r.registryClient.Search("", 1, 100)
    30  	if err != nil {
    31  		return nil, err
    32  	}
    33  
    34  	return res.Results, nil
    35  }
    36  
    37  func (r *Registry) Repository(name string) (*registry.Repository, error) {
    38  	return r.registryClient.Repository(name)
    39  }
    40  
    41  func (r *Registry) DeleteRepository(name string) error {
    42  	return r.registryClient.DeleteRepository(name)
    43  }