client_solaris.go 2.7 KB

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