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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
|
package entities
import (
"io"
"net/url"
"os"
"time"
nettypes "github.com/containers/common/libnetwork/types"
"github.com/containers/image/v5/types"
"github.com/containers/podman/v4/libpod/define"
"github.com/containers/podman/v4/pkg/specgen"
"github.com/containers/storage/pkg/archive"
)
// ContainerRunlabelOptions are the options to execute container-runlabel.
type ContainerRunlabelOptions struct {
// Authfile - path to an authentication file.
Authfile string
// CertDir - path to a directory containing TLS certifications and
// keys.
CertDir string
// Credentials - `user:password` to use when pulling an image.
Credentials string
// Display - do not execute but print the command.
Display bool
// Replace - replace an existing container with a new one from the
// image.
Replace bool
// Name - use this name when executing the runlabel container.
Name string
// Optional1 - fist optional parameter for install.
Optional1 string
// Optional2 - second optional parameter for install.
Optional2 string
// Optional3 - third optional parameter for install.
Optional3 string
// Pull - pull the specified image if it's not in the local storage.
Pull bool
// Quiet - suppress output when pulling images.
Quiet bool
// SignaturePolicy - path to a signature-policy file.
SignaturePolicy string
// SkipTLSVerify - skip HTTPS and certificate verifications when
// contacting registries.
SkipTLSVerify types.OptionalBool
}
// ContainerRunlabelReport contains the results from executing container-runlabel.
type ContainerRunlabelReport struct{}
type WaitOptions struct {
Condition []define.ContainerStatus
Interval time.Duration
Latest bool
}
type WaitReport struct {
Id string //nolint:revive,stylecheck
Error error
ExitCode int32
}
type BoolReport struct {
Value bool
}
// StringSliceReport wraps a string slice.
type StringSliceReport struct {
Value []string
}
type PauseUnPauseOptions struct {
All bool
}
type PauseUnpauseReport struct {
Err error
Id string //nolint:revive,stylecheck
}
type StopOptions struct {
All bool
Ignore bool
Latest bool
Timeout *uint
}
type StopReport struct {
Err error
Id string //nolint:revive,stylecheck
RawInput string
}
type TopOptions struct {
// CLI flags.
ListDescriptors bool
Latest bool
// Options for the API.
Descriptors []string
NameOrID string
}
type KillOptions struct {
All bool
Latest bool
Signal string
}
type KillReport struct {
Err error
Id string //nolint:revive,stylecheck
RawInput string
}
type RestartOptions struct {
All bool
Latest bool
Running bool
Timeout *uint
}
type RestartReport struct {
Err error
Id string //nolint:revive,stylecheck
}
type RmOptions struct {
All bool
Depend bool
Force bool
Ignore bool
Latest bool
Timeout *uint
Volumes bool
}
type ContainerInspectReport struct {
*define.InspectContainerData
}
type ContainerStatReport struct {
define.FileInfo
}
type CommitOptions struct {
Author string
Changes []string
Format string
ImageName string
IncludeVolumes bool
Message string
Pause bool
Quiet bool
Squash bool
Writer io.Writer
}
type CopyOptions struct {
// If used with ContainerCopyFromArchive and set to true
// it will change ownership of files from the source tar archive
// to the primary uid/gid of the destination container.
Chown bool
// Map to translate path names.
Rename map[string]string
// NoOverwriteDirNonDir when true prevents an existing directory or file from being overwritten
// by the other type
NoOverwriteDirNonDir bool
}
type CommitReport struct {
Id string //nolint:revive,stylecheck
}
type ContainerExportOptions struct {
Output string
}
type CheckpointOptions struct {
All bool
Export string
CreateImage string
IgnoreRootFS bool
IgnoreVolumes bool
Keep bool
Latest bool
LeaveRunning bool
TCPEstablished bool
PreCheckPoint bool
WithPrevious bool
Compression archive.Compression
PrintStats bool
FileLocks bool
}
type CheckpointReport struct {
Err error `json:"-"`
Id string `json:"Id"` //nolint:revive,stylecheck
RuntimeDuration int64 `json:"runtime_checkpoint_duration"`
CRIUStatistics *define.CRIUCheckpointRestoreStatistics `json:"criu_statistics"`
}
type RestoreOptions struct {
All bool
IgnoreRootFS bool
IgnoreVolumes bool
IgnoreStaticIP bool
IgnoreStaticMAC bool
Import string
CheckpointImage bool
Keep bool
Latest bool
Name string
TCPEstablished bool
ImportPrevious string
PublishPorts []string
Pod string
PrintStats bool
FileLocks bool
}
type RestoreReport struct {
Err error `json:"-"`
Id string `json:"Id"` //nolint:revive,stylecheck
RuntimeDuration int64 `json:"runtime_restore_duration"`
CRIUStatistics *define.CRIUCheckpointRestoreStatistics `json:"criu_statistics"`
}
type ContainerCreateReport struct {
Id string //nolint:revive,stylecheck
}
// AttachOptions describes the cli and other values
// needed to perform an attach
type AttachOptions struct {
DetachKeys string
Latest bool
NoStdin bool
SigProxy bool
Stdin *os.File
Stdout *os.File
Stderr *os.File
}
// ContainerLogsOptions describes the options to extract container logs.
type ContainerLogsOptions struct {
// Show extra details provided to the logs.
Details bool
// Follow the log output.
Follow bool
// Display logs for the latest container only. Ignored on the remote client.
Latest bool
// Show container names in the output.
Names bool
// Show logs since this timestamp.
Since time.Time
// Show logs until this timestamp.
Until time.Time
// Number of lines to display at the end of the output.
Tail int64
// Show timestamps in the logs.
Timestamps bool
// Show different colors in the logs.
Colors bool
// Write the stdout to this Writer.
StdoutWriter io.Writer
// Write the stderr to this Writer.
StderrWriter io.Writer
}
// ExecOptions describes the cli values to exec into
// a container
type ExecOptions struct {
Cmd []string
DetachKeys string
Envs map[string]string
Interactive bool
Latest bool
PreserveFDs uint
Privileged bool
Tty bool
User string
WorkDir string
}
// ContainerExistsOptions describes the cli values to check if a container exists
type ContainerExistsOptions struct {
External bool
}
// ContainerStartOptions describes the val from the
// CLI needed to start a container
type ContainerStartOptions struct {
Filters map[string][]string
All bool
Attach bool
DetachKeys string
Interactive bool
Latest bool
SigProxy bool
Stdout *os.File
Stderr *os.File
Stdin *os.File
}
// ContainerStartReport describes the response from starting
// containers from the cli
type ContainerStartReport struct {
Id string //nolint:revive,stylecheck
RawInput string
Err error
ExitCode int
}
// ContainerListOptions describes the CLI options
// for listing containers
type ContainerListOptions struct {
All bool
Filters map[string][]string
Format string
Last int
Latest bool
Namespace bool
Pod bool
Quiet bool
Size bool
External bool
Sort string
Sync bool
Watch uint
}
// ContainerRunOptions describes the options needed
// to run a container from the CLI
type ContainerRunOptions struct {
CIDFile string
Detach bool
DetachKeys string
ErrorStream *os.File
InputStream *os.File
OutputStream *os.File
PreserveFDs uint
Rm bool
SigProxy bool
Spec *specgen.SpecGenerator
Passwd bool
}
// ContainerRunReport describes the results of running
// a container
type ContainerRunReport struct {
ExitCode int
Id string //nolint:revive,stylecheck
}
// ContainerCleanupOptions are the CLI values for the
// cleanup command
type ContainerCleanupOptions struct {
All bool
Exec string
Latest bool
Remove bool
RemoveImage bool
}
// ContainerCleanupReport describes the response from a
// container cleanup
type ContainerCleanupReport struct {
CleanErr error
Id string //nolint:revive,stylecheck
RmErr error
RmiErr error
}
// ContainerInitOptions describes input options
// for the container init cli
type ContainerInitOptions struct {
All bool
Latest bool
}
// ContainerInitReport describes the results of a
// container init
type ContainerInitReport struct {
Err error
Id string //nolint:revive,stylecheck
}
// ContainerMountOptions describes the input values for mounting containers
// in the CLI
type ContainerMountOptions struct {
All bool
Format string
Latest bool
NoTruncate bool
}
// ContainerUnmountOptions are the options from the cli for unmounting
type ContainerUnmountOptions struct {
All bool
Force bool
Latest bool
}
// ContainerMountReport describes the response from container mount
type ContainerMountReport struct {
Err error
Id string //nolint:revive,stylecheck
Name string
Path string
}
// ContainerUnmountReport describes the response from umounting a container
type ContainerUnmountReport struct {
Err error
Id string //nolint:revive,stylecheck
}
// ContainerPruneOptions describes the options needed
// to prune a container from the CLI
type ContainerPruneOptions struct {
Filters url.Values `json:"filters" schema:"filters"`
}
// ContainerPortOptions describes the options to obtain
// port information on containers
type ContainerPortOptions struct {
All bool
Latest bool
}
// ContainerPortReport describes the output needed for
// the CLI to output ports
type ContainerPortReport struct {
Id string //nolint:revive,stylecheck
Ports []nettypes.PortMapping
}
// ContainerCpOptions describes input options for cp.
type ContainerCpOptions struct {
// Pause the container while copying.
Pause bool
// Extract the tarfile into the destination directory.
Extract bool
// OverwriteDirNonDir allows for overwriting a directory with a
// non-directory and vice versa.
OverwriteDirNonDir bool
}
// ContainerStatsOptions describes input options for getting
// stats on containers
type ContainerStatsOptions struct {
// Operate on the latest known container. Only supported for local
// clients.
Latest bool
// Stream stats.
Stream bool
// Interval in seconds
Interval int
}
// ContainerStatsReport is used for streaming container stats.
type ContainerStatsReport struct {
// Error from reading stats.
Error error
// Results, set when there is no error.
Stats []define.ContainerStats
}
// ContainerRenameOptions describes input options for renaming a container.
type ContainerRenameOptions struct {
// NewName is the new name that will be given to the container.
NewName string
}
// ContainerCloneOptions contains options for cloning an existing continer
type ContainerCloneOptions struct {
ID string
Destroy bool
CreateOpts ContainerCreateOptions
Image string
RawImageName string
Run bool
Force bool
}
|