forked from kubeflow/pipelines
/
visualization_client.go
62 lines (50 loc) · 1.93 KB
/
visualization_client.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package api_server
import (
"fmt"
"github.com/go-openapi/strfmt"
apiclient "github.com/kubeflow/pipelines/backend/api/go_http_client/visualization_client"
params "github.com/kubeflow/pipelines/backend/api/go_http_client/visualization_client/visualization_service"
model "github.com/kubeflow/pipelines/backend/api/go_http_client/visualization_model"
"github.com/kubeflow/pipelines/backend/src/common/util"
"golang.org/x/net/context"
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
"k8s.io/client-go/tools/clientcmd"
)
type VisualizationInterface interface {
Create(params *params.CreateVisualizationParams) (*model.APIVisualization, error)
}
type VisualizationClient struct {
apiClient *apiclient.Visualization
}
func NewVisualizationClient(clientConfig clientcmd.ClientConfig, debug bool) (
*VisualizationClient, error) {
runtime, err := NewHTTPRuntime(clientConfig, debug)
if err != nil {
return nil, err
}
apiClient := apiclient.New(runtime, strfmt.Default)
// Creating upload client
return &VisualizationClient{
apiClient: apiClient,
}, nil
}
func (c *VisualizationClient) Create(parameters *params.CreateVisualizationParams) (*model.APIVisualization,
error) {
// Create context with timeout
ctx, cancel := context.WithTimeout(context.Background(), apiServerDefaultTimeout)
defer cancel()
// Make service call
parameters.Context = ctx
response, err := c.apiClient.VisualizationService.CreateVisualization(parameters, PassThroughAuth)
if err != nil {
if defaultError, ok := err.(*params.CreateVisualizationDefault); ok {
err = CreateErrorFromAPIStatus(defaultError.Payload.Error, defaultError.Payload.Code)
} else {
err = CreateErrorCouldNotRecoverAPIStatus(err)
}
return nil, util.NewUserError(err,
fmt.Sprintf("Failed to create visualizaiton. Params: '%+v'. Body: '%+v'", parameters, parameters.Body),
fmt.Sprintf("Failed to create visualization '%v'", parameters.Body.Type))
}
return response.Payload, nil
}