feat(server/services): add source id and source link to all services

pull/3460/head
Chris Goller 2018-05-17 19:10:54 -05:00 committed by Andrew Watkins
parent 22251a782f
commit 45a981911d
3 changed files with 15 additions and 7 deletions

View File

@ -108,6 +108,7 @@ func TestServer(t *testing.T) {
"links": {
"self": "/chronograf/v1/sources/5000",
"kapacitors": "/chronograf/v1/sources/5000/kapacitors",
"services": "/chronograf/v1/sources/5000/services",
"proxy": "/chronograf/v1/sources/5000/proxy",
"queries": "/chronograf/v1/sources/5000/queries",
"write": "/chronograf/v1/sources/5000/write",
@ -296,6 +297,7 @@ func TestServer(t *testing.T) {
"links": {
"self": "/chronograf/v1/sources/5000",
"kapacitors": "/chronograf/v1/sources/5000/kapacitors",
"services": "/chronograf/v1/sources/5000/services",
"proxy": "/chronograf/v1/sources/5000/proxy",
"queries": "/chronograf/v1/sources/5000/queries",
"write": "/chronograf/v1/sources/5000/write",
@ -2943,7 +2945,7 @@ func TestServer(t *testing.T) {
serverURL := fmt.Sprintf("http://%v:%v%v", host, port, tt.args.path)
// Wait for the server to come online
timeout := time.Now().Add(5 * time.Second)
timeout := time.Now().Add(30 * time.Second)
for {
_, err := http.Get(serverURL + "/swagger.json")
if err == nil {

View File

@ -45,12 +45,14 @@ func (p *postServiceRequest) Valid(defaultOrgID string) error {
}
type serviceLinks struct {
Proxy string `json:"proxy"` // URL location of proxy endpoint for this source
Self string `json:"self"` // Self link mapping to this resource
Proxy string `json:"proxy"` // URL location of proxy endpoint for this source
Self string `json:"self"` // Self link mapping to this resource
Source string `json:"source"` // URL location of the parent source
}
type service struct {
ID int `json:"id,string"` // Unique identifier representing a service instance.
SrcID int `json:"sourceID,string"` // SrcID of the data source
Name string `json:"name"` // User facing name of service instance.
URL string `json:"url"` // URL for the service backend (e.g. http://localhost:9092)
Username string `json:"username,omitempty"` // Username for authentication to service
@ -118,14 +120,16 @@ func newService(srv chronograf.Server) service {
httpAPISrcs := "/chronograf/v1/sources"
return service{
ID: srv.ID,
SrcID: srv.SrcID,
Name: srv.Name,
Username: srv.Username,
URL: srv.URL,
InsecureSkipVerify: srv.InsecureSkipVerify,
Type: srv.Type,
Links: serviceLinks{
Self: fmt.Sprintf("%s/%d/services/%d", httpAPISrcs, srv.SrcID, srv.ID),
Proxy: fmt.Sprintf("%s/%d/services/%d/proxy", httpAPISrcs, srv.SrcID, srv.ID),
Self: fmt.Sprintf("%s/%d/services/%d", httpAPISrcs, srv.SrcID, srv.ID),
Source: fmt.Sprintf("%s/%d", httpAPISrcs, srv.SrcID),
Proxy: fmt.Sprintf("%s/%d/services/%d/proxy", httpAPISrcs, srv.SrcID, srv.ID),
},
}
}

View File

@ -175,6 +175,7 @@ func Test_newSourceResponse(t *testing.T) {
},
Links: sourceLinks{
Self: "/chronograf/v1/sources/1",
Services: "/chronograf/v1/sources/1/services",
Proxy: "/chronograf/v1/sources/1/proxy",
Queries: "/chronograf/v1/sources/1/queries",
Write: "/chronograf/v1/sources/1/write",
@ -201,6 +202,7 @@ func Test_newSourceResponse(t *testing.T) {
Links: sourceLinks{
Self: "/chronograf/v1/sources/1",
Proxy: "/chronograf/v1/sources/1/proxy",
Services: "/chronograf/v1/sources/1/services",
Queries: "/chronograf/v1/sources/1/queries",
Write: "/chronograf/v1/sources/1/write",
Kapacitors: "/chronograf/v1/sources/1/kapacitors",
@ -440,7 +442,7 @@ func TestService_SourcesID(t *testing.T) {
ID: "1",
wantStatusCode: 200,
wantContentType: "application/json",
wantBody: `{"id":"1","name":"","url":"","default":false,"telegraf":"telegraf","organization":"","defaultRP":"","links":{"self":"/chronograf/v1/sources/1","kapacitors":"/chronograf/v1/sources/1/kapacitors","proxy":"/chronograf/v1/sources/1/proxy","queries":"/chronograf/v1/sources/1/queries","write":"/chronograf/v1/sources/1/write","permissions":"/chronograf/v1/sources/1/permissions","users":"/chronograf/v1/sources/1/users","databases":"/chronograf/v1/sources/1/dbs","annotations":"/chronograf/v1/sources/1/annotations","health":"/chronograf/v1/sources/1/health"}}
wantBody: `{"id":"1","name":"","url":"","default":false,"telegraf":"telegraf","organization":"","defaultRP":"","links":{"self":"/chronograf/v1/sources/1","kapacitors":"/chronograf/v1/sources/1/kapacitors","services":"/chronograf/v1/sources/1/services","proxy":"/chronograf/v1/sources/1/proxy","queries":"/chronograf/v1/sources/1/queries","write":"/chronograf/v1/sources/1/write","permissions":"/chronograf/v1/sources/1/permissions","users":"/chronograf/v1/sources/1/users","databases":"/chronograf/v1/sources/1/dbs","annotations":"/chronograf/v1/sources/1/annotations","health":"/chronograf/v1/sources/1/health"}}
`,
},
}
@ -530,7 +532,7 @@ func TestService_UpdateSource(t *testing.T) {
wantStatusCode: 200,
wantContentType: "application/json",
wantBody: func(url string) string {
return fmt.Sprintf(`{"id":"1","name":"marty","type":"influx","username":"bob","url":"%s","metaUrl":"http://murl","default":false,"telegraf":"murlin","organization":"1337","defaultRP":"pineapple","links":{"self":"/chronograf/v1/sources/1","kapacitors":"/chronograf/v1/sources/1/kapacitors","proxy":"/chronograf/v1/sources/1/proxy","queries":"/chronograf/v1/sources/1/queries","write":"/chronograf/v1/sources/1/write","permissions":"/chronograf/v1/sources/1/permissions","users":"/chronograf/v1/sources/1/users","databases":"/chronograf/v1/sources/1/dbs","annotations":"/chronograf/v1/sources/1/annotations","health":"/chronograf/v1/sources/1/health"}}
return fmt.Sprintf(`{"id":"1","name":"marty","type":"influx","username":"bob","url":"%s","metaUrl":"http://murl","default":false,"telegraf":"murlin","organization":"1337","defaultRP":"pineapple","links":{"self":"/chronograf/v1/sources/1","kapacitors":"/chronograf/v1/sources/1/kapacitors","services":"/chronograf/v1/sources/1/services","proxy":"/chronograf/v1/sources/1/proxy","queries":"/chronograf/v1/sources/1/queries","write":"/chronograf/v1/sources/1/write","permissions":"/chronograf/v1/sources/1/permissions","users":"/chronograf/v1/sources/1/users","databases":"/chronograf/v1/sources/1/dbs","annotations":"/chronograf/v1/sources/1/annotations","health":"/chronograf/v1/sources/1/health"}}
`, url)
},
},