func mustNewURLs(t *testing.T, urls []string) []url.URL { u, err := types.NewURLs(urls) if err != nil { t.Fatalf("error creating new URLs from %q: %v", urls, err) } return u }
func (m *httpMembersAPI) Add(ctx context.Context, peerURL string) (*Member, error) { urls, err := types.NewURLs([]string{peerURL}) if err != nil { return nil, err } req := &membersAPIActionAdd{peerURLs: urls} resp, body, err := m.client.Do(ctx, req) if err != nil { return nil, err } if err := assertStatusCode(resp.StatusCode, http.StatusCreated, http.StatusConflict); err != nil { return nil, err } if resp.StatusCode != http.StatusCreated { var merr membersError if err := json.Unmarshal(body, &merr); err != nil { return nil, err } return nil, merr } var memb Member if err := json.Unmarshal(body, &memb); err != nil { return nil, err } return &memb, nil }
func generateNodeMember(name, rafturl, etcdurl string) *member { pURLs, err := types.NewURLs([]string{rafturl}) if err != nil { log.Fatalf("Invalid Raft URL %s -- this log could never have worked", rafturl) } m := NewMember(name, pURLs, etcdDefaultClusterName) m.ClientURLs = []string{etcdurl} return m }
// Set parses a command line set of URLs formatted like: // http://127.0.0.1:7001,http://10.1.1.2:80 func (us *URLsValue) Set(s string) error { strs := strings.Split(s, ",") nus, err := types.NewURLs(strs) if err != nil { return err } *us = URLsValue(nus) return nil }
func (m *MemberCreateRequest) UnmarshalJSON(data []byte) error { s := struct { PeerURLs []string `json:"peerURLs"` }{} err := json.Unmarshal(data, &s) if err != nil { return err } urls, err := types.NewURLs(s.PeerURLs) if err != nil { return err } m.PeerURLs = urls return nil }