github.com/AbhinandanKurakure/podman/v3@v3.4.10/test/apiv2/40-pods.at (about)

     1  # -*- sh -*-
     2  #
     3  # test pod-related endpoints
     4  #
     5  
     6  t GET  "libpod/pods/json (clean slate at start)"   200 '[]'
     7  
     8  t POST libpod/pods/create name=foo 201 .Id~[0-9a-f]\\{64\\}
     9  pod_id=$(jq -r .Id <<<"$output")
    10  t GET  libpod/pods/foo/exists      204
    11  t GET  libpod/pods/$pod_id/exists  204
    12  t GET  libpod/pods/notfoo/exists   404
    13  t GET  libpod/pods/foo/json        200 \
    14    .Name=foo  \
    15    .Id=$pod_id \
    16    .Containers\|length=1
    17  t GET  libpod/pods/json            200 \
    18    .[0].Name=foo \
    19    .[0].Id=$pod_id \
    20    .[0].Containers\|length=1
    21  
    22  t GET libpod/pods/json?filters='{"until":["500000"]}' 200 length=0
    23  t GET libpod/pods/json?filters='{"until":["5000000000"]}' 200 length=1
    24  
    25  # Cannot create a dup pod with the same name
    26  t POST "libpod/pods/create (dup pod)" name=foo 409 \
    27    .cause="pod already exists"
    28  
    29  #t POST libpod/pods/create a=b 400 .cause='bad parameter'  # FIXME: unimplemented
    30  
    31  t POST libpod/pods/foo/start 200 \
    32    .Errs=null \
    33    .Id=$pod_id
    34  
    35  t POST libpod/pods/foo/start 304 \
    36  
    37  t POST libpod/pods/fakename/start 404 \
    38    .cause="no such pod" \
    39    .message="no pod with name or ID fakename found: no such pod"
    40  
    41  if root || have_cgroupsv2; then
    42      t POST libpod/pods/foo/pause 200
    43  else
    44      # Rootless cgroupsv1 : unsupported
    45      t POST "libpod/pods/foo/pause (rootless cgroups v1)" 500 \
    46        .cause="this container does not have a cgroup" \
    47        .message~".*pause pods containing rootless containers with cgroup V1"
    48  fi
    49  t POST  libpod/pods/foo/unpause 200
    50  t POST "libpod/pods/foo/unpause (2nd unpause in a row)" 200
    51  t POST "libpod/pods/fakename/unpause" 404\
    52    .cause="no such pod" \
    53    .message="no pod with name or ID fakename found: no such pod"
    54  
    55  
    56  t POST libpod/pods/foo/stop 200 \
    57    .Errs=null \
    58    .Id=$pod_id
    59  
    60  t POST "libpod/pods/foo/stop (pod is already stopped)" 304
    61  t POST "libpod/pods/fakename/stop" 404\
    62    .cause="no such pod" \
    63    .message="no pod with name or ID fakename found: no such pod"
    64  
    65  t POST  libpod/pods/foo/restart 200 \
    66    .Errs=null \
    67    .Id=$pod_id
    68  
    69  t POST  "libpod/pods/bar/restart (restart on nonexistent pod)" 404
    70  t POST libpod/pods/create name=bar 201 .Id~[0-9a-f]\\{64\\}
    71  pod_bar_id=$(jq -r .Id <<<"$output")
    72  
    73  t POST  libpod/pods/bar/restart 200 \
    74    .Errs=null \
    75    .Id=$pod_bar_id
    76  
    77  t GET  libpod/pods/bar/json     200 \
    78    .State=Running
    79  
    80  t POST  libpod/pods/bar/restart 200 \
    81    .Errs=null \
    82    .Id=$pod_bar_id
    83  
    84  t POST "libpod/pods/bar/stop?t=invalid" 400 \
    85    .cause="schema: error converting value for \"t\"" \
    86    .message~"failed to parse parameters for"
    87  
    88  podman run -d --pod bar busybox sleep 999
    89  
    90  t POST libpod/pods/bar/stop?t=1 200 \
    91    .Errs=null \
    92    .Id=$pod_bar_id
    93  
    94  t POST libpod/pods/bar/start 200
    95  
    96  t GET libpod/pods/stats?all=true 200
    97  is $(jq '. | length' <<<"$output") 3 "stats?all=true: number of records found"
    98  
    99  t GET libpod/pods/stats?namesOrIDs=foo 200
   100  is $(jq '. | length' <<<"$output") 1 "stats?namesOrIDs=foo: number of records found"
   101  
   102  t GET libpod/pods/stats?namesOrIDs=fakename 404 \
   103    .cause="no such pod" \
   104    .message="unable to get list of pods: no pod with name or ID fakename found: no such pod"
   105  
   106  t DELETE  libpod/pods/bar?force=true 200
   107  
   108  # test the fake name
   109  t GET libpod/pods/fakename/top 404 \
   110    .cause="no such pod"
   111  
   112  t GET libpod/pods/foo/top 200 \
   113    .Processes[0][-1]="/pause " \
   114    .Titles[-1]="COMMAND"
   115  
   116  t GET libpod/pods/foo/top?ps_args=args,pid 200 \
   117    .Processes[0][0]="/pause " \
   118    .Processes[0][1]="1" \
   119    .Titles[0]="COMMAND" \
   120    .Titles[1]="PID" \
   121  
   122  #api list pods sanity checks
   123  t GET libpod/pods/json?filters='garb1age}' 400 \
   124      .cause="invalid character 'g' looking for beginning of value"
   125  t GET libpod/pods/json?filters='{"label":["testl' 400 \
   126      .cause="unexpected end of JSON input"
   127  
   128  # FIXME: I'm not sure what 'prune' is supposed to do; as of 20200224 it
   129  # just returns 200 (ok) with empty result list.
   130  #t POST libpod/pods/prune       200     # FIXME: 2020-02-24 returns 200 {}
   131  #t POST libpod/pods/prune 'a=b' 400     # FIXME: 2020-02-24 returns 200
   132  
   133  # Clean up; and try twice, making sure that the second time fails
   134  t DELETE  libpod/pods/foo 200
   135  t DELETE "libpod/pods/foo (pod has already been deleted)" 404
   136  
   137  # vim: filetype=sh