Merge branch '21666-provision-test-improvement'
[arvados.git] / lib / controller / rpc / conn.go
index a8ecc57bbaa4512e0a0becc81e25f61f2b60316f..3125ae29be67ac57966088b6d0951c387c0c6b4e 100644 (file)
@@ -482,11 +482,11 @@ func (conn *Conn) socket(ctx context.Context, u *url.URL, upgradeHeader string,
                } else {
                        message = fmt.Sprintf("%q", body)
                }
-               return connresp, fmt.Errorf("server did not provide a tunnel: %s: %s", resp.Status, message)
+               return connresp, httpserver.ErrorWithStatus(fmt.Errorf("server did not provide a tunnel: %s: %s", resp.Status, message), resp.StatusCode)
        }
        if strings.ToLower(resp.Header.Get("Upgrade")) != upgradeHeader ||
                strings.ToLower(resp.Header.Get("Connection")) != "upgrade" {
-               return connresp, fmt.Errorf("bad response from server: Upgrade %q Connection %q", resp.Header.Get("Upgrade"), resp.Header.Get("Connection"))
+               return connresp, httpserver.ErrorWithStatus(fmt.Errorf("bad response from server: Upgrade %q Connection %q", resp.Header.Get("Upgrade"), resp.Header.Get("Connection")), http.StatusBadGateway)
        }
        connresp.Conn = netconn
        connresp.Bufrw = &bufio.ReadWriter{Reader: bufr, Writer: bufw}
@@ -529,6 +529,13 @@ func (conn *Conn) ContainerRequestDelete(ctx context.Context, options arvados.De
        return resp, err
 }
 
+func (conn *Conn) ContainerRequestContainerStatus(ctx context.Context, options arvados.GetOptions) (arvados.ContainerStatus, error) {
+       ep := arvados.EndpointContainerRequestContainerStatus
+       var resp arvados.ContainerStatus
+       err := conn.requestAndDecode(ctx, &resp, ep, nil, options)
+       return resp, err
+}
+
 func (conn *Conn) ContainerRequestLog(ctx context.Context, options arvados.ContainerLogOptions) (resp http.Handler, err error) {
        proxy := &httputil.ReverseProxy{
                Transport: conn.httpClient.Transport,
@@ -675,41 +682,6 @@ func (conn *Conn) LogDelete(ctx context.Context, options arvados.DeleteOptions)
        return resp, err
 }
 
-func (conn *Conn) SpecimenCreate(ctx context.Context, options arvados.CreateOptions) (arvados.Specimen, error) {
-       ep := arvados.EndpointSpecimenCreate
-       var resp arvados.Specimen
-       err := conn.requestAndDecode(ctx, &resp, ep, nil, options)
-       return resp, err
-}
-
-func (conn *Conn) SpecimenUpdate(ctx context.Context, options arvados.UpdateOptions) (arvados.Specimen, error) {
-       ep := arvados.EndpointSpecimenUpdate
-       var resp arvados.Specimen
-       err := conn.requestAndDecode(ctx, &resp, ep, nil, options)
-       return resp, err
-}
-
-func (conn *Conn) SpecimenGet(ctx context.Context, options arvados.GetOptions) (arvados.Specimen, error) {
-       ep := arvados.EndpointSpecimenGet
-       var resp arvados.Specimen
-       err := conn.requestAndDecode(ctx, &resp, ep, nil, options)
-       return resp, err
-}
-
-func (conn *Conn) SpecimenList(ctx context.Context, options arvados.ListOptions) (arvados.SpecimenList, error) {
-       ep := arvados.EndpointSpecimenList
-       var resp arvados.SpecimenList
-       err := conn.requestAndDecode(ctx, &resp, ep, nil, options)
-       return resp, err
-}
-
-func (conn *Conn) SpecimenDelete(ctx context.Context, options arvados.DeleteOptions) (arvados.Specimen, error) {
-       ep := arvados.EndpointSpecimenDelete
-       var resp arvados.Specimen
-       err := conn.requestAndDecode(ctx, &resp, ep, nil, options)
-       return resp, err
-}
-
 func (conn *Conn) SysTrashSweep(ctx context.Context, options struct{}) (struct{}, error) {
        ep := arvados.EndpointSysTrashSweep
        var resp struct{}