client_solaris.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package libcontainerd
  2. import (
  3. containerd "github.com/containerd/containerd/api/grpc/types"
  4. "golang.org/x/net/context"
  5. )
  6. type client struct {
  7. clientCommon
  8. // Platform specific properties below here.
  9. remote *remote
  10. q queue
  11. exitNotifiers map[string]*exitNotifier
  12. liveRestore bool
  13. }
  14. // GetServerVersion returns the connected server version information
  15. func (clnt *client) GetServerVersion(ctx context.Context) (*ServerVersion, error) {
  16. resp, err := clnt.remote.apiClient.GetServerVersion(ctx, &containerd.GetServerVersionRequest{})
  17. if err != nil {
  18. return nil, err
  19. }
  20. sv := &ServerVersion{
  21. GetServerVersionResponse: *resp,
  22. }
  23. return sv, nil
  24. }
  25. func (clnt *client) AddProcess(ctx context.Context, containerID, processFriendlyName string, specp Process, attachStdio StdioCallback) (int, error) {
  26. return -1, nil
  27. }
  28. func (clnt *client) SignalProcess(containerID string, pid string, sig int) error {
  29. return nil
  30. }
  31. func (clnt *client) Resize(containerID, processFriendlyName string, width, height int) error {
  32. return nil
  33. }
  34. func (clnt *client) Pause(containerID string) error {
  35. return nil
  36. }
  37. func (clnt *client) Resume(containerID string) error {
  38. return nil
  39. }
  40. func (clnt *client) Stats(containerID string) (*Stats, error) {
  41. return nil, nil
  42. }
  43. func (clnt *client) getExitNotifier(containerID string) *exitNotifier {
  44. clnt.mapMutex.RLock()
  45. defer clnt.mapMutex.RUnlock()
  46. return clnt.exitNotifiers[containerID]
  47. }
  48. func (clnt *client) getOrCreateExitNotifier(containerID string) *exitNotifier {
  49. clnt.mapMutex.Lock()
  50. defer clnt.mapMutex.Unlock()
  51. w, ok := clnt.exitNotifiers[containerID]
  52. if !ok {
  53. w = &exitNotifier{c: make(chan struct{}), client: clnt}
  54. clnt.exitNotifiers[containerID] = w
  55. }
  56. return w
  57. }
  58. // Restore is the handler for restoring a container
  59. func (clnt *client) Restore(containerID string, attachStdio StdioCallback, options ...CreateOption) error {
  60. return nil
  61. }
  62. func (clnt *client) GetPidsForContainer(containerID string) ([]int, error) {
  63. return nil, nil
  64. }
  65. // Summary returns a summary of the processes running in a container.
  66. func (clnt *client) Summary(containerID string) ([]Summary, error) {
  67. return nil, nil
  68. }
  69. // UpdateResources updates resources for a running container.
  70. func (clnt *client) UpdateResources(containerID string, resources Resources) error {
  71. // Updating resource isn't supported on Solaris
  72. // but we should return nil for enabling updating container
  73. return nil
  74. }
  75. func (clnt *client) CreateCheckpoint(containerID string, checkpointID string, checkpointDir string, exit bool) error {
  76. return nil
  77. }
  78. func (clnt *client) DeleteCheckpoint(containerID string, checkpointID string, checkpointDir string) error {
  79. return nil
  80. }
  81. func (clnt *client) ListCheckpoints(containerID string, checkpointDir string) (*Checkpoints, error) {
  82. return nil, nil
  83. }