contexts.go 974 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package proxy
  2. import (
  3. "context"
  4. "github.com/docker/api/config"
  5. "github.com/docker/api/context/store"
  6. contextsv1 "github.com/docker/api/protos/contexts/v1"
  7. )
  8. type contextsProxy struct {
  9. }
  10. func (cp *contextsProxy) SetCurrent(ctx context.Context, request *contextsv1.SetCurrentRequest) (*contextsv1.SetCurrentResponse, error) {
  11. if err := config.WriteCurrentContext(config.Dir(ctx), request.GetName()); err != nil {
  12. return &contextsv1.SetCurrentResponse{}, err
  13. }
  14. return &contextsv1.SetCurrentResponse{}, nil
  15. }
  16. func (cp *contextsProxy) List(ctx context.Context, request *contextsv1.ListRequest) (*contextsv1.ListResponse, error) {
  17. s := store.ContextStore(ctx)
  18. contexts, err := s.List()
  19. if err != nil {
  20. return &contextsv1.ListResponse{}, err
  21. }
  22. result := &contextsv1.ListResponse{}
  23. for _, c := range contexts {
  24. result.Contexts = append(result.Contexts, &contextsv1.Context{
  25. Name: c.Name,
  26. ContextType: c.Type,
  27. })
  28. }
  29. return result, nil
  30. }