moving HostConfig into the ThinContainerExecRunner interface
[arvados.git] / lib / crunchrun / singularity.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 package crunchrun
6
7 import (
8         "fmt"
9         "io"
10
11         "golang.org/x/net/context"
12 )
13
14 type SingularityClient struct {
15         containerConfig ContainerConfig
16         hostConfig      HostConfig
17 }
18
19 func (c SingularityClient) GetContainerConfig() (ContainerConfig, error) {
20         return c.containerConfig, nil
21 }
22
23 func (c SingularityClient) GetHostConfig() (HostConfig, error) {
24         return c.hostConfig, nil
25 }
26
27 func (c SingularityClient) GetImage() (imageID string) {
28         return c.containerConfig.Image
29 }
30
31 func (c SingularityClient) SetImage(imageID string) {
32         c.containerConfig.Image = imageID
33 }
34
35 func (c SingularityClient) GetNetworkMode() (networkMode NetworkMode) {
36         return c.hostConfig.NetworkMode
37 }
38
39 func (c SingularityClient) SetNetworkMode(networkMode NetworkMode) {
40         c.hostConfig.NetworkMode = networkMode
41 }
42
43 func (c SingularityClient) SetHostConfig(hostConfig HostConfig) error {
44         c.hostConfig = hostConfig
45         return nil
46 }
47
48 func (c SingularityClient) ContainerAttach(ctx context.Context, container string, options ContainerAttachOptions) (HijackedResponse, error) {
49         fmt.Printf("placeholder for container ContainerAttach %s", container)
50
51         return HijackedResponse{}, nil
52 }
53
54 func (c SingularityClient) ContainerCreate(ctx context.Context, config ContainerConfig, hostConfig HostConfig, networkingConfig *NetworkingConfig, containerName string) (ContainerCreateResponse, error) {
55         fmt.Printf("placeholder for container ContainerCreate %s", containerName)
56
57         return ContainerCreateResponse{}, nil
58 }
59
60 func (c SingularityClient) ContainerStart(ctx context.Context, container string, options ContainerStartOptions) error {
61         fmt.Printf("placeholder for container ContainerStart %s", container)
62
63         return nil
64 }
65
66 func (c SingularityClient) ContainerRemove(ctx context.Context, container string, options ContainerRemoveOptions) error {
67         fmt.Printf("placeholder for container ContainerRemove %s", container)
68
69         return nil
70 }
71
72 func (c SingularityClient) ContainerWait(ctx context.Context, container string, condition WaitCondition) (<-chan ContainerWaitOKBody, <-chan error) {
73         fmt.Printf("placeholder for ContainerWait")
74         chanC := make(chan ContainerWaitOKBody)
75         chanE := make(chan error)
76         return chanC, chanE
77 }
78
79 func (c SingularityClient) ContainerInspect(ctx context.Context, id string) (ContainerInspectResponse, error) {
80         fmt.Printf("placeholder for container ContainerInspect %s", id)
81
82         return ContainerInspectResponse{}, nil
83 }
84
85 func (c SingularityClient) ImageInspectWithRaw(ctx context.Context, image string) (ImageInspectResponse, []byte, error) {
86         fmt.Printf("placeholder for ImageInspectWithRaw() %s", image)
87
88         return ImageInspectResponse{}, []byte(""), nil
89 }
90
91 func (c SingularityClient) ImageLoad(ctx context.Context, input io.Reader, quiet bool) (ImageLoadResponse, error) {
92         fmt.Printf("placeholder for ImageLoad")
93         return ImageLoadResponse{}, nil
94 }
95
96 func (c SingularityClient) ImageRemove(ctx context.Context, image string, options ImageRemoveOptions) ([]ImageDeleteResponseItem, error) {
97         fmt.Printf("placeholder for ImageRemove")
98         var responses []ImageDeleteResponseItem
99         tmp := ImageDeleteResponseItem{}
100         responses = append(responses, tmp)
101         return responses, nil
102 }
103
104 func NewSingularityClient() (SingularityClient, error) {
105         var s = &SingularityClient{}
106         return *s, nil
107 }