summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
Diffstat (limited to 'pkg')
-rw-r--r--pkg/api/handlers/compat/changes.go4
-rw-r--r--pkg/api/handlers/compat/containers.go18
-rw-r--r--pkg/api/handlers/compat/containers_archive.go12
-rw-r--r--pkg/api/handlers/compat/containers_attach.go8
-rw-r--r--pkg/api/handlers/compat/containers_create.go17
-rw-r--r--pkg/api/handlers/compat/containers_export.go4
-rw-r--r--pkg/api/handlers/compat/containers_logs.go8
-rw-r--r--pkg/api/handlers/compat/containers_pause.go4
-rw-r--r--pkg/api/handlers/compat/containers_prune.go10
-rw-r--r--pkg/api/handlers/compat/containers_restart.go10
-rw-r--r--pkg/api/handlers/compat/containers_start.go6
-rw-r--r--pkg/api/handlers/compat/containers_stats.go8
-rw-r--r--pkg/api/handlers/compat/containers_stop.go10
-rw-r--r--pkg/api/handlers/compat/containers_top.go6
-rw-r--r--pkg/api/handlers/compat/containers_unpause.go4
-rw-r--r--pkg/api/handlers/compat/events.go9
-rw-r--r--pkg/api/handlers/compat/exec.go12
-rw-r--r--pkg/api/handlers/compat/images.go148
-rw-r--r--pkg/api/handlers/compat/images_build.go100
-rw-r--r--pkg/api/handlers/compat/images_history.go7
-rw-r--r--pkg/api/handlers/compat/images_prune.go6
-rw-r--r--pkg/api/handlers/compat/images_push.go51
-rw-r--r--pkg/api/handlers/compat/images_remove.go5
-rw-r--r--pkg/api/handlers/compat/images_search.go12
-rw-r--r--pkg/api/handlers/compat/images_tag.go4
-rw-r--r--pkg/api/handlers/compat/info.go10
-rw-r--r--pkg/api/handlers/compat/networks.go53
-rw-r--r--pkg/api/handlers/compat/resize.go9
-rw-r--r--pkg/api/handlers/compat/secrets.go17
-rw-r--r--pkg/api/handlers/compat/swagger.go2
-rw-r--r--pkg/api/handlers/compat/system.go11
-rw-r--r--pkg/api/handlers/compat/unsupported.go4
-rw-r--r--pkg/api/handlers/compat/version.go8
-rw-r--r--pkg/api/handlers/compat/volumes.go12
-rw-r--r--pkg/api/handlers/decoder.go17
-rw-r--r--pkg/api/handlers/libpod/containers.go15
-rw-r--r--pkg/api/handlers/libpod/containers_create.go10
-rw-r--r--pkg/api/handlers/libpod/containers_stats.go8
-rw-r--r--pkg/api/handlers/libpod/copy.go2
-rw-r--r--pkg/api/handlers/libpod/generate.go12
-rw-r--r--pkg/api/handlers/libpod/healthcheck.go6
-rw-r--r--pkg/api/handlers/libpod/images.go22
-rw-r--r--pkg/api/handlers/libpod/images_pull.go17
-rw-r--r--pkg/api/handlers/libpod/info.go4
-rw-r--r--pkg/api/handlers/libpod/manifests.go14
-rw-r--r--pkg/api/handlers/libpod/networks.go13
-rw-r--r--pkg/api/handlers/libpod/play.go10
-rw-r--r--pkg/api/handlers/libpod/pods.go18
-rw-r--r--pkg/api/handlers/libpod/secrets.go8
-rw-r--r--pkg/api/handlers/libpod/swagger.go6
-rw-r--r--pkg/api/handlers/libpod/system.go10
-rw-r--r--pkg/api/handlers/libpod/volumes.go16
-rw-r--r--pkg/api/handlers/swagger/swagger.go10
-rw-r--r--pkg/api/handlers/types.go4
-rw-r--r--pkg/api/handlers/utils/containers.go21
-rw-r--r--pkg/api/handlers/utils/errors.go4
-rw-r--r--pkg/api/handlers/utils/images.go4
-rw-r--r--pkg/api/server/handler_api.go4
-rw-r--r--pkg/api/server/register_archive.go2
-rw-r--r--pkg/api/server/register_auth.go2
-rw-r--r--pkg/api/server/register_containers.go26
-rw-r--r--pkg/api/server/register_distribution.go2
-rw-r--r--pkg/api/server/register_events.go2
-rw-r--r--pkg/api/server/register_exec.go2
-rw-r--r--pkg/api/server/register_generate.go7
-rw-r--r--pkg/api/server/register_healthcheck.go2
-rw-r--r--pkg/api/server/register_images.go4
-rw-r--r--pkg/api/server/register_info.go4
-rw-r--r--pkg/api/server/register_manifest.go14
-rw-r--r--pkg/api/server/register_monitor.go2
-rw-r--r--pkg/api/server/register_networks.go4
-rw-r--r--pkg/api/server/register_ping.go3
-rw-r--r--pkg/api/server/register_play.go2
-rw-r--r--pkg/api/server/register_plugins.go2
-rw-r--r--pkg/api/server/register_pods.go6
-rw-r--r--pkg/api/server/register_secrets.go4
-rw-r--r--pkg/api/server/register_swagger.go2
-rw-r--r--pkg/api/server/register_swarm.go2
-rw-r--r--pkg/api/server/register_system.go4
-rw-r--r--pkg/api/server/register_version.go2
-rw-r--r--pkg/api/server/register_volumes.go4
-rw-r--r--pkg/api/server/server.go8
-rw-r--r--pkg/api/server/swagger.go10
-rw-r--r--pkg/auth/auth.go1
-rw-r--r--pkg/autoupdate/autoupdate.go13
-rw-r--r--pkg/bindings/README.md18
-rw-r--r--pkg/bindings/connection.go4
-rw-r--r--pkg/bindings/containers/archive.go8
-rw-r--r--pkg/bindings/containers/attach.go8
-rw-r--r--pkg/bindings/containers/checkpoint.go4
-rw-r--r--pkg/bindings/containers/commit.go4
-rw-r--r--pkg/bindings/containers/containers.go15
-rw-r--r--pkg/bindings/containers/create.go6
-rw-r--r--pkg/bindings/containers/diff.go2
-rw-r--r--pkg/bindings/containers/exec.go6
-rw-r--r--pkg/bindings/containers/healthcheck.go4
-rw-r--r--pkg/bindings/containers/logs.go2
-rw-r--r--pkg/bindings/containers/mount.go2
-rw-r--r--pkg/bindings/containers/rename.go2
-rw-r--r--pkg/bindings/containers/types.go2
-rw-r--r--pkg/bindings/containers/types_attach_options.go60
-rw-r--r--pkg/bindings/containers/types_checkpoint_options.go60
-rw-r--r--pkg/bindings/containers/types_commit_options.go60
-rw-r--r--pkg/bindings/containers/types_create_options.go60
-rw-r--r--pkg/bindings/containers/types_diff_options.go60
-rw-r--r--pkg/bindings/containers/types_execinspect_options.go60
-rw-r--r--pkg/bindings/containers/types_execstart_options.go60
-rw-r--r--pkg/bindings/containers/types_execstartandattach_options.go60
-rw-r--r--pkg/bindings/containers/types_exists_options.go60
-rw-r--r--pkg/bindings/containers/types_export_options.go60
-rw-r--r--pkg/bindings/containers/types_healthcheck_options.go60
-rw-r--r--pkg/bindings/containers/types_init_options.go60
-rw-r--r--pkg/bindings/containers/types_inspect_options.go60
-rw-r--r--pkg/bindings/containers/types_kill_options.go60
-rw-r--r--pkg/bindings/containers/types_list_options.go60
-rw-r--r--pkg/bindings/containers/types_log_options.go60
-rw-r--r--pkg/bindings/containers/types_mount_options.go60
-rw-r--r--pkg/bindings/containers/types_mountedcontainerpaths_options.go60
-rw-r--r--pkg/bindings/containers/types_pause_options.go60
-rw-r--r--pkg/bindings/containers/types_prune_options.go60
-rw-r--r--pkg/bindings/containers/types_remove_options.go60
-rw-r--r--pkg/bindings/containers/types_rename_options.go60
-rw-r--r--pkg/bindings/containers/types_resizeexectty_options.go60
-rw-r--r--pkg/bindings/containers/types_resizetty_options.go60
-rw-r--r--pkg/bindings/containers/types_restart_options.go60
-rw-r--r--pkg/bindings/containers/types_restore_options.go60
-rw-r--r--pkg/bindings/containers/types_shouldrestart_options.go60
-rw-r--r--pkg/bindings/containers/types_start_options.go60
-rw-r--r--pkg/bindings/containers/types_stats_options.go60
-rw-r--r--pkg/bindings/containers/types_stop_options.go60
-rw-r--r--pkg/bindings/containers/types_top_options.go60
-rw-r--r--pkg/bindings/containers/types_unmount_options.go60
-rw-r--r--pkg/bindings/containers/types_unpause_options.go60
-rw-r--r--pkg/bindings/containers/types_wait_options.go62
-rw-r--r--pkg/bindings/errors.go8
-rw-r--r--pkg/bindings/generate/generate.go4
-rw-r--r--pkg/bindings/generate/types.go2
-rw-r--r--pkg/bindings/generate/types_kube_options.go60
-rw-r--r--pkg/bindings/generate/types_systemd_options.go76
-rw-r--r--pkg/bindings/generator/generator.go114
-rw-r--r--pkg/bindings/images/build.go24
-rw-r--r--pkg/bindings/images/diff.go2
-rw-r--r--pkg/bindings/images/images.go10
-rw-r--r--pkg/bindings/images/pull.go7
-rw-r--r--pkg/bindings/images/rm.go8
-rw-r--r--pkg/bindings/images/types_diff_options.go60
-rw-r--r--pkg/bindings/images/types_exists_options.go60
-rw-r--r--pkg/bindings/images/types_export_options.go60
-rw-r--r--pkg/bindings/images/types_get_options.go60
-rw-r--r--pkg/bindings/images/types_history_options.go60
-rw-r--r--pkg/bindings/images/types_import_options.go60
-rw-r--r--pkg/bindings/images/types_list_options.go60
-rw-r--r--pkg/bindings/images/types_load_options.go60
-rw-r--r--pkg/bindings/images/types_prune_options.go60
-rw-r--r--pkg/bindings/images/types_pull_options.go60
-rw-r--r--pkg/bindings/images/types_push_options.go60
-rw-r--r--pkg/bindings/images/types_remove_options.go60
-rw-r--r--pkg/bindings/images/types_search_options.go60
-rw-r--r--pkg/bindings/images/types_tag_options.go60
-rw-r--r--pkg/bindings/images/types_tree_options.go60
-rw-r--r--pkg/bindings/images/types_untag_options.go60
-rw-r--r--pkg/bindings/internal/util/util.go102
-rw-r--r--pkg/bindings/manifests/manifests.go6
-rw-r--r--pkg/bindings/manifests/types_add_options.go60
-rw-r--r--pkg/bindings/manifests/types_create_options.go60
-rw-r--r--pkg/bindings/manifests/types_exists_options.go60
-rw-r--r--pkg/bindings/manifests/types_inspect_options.go60
-rw-r--r--pkg/bindings/manifests/types_remove_options.go60
-rw-r--r--pkg/bindings/network/network.go12
-rw-r--r--pkg/bindings/network/types_connect_options.go60
-rw-r--r--pkg/bindings/network/types_create_options.go60
-rw-r--r--pkg/bindings/network/types_disconnect_options.go60
-rw-r--r--pkg/bindings/network/types_exists_options.go60
-rw-r--r--pkg/bindings/network/types_inspect_options.go60
-rw-r--r--pkg/bindings/network/types_list_options.go60
-rw-r--r--pkg/bindings/network/types_prune_options.go60
-rw-r--r--pkg/bindings/network/types_remove_options.go60
-rw-r--r--pkg/bindings/play/play.go6
-rw-r--r--pkg/bindings/play/types_kube_options.go60
-rw-r--r--pkg/bindings/pods/pods.go8
-rw-r--r--pkg/bindings/pods/types_create_options.go60
-rw-r--r--pkg/bindings/pods/types_exists_options.go60
-rw-r--r--pkg/bindings/pods/types_inspect_options.go60
-rw-r--r--pkg/bindings/pods/types_kill_options.go60
-rw-r--r--pkg/bindings/pods/types_list_options.go60
-rw-r--r--pkg/bindings/pods/types_pause_options.go60
-rw-r--r--pkg/bindings/pods/types_prune_options.go60
-rw-r--r--pkg/bindings/pods/types_remove_options.go60
-rw-r--r--pkg/bindings/pods/types_restart_options.go60
-rw-r--r--pkg/bindings/pods/types_start_options.go60
-rw-r--r--pkg/bindings/pods/types_stats_options.go60
-rw-r--r--pkg/bindings/pods/types_stop_options.go60
-rw-r--r--pkg/bindings/pods/types_top_options.go60
-rw-r--r--pkg/bindings/pods/types_unpause_options.go60
-rw-r--r--pkg/bindings/secrets/secrets.go4
-rw-r--r--pkg/bindings/secrets/types_create_options.go60
-rw-r--r--pkg/bindings/secrets/types_inspect_options.go60
-rw-r--r--pkg/bindings/secrets/types_list_options.go60
-rw-r--r--pkg/bindings/secrets/types_remove_options.go60
-rw-r--r--pkg/bindings/system/info.go4
-rw-r--r--pkg/bindings/system/system.go6
-rw-r--r--pkg/bindings/system/types_disk_options.go60
-rw-r--r--pkg/bindings/system/types_events_options.go60
-rw-r--r--pkg/bindings/system/types_info_options.go60
-rw-r--r--pkg/bindings/system/types_prune_options.go60
-rw-r--r--pkg/bindings/system/types_version_options.go60
-rw-r--r--pkg/bindings/test/attach_test.go6
-rw-r--r--pkg/bindings/test/auth_test.go4
-rw-r--r--pkg/bindings/test/common_test.go8
-rw-r--r--pkg/bindings/test/containers_test.go10
-rw-r--r--pkg/bindings/test/create_test.go4
-rw-r--r--pkg/bindings/test/exec_test.go6
-rw-r--r--pkg/bindings/test/images_test.go8
-rw-r--r--pkg/bindings/test/info_test.go8
-rw-r--r--pkg/bindings/test/manifests_test.go6
-rw-r--r--pkg/bindings/test/pods_test.go8
-rw-r--r--pkg/bindings/test/secrets_test.go4
-rw-r--r--pkg/bindings/test/system_test.go14
-rw-r--r--pkg/bindings/test/volumes_test.go10
-rw-r--r--pkg/bindings/util/util.go30
-rw-r--r--pkg/bindings/volumes/types_create_options.go60
-rw-r--r--pkg/bindings/volumes/types_exists_options.go60
-rw-r--r--pkg/bindings/volumes/types_inspect_options.go60
-rw-r--r--pkg/bindings/volumes/types_list_options.go60
-rw-r--r--pkg/bindings/volumes/types_prune_options.go60
-rw-r--r--pkg/bindings/volumes/types_remove_options.go60
-rw-r--r--pkg/bindings/volumes/volumes.go6
-rw-r--r--pkg/cgroups/cgroups.go26
-rw-r--r--pkg/cgroups/cgroups_test.go2
-rw-r--r--pkg/cgroups/cpu.go1
-rw-r--r--pkg/checkpoint/checkpoint_restore.go12
-rw-r--r--pkg/copy/fileinfo.go6
-rw-r--r--pkg/domain/entities/container_ps.go2
-rw-r--r--pkg/domain/entities/containers.go16
-rw-r--r--pkg/domain/entities/engine_container.go8
-rw-r--r--pkg/domain/entities/engine_image.go2
-rw-r--r--pkg/domain/entities/events.go2
-rw-r--r--pkg/domain/entities/generate.go2
-rw-r--r--pkg/domain/entities/images.go4
-rw-r--r--pkg/domain/entities/network.go1
-rw-r--r--pkg/domain/entities/pods.go4
-rw-r--r--pkg/domain/entities/secrets.go2
-rw-r--r--pkg/domain/entities/system.go4
-rw-r--r--pkg/domain/entities/types.go4
-rw-r--r--pkg/domain/entities/volumes.go2
-rw-r--r--pkg/domain/filters/containers.go10
-rw-r--r--pkg/domain/filters/pods.go8
-rw-r--r--pkg/domain/filters/volumes.go2
-rw-r--r--pkg/domain/infra/abi/archive.go11
-rw-r--r--pkg/domain/infra/abi/auto-update.go4
-rw-r--r--pkg/domain/infra/abi/containers.go74
-rw-r--r--pkg/domain/infra/abi/containers_runlabel.go10
-rw-r--r--pkg/domain/infra/abi/containers_stat.go10
-rw-r--r--pkg/domain/infra/abi/events.go4
-rw-r--r--pkg/domain/infra/abi/generate.go8
-rw-r--r--pkg/domain/infra/abi/healthcheck.go4
-rw-r--r--pkg/domain/infra/abi/images.go27
-rw-r--r--pkg/domain/infra/abi/images_list.go4
-rw-r--r--pkg/domain/infra/abi/manifest.go6
-rw-r--r--pkg/domain/infra/abi/network.go8
-rw-r--r--pkg/domain/infra/abi/parse/parse.go4
-rw-r--r--pkg/domain/infra/abi/play.go17
-rw-r--r--pkg/domain/infra/abi/pods.go14
-rw-r--r--pkg/domain/infra/abi/pods_stats.go10
-rw-r--r--pkg/domain/infra/abi/runtime.go2
-rw-r--r--pkg/domain/infra/abi/secrets.go3
-rw-r--r--pkg/domain/infra/abi/system.go18
-rw-r--r--pkg/domain/infra/abi/terminal/sigproxy_linux.go8
-rw-r--r--pkg/domain/infra/abi/terminal/terminal.go12
-rw-r--r--pkg/domain/infra/abi/terminal/terminal_linux.go9
-rw-r--r--pkg/domain/infra/abi/trust.go4
-rw-r--r--pkg/domain/infra/abi/volumes.go12
-rw-r--r--pkg/domain/infra/runtime_abi.go10
-rw-r--r--pkg/domain/infra/runtime_abi_unsupported.go2
-rw-r--r--pkg/domain/infra/runtime_libpod.go12
-rw-r--r--pkg/domain/infra/runtime_proxy.go4
-rw-r--r--pkg/domain/infra/runtime_tunnel.go6
-rw-r--r--pkg/domain/infra/tunnel/auto-update.go2
-rw-r--r--pkg/domain/infra/tunnel/containers.go43
-rw-r--r--pkg/domain/infra/tunnel/events.go6
-rw-r--r--pkg/domain/infra/tunnel/generate.go6
-rw-r--r--pkg/domain/infra/tunnel/healthcheck.go6
-rw-r--r--pkg/domain/infra/tunnel/helpers.go35
-rw-r--r--pkg/domain/infra/tunnel/images.go15
-rw-r--r--pkg/domain/infra/tunnel/manifest.go6
-rw-r--r--pkg/domain/infra/tunnel/network.go6
-rw-r--r--pkg/domain/infra/tunnel/play.go4
-rw-r--r--pkg/domain/infra/tunnel/pods.go10
-rw-r--r--pkg/domain/infra/tunnel/secrets.go7
-rw-r--r--pkg/domain/infra/tunnel/system.go6
-rw-r--r--pkg/domain/infra/tunnel/trust.go2
-rw-r--r--pkg/domain/infra/tunnel/volumes.go8
-rw-r--r--pkg/hooks/0.1.0/hook.go2
-rw-r--r--pkg/hooks/0.1.0/hook_test.go2
-rw-r--r--pkg/hooks/hooks.go2
-rw-r--r--pkg/hooks/hooks_test.go2
-rw-r--r--pkg/hooks/monitor.go2
-rw-r--r--pkg/hooks/read.go4
-rw-r--r--pkg/hooks/read_test.go2
-rw-r--r--pkg/inspect/inspect.go2
-rw-r--r--pkg/kubeutils/resize.go4
-rw-r--r--pkg/lookup/lookup.go1
-rw-r--r--pkg/netns/netns_linux.go6
-rw-r--r--pkg/parallel/ctr/ctr.go4
-rw-r--r--pkg/ps/ps.go10
-rw-r--r--pkg/registrar/registrar_test.go4
-rw-r--r--pkg/registries/registries.go2
-rw-r--r--pkg/resolvconf/resolvconf.go2
-rw-r--r--pkg/rootless/rootless.go16
-rw-r--r--pkg/rootless/rootless_linux.c12
-rw-r--r--pkg/rootless/rootless_linux.go2
-rw-r--r--pkg/rootlessport/rootlessport_linux.go1
-rw-r--r--pkg/specgen/config_unsupported.go2
-rw-r--r--pkg/specgen/container_validate.go7
-rw-r--r--pkg/specgen/generate/config_linux.go5
-rw-r--r--pkg/specgen/generate/config_linux_cgo.go6
-rw-r--r--pkg/specgen/generate/config_linux_nocgo.go4
-rw-r--r--pkg/specgen/generate/container.go22
-rw-r--r--pkg/specgen/generate/container_create.go13
-rw-r--r--pkg/specgen/generate/kube/kube.go9
-rw-r--r--pkg/specgen/generate/kube/seccomp.go3
-rw-r--r--pkg/specgen/generate/kube/volume.go4
-rw-r--r--pkg/specgen/generate/namespaces.go12
-rw-r--r--pkg/specgen/generate/oci.go16
-rw-r--r--pkg/specgen/generate/pod_create.go4
-rw-r--r--pkg/specgen/generate/ports.go4
-rw-r--r--pkg/specgen/generate/security.go24
-rw-r--r--pkg/specgen/generate/storage.go8
-rw-r--r--pkg/specgen/generate/validate.go6
-rw-r--r--pkg/specgen/namespaces.go4
-rw-r--r--pkg/specgen/pod_validate.go5
-rw-r--r--pkg/specgen/volumes.go13
-rw-r--r--pkg/systemd/dbus.go2
-rw-r--r--pkg/systemd/generate/common.go2
-rw-r--r--pkg/systemd/generate/common_test.go1
-rw-r--r--pkg/systemd/generate/containers.go22
-rw-r--r--pkg/systemd/generate/containers_test.go67
-rw-r--r--pkg/systemd/generate/pods.go16
-rw-r--r--pkg/systemd/generate/pods_test.go49
-rw-r--r--pkg/trust/trust.go1
-rw-r--r--pkg/util/mountOpts.go7
-rw-r--r--pkg/util/utils.go27
-rw-r--r--pkg/util/utils_supported.go2
343 files changed, 1783 insertions, 6529 deletions
diff --git a/pkg/api/handlers/compat/changes.go b/pkg/api/handlers/compat/changes.go
index a5851ecfc..c442abbf9 100644
--- a/pkg/api/handlers/compat/changes.go
+++ b/pkg/api/handlers/compat/changes.go
@@ -3,8 +3,8 @@ package compat
import (
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
)
func Changes(w http.ResponseWriter, r *http.Request) {
diff --git a/pkg/api/handlers/compat/containers.go b/pkg/api/handlers/compat/containers.go
index 9c0893a80..971b6aa50 100644
--- a/pkg/api/handlers/compat/containers.go
+++ b/pkg/api/handlers/compat/containers.go
@@ -10,15 +10,15 @@ import (
"syscall"
"time"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/filters"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
- "github.com/containers/podman/v2/pkg/ps"
- "github.com/containers/podman/v2/pkg/signal"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/filters"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/pkg/ps"
+ "github.com/containers/podman/v3/pkg/signal"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"github.com/docker/go-connections/nat"
diff --git a/pkg/api/handlers/compat/containers_archive.go b/pkg/api/handlers/compat/containers_archive.go
index 083c72ce8..e119dc7cb 100644
--- a/pkg/api/handlers/compat/containers_archive.go
+++ b/pkg/api/handlers/compat/containers_archive.go
@@ -5,11 +5,11 @@ import (
"net/http"
"os"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/copy"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/copy"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
"github.com/gorilla/schema"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
@@ -62,7 +62,7 @@ func handleHeadAndGet(w http.ResponseWriter, r *http.Request, decoder *schema.De
w.Header().Add(copy.XDockerContainerPathStatHeader, statHeader)
}
- if errors.Cause(err) == define.ErrNoSuchCtr || errors.Cause(err) == copy.ENOENT {
+ if errors.Cause(err) == define.ErrNoSuchCtr || errors.Cause(err) == copy.ErrENOENT {
// 404 is returned for an absent container and path. The
// clients must deal with it accordingly.
utils.Error(w, "Not found.", http.StatusNotFound, err)
diff --git a/pkg/api/handlers/compat/containers_attach.go b/pkg/api/handlers/compat/containers_attach.go
index a4013469b..c230efbe0 100644
--- a/pkg/api/handlers/compat/containers_attach.go
+++ b/pkg/api/handlers/compat/containers_attach.go
@@ -3,10 +3,10 @@ package compat
import (
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/api/server/idle"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/api/server/idle"
"github.com/gorilla/schema"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
diff --git a/pkg/api/handlers/compat/containers_create.go b/pkg/api/handlers/compat/containers_create.go
index 6e85872b2..93934f1de 100644
--- a/pkg/api/handlers/compat/containers_create.go
+++ b/pkg/api/handlers/compat/containers_create.go
@@ -4,14 +4,14 @@ import (
"encoding/json"
"net/http"
- "github.com/containers/podman/v2/cmd/podman/common"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/cmd/podman/common"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/pkg/specgen"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
@@ -47,6 +47,7 @@ func CreateContainer(w http.ResponseWriter, r *http.Request) {
rtc, err := runtime.GetConfig()
if err != nil {
utils.Error(w, "unable to obtain runtime config", http.StatusInternalServerError, errors.Wrap(err, "unable to get runtime config"))
+ return
}
newImage, err := runtime.ImageRuntime().NewFromLocal(body.Config.Image)
diff --git a/pkg/api/handlers/compat/containers_export.go b/pkg/api/handlers/compat/containers_export.go
index 500daa9cd..252d2d8b5 100644
--- a/pkg/api/handlers/compat/containers_export.go
+++ b/pkg/api/handlers/compat/containers_export.go
@@ -5,8 +5,8 @@ import (
"net/http"
"os"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
"github.com/pkg/errors"
)
diff --git a/pkg/api/handlers/compat/containers_logs.go b/pkg/api/handlers/compat/containers_logs.go
index 38a6329b9..cb4dee4d2 100644
--- a/pkg/api/handlers/compat/containers_logs.go
+++ b/pkg/api/handlers/compat/containers_logs.go
@@ -10,10 +10,10 @@ import (
"sync"
"time"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/logs"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/logs"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/gorilla/schema"
"github.com/pkg/errors"
log "github.com/sirupsen/logrus"
diff --git a/pkg/api/handlers/compat/containers_pause.go b/pkg/api/handlers/compat/containers_pause.go
index a7e0a66f1..d00b19acc 100644
--- a/pkg/api/handlers/compat/containers_pause.go
+++ b/pkg/api/handlers/compat/containers_pause.go
@@ -3,8 +3,8 @@ package compat
import (
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
)
func PauseContainer(w http.ResponseWriter, r *http.Request) {
diff --git a/pkg/api/handlers/compat/containers_prune.go b/pkg/api/handlers/compat/containers_prune.go
index 7bba38475..dc4d53af6 100644
--- a/pkg/api/handlers/compat/containers_prune.go
+++ b/pkg/api/handlers/compat/containers_prune.go
@@ -4,11 +4,11 @@ import (
"bytes"
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
- "github.com/containers/podman/v2/pkg/domain/filters"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/pkg/domain/filters"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
diff --git a/pkg/api/handlers/compat/containers_restart.go b/pkg/api/handlers/compat/containers_restart.go
index 70edfcbb3..46a6297fa 100644
--- a/pkg/api/handlers/compat/containers_restart.go
+++ b/pkg/api/handlers/compat/containers_restart.go
@@ -3,11 +3,11 @@ package compat
import (
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
diff --git a/pkg/api/handlers/compat/containers_start.go b/pkg/api/handlers/compat/containers_start.go
index 726da6f99..391aa752d 100644
--- a/pkg/api/handlers/compat/containers_start.go
+++ b/pkg/api/handlers/compat/containers_start.go
@@ -5,9 +5,9 @@ import (
"github.com/sirupsen/logrus"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
"github.com/gorilla/schema"
)
diff --git a/pkg/api/handlers/compat/containers_stats.go b/pkg/api/handlers/compat/containers_stats.go
index 2a76ef962..694b57bb1 100644
--- a/pkg/api/handlers/compat/containers_stats.go
+++ b/pkg/api/handlers/compat/containers_stats.go
@@ -5,10 +5,10 @@ import (
"net/http"
"time"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/cgroups"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/cgroups"
docker "github.com/docker/docker/api/types"
"github.com/gorilla/schema"
"github.com/pkg/errors"
diff --git a/pkg/api/handlers/compat/containers_stop.go b/pkg/api/handlers/compat/containers_stop.go
index 000685aa0..0526865b9 100644
--- a/pkg/api/handlers/compat/containers_stop.go
+++ b/pkg/api/handlers/compat/containers_stop.go
@@ -3,11 +3,11 @@ package compat
import (
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
diff --git a/pkg/api/handlers/compat/containers_top.go b/pkg/api/handlers/compat/containers_top.go
index eadc06101..ab9f613af 100644
--- a/pkg/api/handlers/compat/containers_top.go
+++ b/pkg/api/handlers/compat/containers_top.go
@@ -4,9 +4,9 @@ import (
"net/http"
"strings"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
diff --git a/pkg/api/handlers/compat/containers_unpause.go b/pkg/api/handlers/compat/containers_unpause.go
index 760e85814..a37c4ba2a 100644
--- a/pkg/api/handlers/compat/containers_unpause.go
+++ b/pkg/api/handlers/compat/containers_unpause.go
@@ -3,8 +3,8 @@ package compat
import (
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
)
func UnpauseContainer(w http.ResponseWriter, r *http.Request) {
diff --git a/pkg/api/handlers/compat/events.go b/pkg/api/handlers/compat/events.go
index 82a74e419..9e82831d7 100644
--- a/pkg/api/handlers/compat/events.go
+++ b/pkg/api/handlers/compat/events.go
@@ -5,10 +5,10 @@ import (
"fmt"
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/events"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/events"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/gorilla/schema"
jsoniter "github.com/json-iterator/go"
"github.com/pkg/errors"
@@ -111,7 +111,6 @@ func GetEvents(w http.ResponseWriter, r *http.Request) {
Until: query.Until,
}
errorChannel <- runtime.Events(r.Context(), readOpts)
-
}()
var flush = func() {}
diff --git a/pkg/api/handlers/compat/exec.go b/pkg/api/handlers/compat/exec.go
index cc5db8efe..1b7b884e0 100644
--- a/pkg/api/handlers/compat/exec.go
+++ b/pkg/api/handlers/compat/exec.go
@@ -6,12 +6,12 @@ import (
"net/http"
"strings"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/api/server/idle"
- "github.com/containers/podman/v2/pkg/specgen/generate"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/api/server/idle"
+ "github.com/containers/podman/v3/pkg/specgen/generate"
"github.com/gorilla/mux"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
diff --git a/pkg/api/handlers/compat/images.go b/pkg/api/handlers/compat/images.go
index 0ae0f3bcf..e5caa9ea5 100644
--- a/pkg/api/handlers/compat/images.go
+++ b/pkg/api/handlers/compat/images.go
@@ -1,6 +1,7 @@
package compat
import (
+ "context"
"encoding/json"
"fmt"
"io"
@@ -10,14 +11,16 @@ import (
"strings"
"github.com/containers/buildah"
- "github.com/containers/common/pkg/config"
"github.com/containers/image/v5/manifest"
- "github.com/containers/podman/v2/libpod"
- image2 "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/auth"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/image/v5/types"
+ "github.com/containers/podman/v3/libpod"
+ image2 "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/auth"
+ "github.com/containers/podman/v3/pkg/channel"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/gorilla/schema"
"github.com/opencontainers/go-digest"
"github.com/pkg/errors"
@@ -202,7 +205,6 @@ func CreateImageFromSrc(w http.ResponseWriter, r *http.Request) {
ProgressDetail: map[string]string{},
Id: iid,
})
-
}
func CreateImageFromImage(w http.ResponseWriter, r *http.Request) {
@@ -237,43 +239,103 @@ func CreateImageFromImage(w http.ResponseWriter, r *http.Request) {
if sys := runtime.SystemContext(); sys != nil {
registryOpts.DockerCertPath = sys.DockerCertPath
}
- rtc, err := runtime.GetConfig()
- if err != nil {
- utils.Error(w, "Something went wrong.", http.StatusInternalServerError, errors.Wrap(err, "Decode()"))
- return
- }
- pullPolicy, err := config.ValidatePullPolicy(rtc.Engine.PullPolicy)
- if err != nil {
- utils.Error(w, "Something went wrong.", http.StatusInternalServerError, errors.Wrap(err, "Decode()"))
- return
- }
- img, err := runtime.ImageRuntime().New(r.Context(),
- fromImage,
- "", // signature policy
- authfile,
- nil, // writer
- &registryOpts,
- image2.SigningOptions{},
- nil, // label
- pullPolicy,
- )
- if err != nil {
- utils.Error(w, "Something went wrong.", http.StatusInternalServerError, err)
- return
+
+ stderr := channel.NewWriter(make(chan []byte))
+ defer stderr.Close()
+
+ progress := make(chan types.ProgressProperties)
+
+ var img string
+ runCtx, cancel := context.WithCancel(context.Background())
+ go func() {
+ defer cancel()
+
+ newImage, err := runtime.ImageRuntime().New(
+ runCtx,
+ fromImage,
+ "", // signature policy
+ authfile,
+ nil, // writer
+ &registryOpts,
+ image2.SigningOptions{},
+ nil, // label
+ util.PullImageAlways,
+ progress)
+ if err != nil {
+ stderr.Write([]byte(err.Error() + "\n"))
+ } else {
+ img = newImage.ID()
+ }
+ }()
+
+ flush := func() {
+ if flusher, ok := w.(http.Flusher); ok {
+ flusher.Flush()
+ }
}
- // Success
- utils.WriteResponse(w, http.StatusOK, struct {
- Status string `json:"status"`
- Error string `json:"error"`
- Progress string `json:"progress"`
- ProgressDetail map[string]string `json:"progressDetail"`
- Id string `json:"id"` // nolint
- }{
- Status: fmt.Sprintf("pulling image (%s) from %s", img.Tag, strings.Join(img.Names(), ", ")),
- ProgressDetail: map[string]string{},
- Id: img.ID(),
- })
+ w.WriteHeader(http.StatusOK)
+ w.Header().Add("Content-Type", "application/json")
+ flush()
+
+ enc := json.NewEncoder(w)
+ enc.SetEscapeHTML(true)
+ var failed bool
+
+loop: // break out of for/select infinite loop
+ for {
+ var report struct {
+ Stream string `json:"stream,omitempty"`
+ Status string `json:"status,omitempty"`
+ Progress struct {
+ Current uint64 `json:"current,omitempty"`
+ Total int64 `json:"total,omitempty"`
+ } `json:"progressDetail,omitempty"`
+ Error string `json:"error,omitempty"`
+ Id string `json:"id,omitempty"` // nolint
+ }
+
+ select {
+ case e := <-progress:
+ switch e.Event {
+ case types.ProgressEventNewArtifact:
+ report.Status = "Pulling fs layer"
+ case types.ProgressEventRead:
+ report.Status = "Downloading"
+ report.Progress.Current = e.Offset
+ report.Progress.Total = e.Artifact.Size
+ case types.ProgressEventSkipped:
+ report.Status = "Already exists"
+ case types.ProgressEventDone:
+ report.Status = "Download complete"
+ }
+ report.Id = e.Artifact.Digest.Encoded()[0:12]
+ if err := enc.Encode(report); err != nil {
+ stderr.Write([]byte(err.Error()))
+ }
+ flush()
+ case e := <-stderr.Chan():
+ failed = true
+ report.Error = string(e)
+ if err := enc.Encode(report); err != nil {
+ logrus.Warnf("Failed to json encode error %q", err.Error())
+ }
+ flush()
+ case <-runCtx.Done():
+ if !failed {
+ report.Status = "Pull complete"
+ report.Id = img[0:12]
+ if err := enc.Encode(report); err != nil {
+ logrus.Warnf("Failed to json encode error %q", err.Error())
+ }
+ flush()
+ }
+ break loop // break out of for/select infinite loop
+ case <-r.Context().Done():
+ // Client has closed connection
+ break loop // break out of for/select infinite loop
+ }
+ }
}
func GetImage(w http.ResponseWriter, r *http.Request) {
diff --git a/pkg/api/handlers/compat/images_build.go b/pkg/api/handlers/compat/images_build.go
index 0f27a090f..d79b100e8 100644
--- a/pkg/api/handlers/compat/images_build.go
+++ b/pkg/api/handlers/compat/images_build.go
@@ -10,16 +10,19 @@ import (
"os"
"path/filepath"
"strconv"
+ "time"
"github.com/containers/buildah"
"github.com/containers/buildah/imagebuildah"
+ "github.com/containers/buildah/util"
"github.com/containers/image/v5/types"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/auth"
- "github.com/containers/podman/v2/pkg/channel"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/auth"
+ "github.com/containers/podman/v3/pkg/channel"
"github.com/containers/storage/pkg/archive"
"github.com/gorilla/schema"
+ specs "github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
@@ -65,6 +68,7 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
Annotations string `schema:"annotations"`
BuildArgs string `schema:"buildargs"`
CacheFrom string `schema:"cachefrom"`
+ Compression uint64 `schema:"compression"`
ConfigureNetwork int64 `schema:"networkmode"`
CpuPeriod uint64 `schema:"cpuperiod"` // nolint
CpuQuota int64 `schema:"cpuquota"` // nolint
@@ -73,17 +77,20 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
Devices string `schema:"devices"`
Dockerfile string `schema:"dockerfile"`
DropCapabilities string `schema:"dropcaps"`
+ Excludes string `schema:"excludes"`
ForceRm bool `schema:"forcerm"`
From string `schema:"from"`
HTTPProxy bool `schema:"httpproxy"`
Isolation int64 `schema:"isolation"`
- Jobs uint64 `schema:"jobs"` // nolint
+ Ignore bool `schema:"ignore"`
+ Jobs int `schema:"jobs"` // nolint
Labels string `schema:"labels"`
Layers bool `schema:"layers"`
LogRusage bool `schema:"rusage"`
Manifest string `schema:"manifest"`
MemSwap int64 `schema:"memswap"`
Memory int64 `schema:"memory"`
+ NamespaceOptions string `schema:"nsoptions"`
NoCache bool `schema:"nocache"`
OutputFormat string `schema:"outputformat"`
Platform string `schema:"platform"`
@@ -129,6 +136,7 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
}
}
+ compression := archive.Compression(query.Compression)
// convert label formats
var dropCaps = []string{}
if _, found := r.URL.Query()["dropcaps"]; found {
@@ -156,7 +164,15 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
output = query.Tag[0]
}
format := buildah.Dockerv2ImageManifest
+ registry := query.Registry
+ isolation := buildah.IsolationChroot
+ /*
+ // FIXME, This is very broken. Buildah will only work with chroot
+ isolation := buildah.IsolationDefault
+ */
if utils.IsLibpodRequest(r) {
+ // isolation = buildah.Isolation(query.Isolation)
+ registry = ""
format = query.OutputFormat
}
var additionalTags []string
@@ -172,6 +188,14 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
}
}
+ var excludes = []string{}
+ if _, found := r.URL.Query()["excludes"]; found {
+ if err := json.Unmarshal([]byte(query.Excludes), &excludes); err != nil {
+ utils.BadRequest(w, "excludes", query.Excludes, err)
+ return
+ }
+ }
+
// convert label formats
var annotations = []string{}
if _, found := r.URL.Query()["annotations"]; found {
@@ -182,6 +206,19 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
}
// convert label formats
+ nsoptions := buildah.NamespaceOptions{}
+ if _, found := r.URL.Query()["nsoptions"]; found {
+ if err := json.Unmarshal([]byte(query.NamespaceOptions), &nsoptions); err != nil {
+ utils.BadRequest(w, "nsoptions", query.NamespaceOptions, err)
+ return
+ }
+ } else {
+ nsoptions = append(nsoptions, buildah.NamespaceOption{
+ Name: string(specs.NetworkNamespace),
+ Host: true,
+ })
+ }
+ // convert label formats
var labels = []string{}
if _, found := r.URL.Query()["labels"]; found {
if err := json.Unmarshal([]byte(query.Labels), &labels); err != nil {
@@ -189,6 +226,10 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
return
}
}
+ jobs := 1
+ if _, found := r.URL.Query()["jobs"]; found {
+ jobs = query.Jobs
+ }
pullPolicy := buildah.PullIfMissing
if _, found := r.URL.Query()["pull"]; found {
@@ -218,6 +259,12 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
reporter := channel.NewWriter(make(chan []byte, 1))
defer reporter.Close()
+ runtime := r.Context().Value("runtime").(*libpod.Runtime)
+ rtc, err := runtime.GetConfig()
+ if err != nil {
+ utils.Error(w, "Something went wrong.", http.StatusInternalServerError, errors.Wrap(err, "Decode()"))
+ return
+ }
buildOptions := imagebuildah.BuildOptions{
AddCapabilities: addCaps,
AdditionalTags: additionalTags,
@@ -234,32 +281,36 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
MemorySwap: query.MemSwap,
ShmSize: strconv.Itoa(query.ShmSize),
},
- Compression: archive.Gzip,
+ CNIConfigDir: rtc.Network.CNIPluginDirs[0],
+ CNIPluginPath: util.DefaultCNIPluginPath,
+ Compression: compression,
ConfigureNetwork: buildah.NetworkConfigurationPolicy(query.ConfigureNetwork),
ContextDirectory: contextDirectory,
Devices: devices,
DropCapabilities: dropCaps,
Err: auxout,
+ Excludes: excludes,
ForceRmIntermediateCtrs: query.ForceRm,
From: query.From,
- IgnoreUnrecognizedInstructions: true,
- // FIXME, This is very broken. Buildah will only work with chroot
- // Isolation: buildah.Isolation(query.Isolation),
- Isolation: buildah.IsolationChroot,
-
- Labels: labels,
- Layers: query.Layers,
- Manifest: query.Manifest,
- NoCache: query.NoCache,
- Out: stdout,
- Output: output,
- OutputFormat: format,
- PullPolicy: pullPolicy,
- Quiet: query.Quiet,
- Registry: query.Registry,
- RemoveIntermediateCtrs: query.Rm,
- ReportWriter: reporter,
- Squash: query.Squash,
+ IgnoreUnrecognizedInstructions: query.Ignore,
+ Isolation: isolation,
+ Jobs: &jobs,
+ Labels: labels,
+ Layers: query.Layers,
+ Manifest: query.Manifest,
+ MaxPullPushRetries: 3,
+ NamespaceOptions: nsoptions,
+ NoCache: query.NoCache,
+ Out: stdout,
+ Output: output,
+ OutputFormat: format,
+ PullPolicy: pullPolicy,
+ PullPushRetryDelay: time.Duration(2 * time.Second),
+ Quiet: query.Quiet,
+ Registry: registry,
+ RemoveIntermediateCtrs: query.Rm,
+ ReportWriter: reporter,
+ Squash: query.Squash,
SystemContext: &types.SystemContext{
AuthFilePath: authfile,
DockerAuthConfig: creds,
@@ -267,7 +318,6 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
Target: query.Target,
}
- runtime := r.Context().Value("runtime").(*libpod.Runtime)
runCtx, cancel := context.WithCancel(context.Background())
var imageID string
go func() {
diff --git a/pkg/api/handlers/compat/images_history.go b/pkg/api/handlers/compat/images_history.go
index 3b72798e4..a02ed179c 100644
--- a/pkg/api/handlers/compat/images_history.go
+++ b/pkg/api/handlers/compat/images_history.go
@@ -3,9 +3,9 @@ package compat
import (
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
"github.com/pkg/errors"
)
@@ -17,7 +17,6 @@ func HistoryImage(w http.ResponseWriter, r *http.Request) {
if err != nil {
utils.Error(w, "Something went wrong.", http.StatusNotFound, errors.Wrapf(err, "failed to find image %s", name))
return
-
}
history, err := newImage.History(r.Context())
if err != nil {
diff --git a/pkg/api/handlers/compat/images_prune.go b/pkg/api/handlers/compat/images_prune.go
index c7e84804b..63daaa780 100644
--- a/pkg/api/handlers/compat/images_prune.go
+++ b/pkg/api/handlers/compat/images_prune.go
@@ -5,9 +5,9 @@ import (
"fmt"
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
"github.com/docker/docker/api/types"
"github.com/gorilla/schema"
"github.com/pkg/errors"
diff --git a/pkg/api/handlers/compat/images_push.go b/pkg/api/handlers/compat/images_push.go
index 34b53f34e..4f613338f 100644
--- a/pkg/api/handlers/compat/images_push.go
+++ b/pkg/api/handlers/compat/images_push.go
@@ -1,15 +1,17 @@
package compat
import (
+ "fmt"
+ "io/ioutil"
"net/http"
"strings"
"github.com/containers/image/v5/types"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/auth"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/auth"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
"github.com/containers/storage"
"github.com/gorilla/schema"
"github.com/pkg/errors"
@@ -19,6 +21,14 @@ import (
func PushImage(w http.ResponseWriter, r *http.Request) {
decoder := r.Context().Value("decoder").(*schema.Decoder)
runtime := r.Context().Value("runtime").(*libpod.Runtime)
+
+ digestFile, err := ioutil.TempFile("", "digest.txt")
+ if err != nil {
+ utils.Error(w, "unable to create digest tempfile", http.StatusInternalServerError, errors.Wrap(err, "unable to create tempfile"))
+ return
+ }
+ defer digestFile.Close()
+
// Now use the ABI implementation to prevent us from having duplicate
// code.
imageEngine := abi.ImageEngine{Libpod: runtime}
@@ -65,12 +75,13 @@ func PushImage(w http.ResponseWriter, r *http.Request) {
password = authconf.Password
}
options := entities.ImagePushOptions{
- All: query.All,
- Authfile: authfile,
- Compress: query.Compress,
- Format: query.Format,
- Password: password,
- Username: username,
+ All: query.All,
+ Authfile: authfile,
+ Compress: query.Compress,
+ Format: query.Format,
+ Password: password,
+ Username: username,
+ DigestFile: digestFile.Name(),
}
if _, found := r.URL.Query()["tlsVerify"]; found {
options.SkipTLSVerify = types.NewOptionalBool(!query.TLSVerify)
@@ -93,5 +104,21 @@ func PushImage(w http.ResponseWriter, r *http.Request) {
return
}
- utils.WriteResponse(w, http.StatusOK, "")
+ digestBytes, err := ioutil.ReadAll(digestFile)
+ if err != nil {
+ utils.Error(w, "Something went wrong.", http.StatusInternalServerError, errors.Wrap(err, "failed to read digest tmp file"))
+ return
+ }
+
+ tag := query.Tag
+ if tag == "" {
+ tag = "latest"
+ }
+ respData := struct {
+ Status string `json:"status"`
+ }{
+ Status: fmt.Sprintf("%s: digest: %s size: null", tag, string(digestBytes)),
+ }
+
+ utils.WriteJSON(w, http.StatusOK, &respData)
}
diff --git a/pkg/api/handlers/compat/images_remove.go b/pkg/api/handlers/compat/images_remove.go
index 9731c521c..874c57f16 100644
--- a/pkg/api/handlers/compat/images_remove.go
+++ b/pkg/api/handlers/compat/images_remove.go
@@ -3,8 +3,8 @@ package compat
import (
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
@@ -54,5 +54,4 @@ func RemoveImage(w http.ResponseWriter, r *http.Request) {
}
utils.WriteResponse(w, http.StatusOK, response)
-
}
diff --git a/pkg/api/handlers/compat/images_search.go b/pkg/api/handlers/compat/images_search.go
index 885112b31..18974f424 100644
--- a/pkg/api/handlers/compat/images_search.go
+++ b/pkg/api/handlers/compat/images_search.go
@@ -5,12 +5,12 @@ import (
"net/http"
"github.com/containers/image/v5/types"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/auth"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/auth"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
diff --git a/pkg/api/handlers/compat/images_tag.go b/pkg/api/handlers/compat/images_tag.go
index b49d9054b..0d0c204f3 100644
--- a/pkg/api/handlers/compat/images_tag.go
+++ b/pkg/api/handlers/compat/images_tag.go
@@ -4,8 +4,8 @@ import (
"fmt"
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
"github.com/pkg/errors"
)
diff --git a/pkg/api/handlers/compat/info.go b/pkg/api/handlers/compat/info.go
index 5adbeb031..d7cefd516 100644
--- a/pkg/api/handlers/compat/info.go
+++ b/pkg/api/handlers/compat/info.go
@@ -11,11 +11,11 @@ import (
"github.com/containers/common/pkg/config"
"github.com/containers/common/pkg/sysinfo"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/rootless"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/rootless"
docker "github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/registry"
"github.com/docker/docker/api/types/swarm"
diff --git a/pkg/api/handlers/compat/networks.go b/pkg/api/handlers/compat/networks.go
index f7a70816f..28e90ac28 100644
--- a/pkg/api/handlers/compat/networks.go
+++ b/pkg/api/handlers/compat/networks.go
@@ -10,12 +10,12 @@ import (
"time"
"github.com/containernetworking/cni/libcni"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/network"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/network"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
"github.com/docker/docker/api/types"
dockerNetwork "github.com/docker/docker/api/types/network"
"github.com/gorilla/schema"
@@ -127,6 +127,12 @@ func getNetworkResourceByNameOrID(nameOrID string, runtime *libpod.Runtime, filt
containerEndpoints[con.ID()] = containerEndpoint
}
}
+
+ labels := network.GetNetworkLabels(conf)
+ if labels == nil {
+ labels = map[string]string{}
+ }
+
report := types.NetworkResource{
Name: conf.Name,
ID: network.GetNetworkID(conf.Name),
@@ -136,7 +142,7 @@ func getNetworkResourceByNameOrID(nameOrID string, runtime *libpod.Runtime, filt
EnableIPv6: false,
IPAM: dockerNetwork.IPAM{
Driver: "default",
- Options: nil,
+ Options: map[string]string{},
Config: ipamConfigs,
},
Internal: !bridge.IsGW,
@@ -145,8 +151,8 @@ func getNetworkResourceByNameOrID(nameOrID string, runtime *libpod.Runtime, filt
ConfigFrom: dockerNetwork.ConfigReference{},
ConfigOnly: false,
Containers: containerEndpoints,
- Options: nil,
- Labels: network.GetNetworkLabels(conf),
+ Options: map[string]string{},
+ Labels: labels,
Peers: nil,
Services: nil,
}
@@ -174,16 +180,18 @@ func findPluginByName(plugins []*libcni.NetworkConfig, pluginType string) ([]byt
func ListNetworks(w http.ResponseWriter, r *http.Request) {
runtime := r.Context().Value("runtime").(*libpod.Runtime)
- decoder := r.Context().Value("decoder").(*schema.Decoder)
- query := struct {
- Filters map[string][]string `schema:"filters"`
- }{
- // override any golang type defaults
- }
- if err := decoder.Decode(&query, r.URL.Query()); err != nil {
+ filters, err := filtersFromRequest(r)
+ if err != nil {
utils.Error(w, "Something went wrong.", http.StatusBadRequest, errors.Wrapf(err, "failed to parse parameters for %s", r.URL.String()))
return
}
+ filterMap := map[string][]string{}
+ for _, filter := range filters {
+ split := strings.SplitN(filter, "=", 2)
+ if len(split) > 1 {
+ filterMap[split[0]] = append(filterMap[split[0]], split[1])
+ }
+ }
config, err := runtime.GetConfig()
if err != nil {
utils.InternalServerError(w, err)
@@ -196,10 +204,10 @@ func ListNetworks(w http.ResponseWriter, r *http.Request) {
return
}
- var reports []*types.NetworkResource
+ reports := []*types.NetworkResource{}
logrus.Debugf("netNames: %q", strings.Join(netNames, ", "))
for _, name := range netNames {
- report, err := getNetworkResourceByNameOrID(name, runtime, query.Filters)
+ report, err := getNetworkResourceByNameOrID(name, runtime, filterMap)
if err != nil {
utils.InternalServerError(w, err)
return
@@ -277,10 +285,10 @@ func CreateNetwork(w http.ResponseWriter, r *http.Request) {
return
}
body := struct {
- Id string
+ ID string `json:"Id"`
Warning []string
}{
- Id: net.ID,
+ ID: net.ID,
}
utils.WriteResponse(w, http.StatusCreated, body)
}
@@ -400,6 +408,9 @@ func Prune(w http.ResponseWriter, r *http.Request) {
utils.Error(w, "Something went wrong.", http.StatusInternalServerError, err)
return
}
+ type response struct {
+ NetworksDeleted []string
+ }
var prunedNetworks []string //nolint
for _, pr := range pruneReports {
if pr.Error != nil {
@@ -408,5 +419,5 @@ func Prune(w http.ResponseWriter, r *http.Request) {
}
prunedNetworks = append(prunedNetworks, pr.Name)
}
- utils.WriteResponse(w, http.StatusOK, prunedNetworks)
+ utils.WriteResponse(w, http.StatusOK, response{NetworksDeleted: prunedNetworks})
}
diff --git a/pkg/api/handlers/compat/resize.go b/pkg/api/handlers/compat/resize.go
index a769ae1b5..1bf7ad460 100644
--- a/pkg/api/handlers/compat/resize.go
+++ b/pkg/api/handlers/compat/resize.go
@@ -5,13 +5,12 @@ import (
"net/http"
"strings"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
"github.com/gorilla/mux"
"github.com/gorilla/schema"
"github.com/pkg/errors"
- "k8s.io/client-go/tools/remotecommand"
)
func ResizeTTY(w http.ResponseWriter, r *http.Request) {
@@ -32,7 +31,7 @@ func ResizeTTY(w http.ResponseWriter, r *http.Request) {
return
}
- sz := remotecommand.TerminalSize{
+ sz := define.TerminalSize{
Width: query.Width,
Height: query.Height,
}
diff --git a/pkg/api/handlers/compat/secrets.go b/pkg/api/handlers/compat/secrets.go
index ea2dfc707..c5ee8c324 100644
--- a/pkg/api/handlers/compat/secrets.go
+++ b/pkg/api/handlers/compat/secrets.go
@@ -7,10 +7,10 @@ import (
"fmt"
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
@@ -30,7 +30,9 @@ func ListSecrets(w http.ResponseWriter, r *http.Request) {
return
}
if len(query.Filters) > 0 {
- utils.Error(w, "filters not supported", http.StatusBadRequest, errors.New("bad parameter"))
+ utils.Error(w, "filters not supported", http.StatusBadRequest,
+ errors.Wrapf(errors.New("bad parameter"), "filters not supported"))
+ return
}
ic := abi.ContainerEngine{Libpod: runtime}
reports, err := ic.SecretList(r.Context())
@@ -58,7 +60,6 @@ func InspectSecret(w http.ResponseWriter, r *http.Request) {
return
}
utils.WriteResponse(w, http.StatusOK, reports[0])
-
}
func RemoveSecret(w http.ResponseWriter, r *http.Request) {
@@ -96,7 +97,9 @@ func CreateSecret(w http.ResponseWriter, r *http.Request) {
return
}
if len(createParams.Labels) > 0 {
- utils.Error(w, "labels not supported", http.StatusBadRequest, errors.New("bad parameter"))
+ utils.Error(w, "labels not supported", http.StatusBadRequest,
+ errors.Wrapf(errors.New("bad parameter"), "labels not supported"))
+ return
}
decoded, _ := base64.StdEncoding.DecodeString(createParams.Data)
diff --git a/pkg/api/handlers/compat/swagger.go b/pkg/api/handlers/compat/swagger.go
index 1d1f1ecf2..a0783e723 100644
--- a/pkg/api/handlers/compat/swagger.go
+++ b/pkg/api/handlers/compat/swagger.go
@@ -1,7 +1,7 @@
package compat
import (
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/containers/storage/pkg/archive"
"github.com/docker/docker/api/types"
)
diff --git a/pkg/api/handlers/compat/system.go b/pkg/api/handlers/compat/system.go
index e21ae160a..57702698b 100644
--- a/pkg/api/handlers/compat/system.go
+++ b/pkg/api/handlers/compat/system.go
@@ -4,11 +4,11 @@ import (
"net/http"
"strings"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
docker "github.com/docker/docker/api/types"
)
@@ -19,6 +19,7 @@ func GetDiskUsage(w http.ResponseWriter, r *http.Request) {
df, err := ic.SystemDf(r.Context(), options)
if err != nil {
utils.InternalServerError(w, err)
+ return
}
imgs := make([]*docker.ImageSummary, len(df.Images))
diff --git a/pkg/api/handlers/compat/unsupported.go b/pkg/api/handlers/compat/unsupported.go
index 1c518690f..508d0ee18 100644
--- a/pkg/api/handlers/compat/unsupported.go
+++ b/pkg/api/handlers/compat/unsupported.go
@@ -4,8 +4,8 @@ import (
"fmt"
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/errorhandling"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/errorhandling"
log "github.com/sirupsen/logrus"
)
diff --git a/pkg/api/handlers/compat/version.go b/pkg/api/handlers/compat/version.go
index d5070dbbc..d90a892c1 100644
--- a/pkg/api/handlers/compat/version.go
+++ b/pkg/api/handlers/compat/version.go
@@ -6,10 +6,10 @@ import (
goRuntime "runtime"
"time"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
docker "github.com/docker/docker/api/types"
"github.com/pkg/errors"
)
diff --git a/pkg/api/handlers/compat/volumes.go b/pkg/api/handlers/compat/volumes.go
index 82e70eb90..28fb67102 100644
--- a/pkg/api/handlers/compat/volumes.go
+++ b/pkg/api/handlers/compat/volumes.go
@@ -7,12 +7,12 @@ import (
"net/url"
"time"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/filters"
- "github.com/containers/podman/v2/pkg/domain/infra/abi/parse"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/filters"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi/parse"
docker_api_types "github.com/docker/docker/api/types"
docker_api_types_volume "github.com/docker/docker/api/types/volume"
"github.com/gorilla/schema"
diff --git a/pkg/api/handlers/decoder.go b/pkg/api/handlers/decoder.go
index 54087168a..764456dd4 100644
--- a/pkg/api/handlers/decoder.go
+++ b/pkg/api/handlers/decoder.go
@@ -6,7 +6,8 @@ import (
"syscall"
"time"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/gorilla/schema"
"github.com/sirupsen/logrus"
)
@@ -19,6 +20,7 @@ func NewAPIDecoder() *schema.Decoder {
d.IgnoreUnknownKeys(true)
d.RegisterConverter(map[string][]string{}, convertURLValuesString)
d.RegisterConverter(time.Time{}, convertTimeString)
+ d.RegisterConverter(define.ContainerStatus(0), convertContainerStatusString)
var Signal syscall.Signal
d.RegisterConverter(Signal, convertSignal)
@@ -46,6 +48,19 @@ func convertURLValuesString(query string) reflect.Value {
return reflect.ValueOf(f)
}
+func convertContainerStatusString(query string) reflect.Value {
+ result, err := define.StringToContainerStatus(query)
+ if err != nil {
+ logrus.Infof("convertContainerStatusString: Failed to parse %s: %s", query, err.Error())
+
+ // We return nil here instead of result because reflect.ValueOf().IsValid() will be true
+ // in github.com/gorilla/schema's decoder, which means there's no parsing error
+ return reflect.ValueOf(nil)
+ }
+
+ return reflect.ValueOf(result)
+}
+
// isZero() can be used to determine if parsing failed.
func convertTimeString(query string) reflect.Value {
var (
diff --git a/pkg/api/handlers/libpod/containers.go b/pkg/api/handlers/libpod/containers.go
index 619cbfd8b..01b9ec101 100644
--- a/pkg/api/handlers/libpod/containers.go
+++ b/pkg/api/handlers/libpod/containers.go
@@ -5,12 +5,12 @@ import (
"net/http"
"os"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
"github.com/gorilla/schema"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
@@ -48,7 +48,6 @@ func ContainerExists(w http.ResponseWriter, r *http.Request) {
}
utils.InternalServerError(w, err)
return
-
}
if report.Value {
utils.WriteResponse(w, http.StatusNoContent, "")
@@ -162,7 +161,6 @@ func UnmountContainer(w http.ResponseWriter, r *http.Request) {
utils.InternalServerError(w, err)
}
utils.WriteResponse(w, http.StatusNoContent, "")
-
}
func MountContainer(w http.ResponseWriter, r *http.Request) {
runtime := r.Context().Value("runtime").(*libpod.Runtime)
@@ -361,7 +359,6 @@ func ShouldRestart(w http.ResponseWriter, r *http.Request) {
}
utils.InternalServerError(w, err)
return
-
}
if report.Value {
utils.WriteResponse(w, http.StatusNoContent, "")
diff --git a/pkg/api/handlers/libpod/containers_create.go b/pkg/api/handlers/libpod/containers_create.go
index d8bb535ff..b92588346 100644
--- a/pkg/api/handlers/libpod/containers_create.go
+++ b/pkg/api/handlers/libpod/containers_create.go
@@ -5,11 +5,11 @@ import (
"encoding/json"
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/specgen"
- "github.com/containers/podman/v2/pkg/specgen/generate"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/specgen"
+ "github.com/containers/podman/v3/pkg/specgen/generate"
"github.com/pkg/errors"
)
diff --git a/pkg/api/handlers/libpod/containers_stats.go b/pkg/api/handlers/libpod/containers_stats.go
index ff475803d..75c404d4f 100644
--- a/pkg/api/handlers/libpod/containers_stats.go
+++ b/pkg/api/handlers/libpod/containers_stats.go
@@ -5,10 +5,10 @@ import (
"net/http"
"time"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
"github.com/gorilla/schema"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
diff --git a/pkg/api/handlers/libpod/copy.go b/pkg/api/handlers/libpod/copy.go
index b7c508342..4b345bacc 100644
--- a/pkg/api/handlers/libpod/copy.go
+++ b/pkg/api/handlers/libpod/copy.go
@@ -3,7 +3,7 @@ package libpod
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
"github.com/pkg/errors"
)
diff --git a/pkg/api/handlers/libpod/generate.go b/pkg/api/handlers/libpod/generate.go
index b3b8c1f16..0e6e9100a 100644
--- a/pkg/api/handlers/libpod/generate.go
+++ b/pkg/api/handlers/libpod/generate.go
@@ -3,11 +3,11 @@ package libpod
import (
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
@@ -18,6 +18,7 @@ func GenerateSystemd(w http.ResponseWriter, r *http.Request) {
query := struct {
Name bool `schema:"useName"`
New bool `schema:"new"`
+ NoHeader bool `schema:"noHeader"`
RestartPolicy string `schema:"restartPolicy"`
StopTimeout uint `schema:"stopTimeout"`
ContainerPrefix string `schema:"containerPrefix"`
@@ -41,6 +42,7 @@ func GenerateSystemd(w http.ResponseWriter, r *http.Request) {
options := entities.GenerateSystemdOptions{
Name: query.Name,
New: query.New,
+ NoHeader: query.NoHeader,
RestartPolicy: query.RestartPolicy,
StopTimeout: &query.StopTimeout,
ContainerPrefix: query.ContainerPrefix,
diff --git a/pkg/api/handlers/libpod/healthcheck.go b/pkg/api/handlers/libpod/healthcheck.go
index 4649b1a71..27478ddec 100644
--- a/pkg/api/handlers/libpod/healthcheck.go
+++ b/pkg/api/handlers/libpod/healthcheck.go
@@ -3,9 +3,9 @@ package libpod
import (
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
)
func RunHealthCheck(w http.ResponseWriter, r *http.Request) {
diff --git a/pkg/api/handlers/libpod/images.go b/pkg/api/handlers/libpod/images.go
index 3b531652f..1a2483784 100644
--- a/pkg/api/handlers/libpod/images.go
+++ b/pkg/api/handlers/libpod/images.go
@@ -13,16 +13,16 @@ import (
"github.com/containers/buildah"
"github.com/containers/image/v5/manifest"
"github.com/containers/image/v5/types"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/auth"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
- "github.com/containers/podman/v2/pkg/errorhandling"
- utils2 "github.com/containers/podman/v2/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/auth"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/pkg/errorhandling"
+ utils2 "github.com/containers/podman/v3/utils"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
@@ -266,7 +266,6 @@ func ExportImages(w http.ResponseWriter, r *http.Request) {
if len(query.References) > 1 && query.Format != define.V2s2Archive {
utils.Error(w, "unsupported format", http.StatusInternalServerError, errors.Errorf("multi-image archives must use format of %s", define.V2s2Archive))
return
-
}
switch query.Format {
@@ -445,7 +444,6 @@ func PushImage(w http.ResponseWriter, r *http.Request) {
if authconf != nil {
username = authconf.Username
password = authconf.Password
-
}
options := entities.ImagePushOptions{
Authfile: authfile,
diff --git a/pkg/api/handlers/libpod/images_pull.go b/pkg/api/handlers/libpod/images_pull.go
index efb15b14d..e2e4b53b4 100644
--- a/pkg/api/handlers/libpod/images_pull.go
+++ b/pkg/api/handlers/libpod/images_pull.go
@@ -10,13 +10,13 @@ import (
"github.com/containers/image/v5/docker"
"github.com/containers/image/v5/docker/reference"
"github.com/containers/image/v5/types"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/auth"
- "github.com/containers/podman/v2/pkg/channel"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/auth"
+ "github.com/containers/podman/v3/pkg/channel"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/gorilla/schema"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
@@ -136,7 +136,8 @@ func ImagesPull(w http.ResponseWriter, r *http.Request) {
&dockerRegistryOptions,
image.SigningOptions{},
nil,
- util.PullImageAlways)
+ util.PullImageAlways,
+ nil)
if err != nil {
stderr.Write([]byte(err.Error() + "\n"))
} else {
diff --git a/pkg/api/handlers/libpod/info.go b/pkg/api/handlers/libpod/info.go
index 683ae3dad..546609451 100644
--- a/pkg/api/handlers/libpod/info.go
+++ b/pkg/api/handlers/libpod/info.go
@@ -3,8 +3,8 @@ package libpod
import (
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
)
func GetInfo(w http.ResponseWriter, r *http.Request) {
diff --git a/pkg/api/handlers/libpod/manifests.go b/pkg/api/handlers/libpod/manifests.go
index ded51a31f..5ababc36b 100644
--- a/pkg/api/handlers/libpod/manifests.go
+++ b/pkg/api/handlers/libpod/manifests.go
@@ -7,13 +7,13 @@ import (
"github.com/containers/image/v5/manifest"
"github.com/containers/image/v5/types"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/auth"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/auth"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
"github.com/gorilla/schema"
"github.com/opencontainers/go-digest"
"github.com/pkg/errors"
diff --git a/pkg/api/handlers/libpod/networks.go b/pkg/api/handlers/libpod/networks.go
index 998f89d96..a6c4f6d64 100644
--- a/pkg/api/handlers/libpod/networks.go
+++ b/pkg/api/handlers/libpod/networks.go
@@ -4,12 +4,12 @@ import (
"encoding/json"
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/network"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/network"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
@@ -42,7 +42,6 @@ func CreateNetwork(w http.ResponseWriter, r *http.Request) {
return
}
utils.WriteResponse(w, http.StatusOK, report)
-
}
func ListNetworks(w http.ResponseWriter, r *http.Request) {
runtime := r.Context().Value("runtime").(*libpod.Runtime)
diff --git a/pkg/api/handlers/libpod/play.go b/pkg/api/handlers/libpod/play.go
index 42ff26a57..ee2d3c00d 100644
--- a/pkg/api/handlers/libpod/play.go
+++ b/pkg/api/handlers/libpod/play.go
@@ -7,11 +7,11 @@ import (
"os"
"github.com/containers/image/v5/types"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/auth"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/auth"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
diff --git a/pkg/api/handlers/libpod/pods.go b/pkg/api/handlers/libpod/pods.go
index 2c35dd191..89a4a451f 100644
--- a/pkg/api/handlers/libpod/pods.go
+++ b/pkg/api/handlers/libpod/pods.go
@@ -6,15 +6,15 @@ import (
"net/http"
"strings"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
- "github.com/containers/podman/v2/pkg/specgen"
- "github.com/containers/podman/v2/pkg/specgen/generate"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/pkg/specgen"
+ "github.com/containers/podman/v3/pkg/specgen/generate"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/gorilla/schema"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
diff --git a/pkg/api/handlers/libpod/secrets.go b/pkg/api/handlers/libpod/secrets.go
index 447a5d021..e7f4397ea 100644
--- a/pkg/api/handlers/libpod/secrets.go
+++ b/pkg/api/handlers/libpod/secrets.go
@@ -3,10 +3,10 @@ package libpod
import (
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
diff --git a/pkg/api/handlers/libpod/swagger.go b/pkg/api/handlers/libpod/swagger.go
index c6e95f382..1bececa1a 100644
--- a/pkg/api/handlers/libpod/swagger.go
+++ b/pkg/api/handlers/libpod/swagger.go
@@ -5,9 +5,9 @@ import (
"os"
"github.com/containers/image/v5/manifest"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/pkg/errors"
)
diff --git a/pkg/api/handlers/libpod/system.go b/pkg/api/handlers/libpod/system.go
index c48c186ed..02457eb8f 100644
--- a/pkg/api/handlers/libpod/system.go
+++ b/pkg/api/handlers/libpod/system.go
@@ -3,11 +3,11 @@ package libpod
import (
"net/http"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
diff --git a/pkg/api/handlers/libpod/volumes.go b/pkg/api/handlers/libpod/volumes.go
index 1a8759c6c..a602e6744 100644
--- a/pkg/api/handlers/libpod/volumes.go
+++ b/pkg/api/handlers/libpod/volumes.go
@@ -5,14 +5,14 @@ import (
"net/http"
"net/url"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
- "github.com/containers/podman/v2/pkg/domain/filters"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
- "github.com/containers/podman/v2/pkg/domain/infra/abi/parse"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/pkg/domain/filters"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi/parse"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
diff --git a/pkg/api/handlers/swagger/swagger.go b/pkg/api/handlers/swagger/swagger.go
index 32f041dd3..384e06cac 100644
--- a/pkg/api/handlers/swagger/swagger.go
+++ b/pkg/api/handlers/swagger/swagger.go
@@ -1,11 +1,11 @@
package swagger
import (
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/inspect"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/inspect"
"github.com/docker/docker/api/types"
)
diff --git a/pkg/api/handlers/types.go b/pkg/api/handlers/types.go
index c9adde09d..f5eaf6f6d 100644
--- a/pkg/api/handlers/types.go
+++ b/pkg/api/handlers/types.go
@@ -7,8 +7,8 @@ import (
"time"
"github.com/containers/image/v5/manifest"
- libpodImage "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ libpodImage "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/domain/entities"
docker "github.com/docker/docker/api/types"
dockerContainer "github.com/docker/docker/api/types/container"
dockerNetwork "github.com/docker/docker/api/types/network"
diff --git a/pkg/api/handlers/utils/containers.go b/pkg/api/handlers/utils/containers.go
index 518309a03..91e02abf1 100644
--- a/pkg/api/handlers/utils/containers.go
+++ b/pkg/api/handlers/utils/containers.go
@@ -7,15 +7,15 @@ import (
"strconv"
"time"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
- "github.com/containers/podman/v2/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/api/handlers"
"github.com/sirupsen/logrus"
- "github.com/containers/podman/v2/libpod/define"
+ "github.com/containers/podman/v3/libpod/define"
- "github.com/containers/podman/v2/libpod"
+ "github.com/containers/podman/v3/libpod"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
@@ -105,6 +105,7 @@ func WaitContainerLibpod(w http.ResponseWriter, r *http.Request) {
query := waitQueryLibpod{}
if err := decoder.Decode(&query, r.URL.Query()); err != nil {
Error(w, "Something went wrong.", http.StatusBadRequest, errors.Wrapf(err, "failed to parse parameters for %s", r.URL.String()))
+ return
}
if _, found := r.URL.Query()["interval"]; found {
@@ -130,10 +131,9 @@ func WaitContainerLibpod(w http.ResponseWriter, r *http.Request) {
if errors.Cause(err) == define.ErrNoSuchCtr {
ContainerNotFound(w, name, err)
return
- } else {
- InternalServerError(w, err)
- return
}
+ InternalServerError(w, err)
+ return
}
WriteResponse(w, http.StatusOK, strconv.Itoa(int(exitCode)))
}
@@ -141,7 +141,6 @@ func WaitContainerLibpod(w http.ResponseWriter, r *http.Request) {
type containerWaitFn func(conditions ...define.ContainerStatus) (int32, error)
func createContainerWaitFn(ctx context.Context, containerName string, interval time.Duration) containerWaitFn {
-
runtime := ctx.Value("runtime").(*libpod.Runtime)
var containerEngine entities.ContainerEngine = &abi.ContainerEngine{Libpod: runtime}
@@ -170,7 +169,6 @@ func isValidDockerCondition(cond string) bool {
}
func waitDockerCondition(ctx context.Context, containerName string, interval time.Duration, dockerCondition string) (int32, error) {
-
containerWait := createContainerWaitFn(ctx, containerName, interval)
var err error
@@ -200,9 +198,8 @@ func waitRemoved(ctrWait containerWaitFn) (int32, error) {
code, err := ctrWait(define.ContainerStateUnknown)
if err != nil && errors.Cause(err) == define.ErrNoSuchCtr {
return code, nil
- } else {
- return code, err
}
+ return code, err
}
func waitNextExit(ctrWait containerWaitFn) (int32, error) {
diff --git a/pkg/api/handlers/utils/errors.go b/pkg/api/handlers/utils/errors.go
index c8785fb89..d22ad414f 100644
--- a/pkg/api/handlers/utils/errors.go
+++ b/pkg/api/handlers/utils/errors.go
@@ -4,8 +4,8 @@ import (
"fmt"
"net/http"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/errorhandling"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/errorhandling"
"github.com/pkg/errors"
log "github.com/sirupsen/logrus"
)
diff --git a/pkg/api/handlers/utils/images.go b/pkg/api/handlers/utils/images.go
index aad00c93b..743629db8 100644
--- a/pkg/api/handlers/utils/images.go
+++ b/pkg/api/handlers/utils/images.go
@@ -9,8 +9,8 @@ import (
"github.com/containers/image/v5/storage"
"github.com/containers/image/v5/transports/alltransports"
"github.com/containers/image/v5/types"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/image"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/image"
"github.com/gorilla/schema"
"github.com/pkg/errors"
)
diff --git a/pkg/api/server/handler_api.go b/pkg/api/server/handler_api.go
index 1d0ddb457..e7bf94fc6 100644
--- a/pkg/api/server/handler_api.go
+++ b/pkg/api/server/handler_api.go
@@ -6,8 +6,8 @@ import (
"net/http"
"runtime"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
- "github.com/containers/podman/v2/pkg/auth"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/auth"
"github.com/google/uuid"
"github.com/sirupsen/logrus"
)
diff --git a/pkg/api/server/register_archive.go b/pkg/api/server/register_archive.go
index b20d89cc2..2a5cfba0b 100644
--- a/pkg/api/server/register_archive.go
+++ b/pkg/api/server/register_archive.go
@@ -3,7 +3,7 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/register_auth.go b/pkg/api/server/register_auth.go
index 0eaa83737..1e5474462 100644
--- a/pkg/api/server/register_auth.go
+++ b/pkg/api/server/register_auth.go
@@ -1,7 +1,7 @@
package server
import (
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/register_containers.go b/pkg/api/server/register_containers.go
index ff1781d1e..31196aa9e 100644
--- a/pkg/api/server/register_containers.go
+++ b/pkg/api/server/register_containers.go
@@ -3,8 +3,8 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
- "github.com/containers/podman/v2/pkg/api/handlers/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/libpod"
"github.com/gorilla/mux"
)
@@ -1176,15 +1176,19 @@ func (s *APIServer) registerContainersHandlers(r *mux.Router) error {
// description: the name or ID of the container
// - in: query
// name: condition
- // type: string
- // description: |
- // wait until container is to a given condition. default is stopped. valid conditions are:
- // - configured
- // - created
- // - exited
- // - paused
- // - running
- // - stopped
+ // type: array
+ // items:
+ // type: string
+ // enum:
+ // - configured
+ // - created
+ // - running
+ // - stopped
+ // - paused
+ // - exited
+ // - removing
+ // - stopping
+ // description: "Conditions to wait for. If no condition provided the 'exited' condition is assumed."
// produces:
// - application/json
// responses:
diff --git a/pkg/api/server/register_distribution.go b/pkg/api/server/register_distribution.go
index 201d380d0..cbb4476f3 100644
--- a/pkg/api/server/register_distribution.go
+++ b/pkg/api/server/register_distribution.go
@@ -1,7 +1,7 @@
package server
import (
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/register_events.go b/pkg/api/server/register_events.go
index 4b7c645b0..acccebac1 100644
--- a/pkg/api/server/register_events.go
+++ b/pkg/api/server/register_events.go
@@ -3,7 +3,7 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/register_exec.go b/pkg/api/server/register_exec.go
index 05fb2aee2..0f8c827c8 100644
--- a/pkg/api/server/register_exec.go
+++ b/pkg/api/server/register_exec.go
@@ -3,7 +3,7 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/register_generate.go b/pkg/api/server/register_generate.go
index bce5484ab..abbad1485 100644
--- a/pkg/api/server/register_generate.go
+++ b/pkg/api/server/register_generate.go
@@ -3,7 +3,7 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/libpod"
"github.com/gorilla/mux"
)
@@ -32,6 +32,11 @@ func (s *APIServer) registerGenerateHandlers(r *mux.Router) error {
// default: false
// description: Create a new container instead of starting an existing one.
// - in: query
+ // name: noHeader
+ // type: boolean
+ // default: false
+ // description: Do not generate the header including the Podman version and the timestamp.
+ // - in: query
// name: time
// type: integer
// default: 10
diff --git a/pkg/api/server/register_healthcheck.go b/pkg/api/server/register_healthcheck.go
index 8c9876232..85f3d720c 100644
--- a/pkg/api/server/register_healthcheck.go
+++ b/pkg/api/server/register_healthcheck.go
@@ -3,7 +3,7 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/libpod"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/register_images.go b/pkg/api/server/register_images.go
index 2ce0829b4..f6a8a37ca 100644
--- a/pkg/api/server/register_images.go
+++ b/pkg/api/server/register_images.go
@@ -3,8 +3,8 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
- "github.com/containers/podman/v2/pkg/api/handlers/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/libpod"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/register_info.go b/pkg/api/server/register_info.go
index a1dc9511d..c07d4699d 100644
--- a/pkg/api/server/register_info.go
+++ b/pkg/api/server/register_info.go
@@ -3,8 +3,8 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
- "github.com/containers/podman/v2/pkg/api/handlers/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/libpod"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/register_manifest.go b/pkg/api/server/register_manifest.go
index eefcc396e..c2da5156b 100644
--- a/pkg/api/server/register_manifest.go
+++ b/pkg/api/server/register_manifest.go
@@ -3,7 +3,7 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/libpod"
"github.com/gorilla/mux"
)
@@ -30,7 +30,8 @@ func (s *APIServer) registerManifestHandlers(r *mux.Router) error {
// description: add all contents if given list
// responses:
// 200:
- // $ref: "#/definitions/IDResponse"
+ // schema:
+ // $ref: "#/definitions/IDResponse"
// 400:
// $ref: "#/responses/BadParamError"
// 404:
@@ -96,7 +97,8 @@ func (s *APIServer) registerManifestHandlers(r *mux.Router) error {
// $ref: "#/definitions/ManifestAddOpts"
// responses:
// 200:
- // $ref: "#/definitions/IDResponse"
+ // schema:
+ // $ref: "#/definitions/IDResponse"
// 404:
// $ref: "#/responses/NoSuchManifest"
// 409:
@@ -122,7 +124,8 @@ func (s *APIServer) registerManifestHandlers(r *mux.Router) error {
// description: image digest to be removed
// responses:
// 200:
- // $ref: "#/definitions/IDResponse"
+ // schema:
+ // $ref: "#/definitions/IDResponse"
// 400:
// $ref: "#/responses/BadParamError"
// 404:
@@ -153,7 +156,8 @@ func (s *APIServer) registerManifestHandlers(r *mux.Router) error {
// type: boolean
// responses:
// 200:
- // $ref: "#/definitions/IDResponse"
+ // schema:
+ // $ref: "#/definitions/IDResponse"
// 400:
// $ref: "#/responses/BadParamError"
// 404:
diff --git a/pkg/api/server/register_monitor.go b/pkg/api/server/register_monitor.go
index 5db20667e..45d24af61 100644
--- a/pkg/api/server/register_monitor.go
+++ b/pkg/api/server/register_monitor.go
@@ -1,7 +1,7 @@
package server
import (
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/register_networks.go b/pkg/api/server/register_networks.go
index d3345d8da..68a8d4ae4 100644
--- a/pkg/api/server/register_networks.go
+++ b/pkg/api/server/register_networks.go
@@ -3,8 +3,8 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
- "github.com/containers/podman/v2/pkg/api/handlers/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/libpod"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/register_ping.go b/pkg/api/server/register_ping.go
index 446a12a68..1d0876ec1 100644
--- a/pkg/api/server/register_ping.go
+++ b/pkg/api/server/register_ping.go
@@ -3,12 +3,11 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
"github.com/gorilla/mux"
)
func (s *APIServer) registerPingHandlers(r *mux.Router) error {
-
r.Handle("/_ping", s.APIHandler(compat.Ping)).Methods(http.MethodGet, http.MethodHead)
r.Handle(VersionedPath("/_ping"), s.APIHandler(compat.Ping)).Methods(http.MethodGet, http.MethodHead)
// swagger:operation GET /libpod/_ping libpod libpodPingGet
diff --git a/pkg/api/server/register_play.go b/pkg/api/server/register_play.go
index 6aa349a3b..dbb13cba3 100644
--- a/pkg/api/server/register_play.go
+++ b/pkg/api/server/register_play.go
@@ -3,7 +3,7 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/libpod"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/register_plugins.go b/pkg/api/server/register_plugins.go
index 6600c1bbd..6fe217bfd 100644
--- a/pkg/api/server/register_plugins.go
+++ b/pkg/api/server/register_plugins.go
@@ -1,7 +1,7 @@
package server
import (
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/register_pods.go b/pkg/api/server/register_pods.go
index 4873eb926..c66cc48ff 100644
--- a/pkg/api/server/register_pods.go
+++ b/pkg/api/server/register_pods.go
@@ -3,7 +3,7 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/libpod"
"github.com/gorilla/mux"
)
@@ -36,11 +36,11 @@ func (s *APIServer) registerPodsHandlers(r *mux.Router) error {
// name: create
// description: attributes for creating a pod
// schema:
- // type: object
// $ref: "#/definitions/PodSpecGenerator"
// responses:
// 200:
- // $ref: "#/definitions/IdResponse"
+ // schema:
+ // $ref: "#/definitions/IdResponse"
// 400:
// $ref: "#/responses/BadParamError"
// 409:
diff --git a/pkg/api/server/register_secrets.go b/pkg/api/server/register_secrets.go
index 95abf83e8..1c5f5954b 100644
--- a/pkg/api/server/register_secrets.go
+++ b/pkg/api/server/register_secrets.go
@@ -3,8 +3,8 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
- "github.com/containers/podman/v2/pkg/api/handlers/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/libpod"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/register_swagger.go b/pkg/api/server/register_swagger.go
index 4237540f8..dca1df14b 100644
--- a/pkg/api/server/register_swagger.go
+++ b/pkg/api/server/register_swagger.go
@@ -3,7 +3,7 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/libpod"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/register_swarm.go b/pkg/api/server/register_swarm.go
index 1f3166dcb..fce35ba32 100644
--- a/pkg/api/server/register_swarm.go
+++ b/pkg/api/server/register_swarm.go
@@ -4,7 +4,7 @@ import (
"errors"
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/utils"
+ "github.com/containers/podman/v3/pkg/api/handlers/utils"
"github.com/gorilla/mux"
"github.com/sirupsen/logrus"
)
diff --git a/pkg/api/server/register_system.go b/pkg/api/server/register_system.go
index 524cdecd9..7bc16acc0 100644
--- a/pkg/api/server/register_system.go
+++ b/pkg/api/server/register_system.go
@@ -3,8 +3,8 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
- "github.com/containers/podman/v2/pkg/api/handlers/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/libpod"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/register_version.go b/pkg/api/server/register_version.go
index cf49c0fa9..0cedb5dc6 100644
--- a/pkg/api/server/register_version.go
+++ b/pkg/api/server/register_version.go
@@ -3,7 +3,7 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/register_volumes.go b/pkg/api/server/register_volumes.go
index 68727f2e1..b19faefdd 100644
--- a/pkg/api/server/register_volumes.go
+++ b/pkg/api/server/register_volumes.go
@@ -3,8 +3,8 @@ package server
import (
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers/compat"
- "github.com/containers/podman/v2/pkg/api/handlers/libpod"
+ "github.com/containers/podman/v3/pkg/api/handlers/compat"
+ "github.com/containers/podman/v3/pkg/api/handlers/libpod"
"github.com/gorilla/mux"
)
diff --git a/pkg/api/server/server.go b/pkg/api/server/server.go
index 6926eda62..e23448fd1 100644
--- a/pkg/api/server/server.go
+++ b/pkg/api/server/server.go
@@ -13,10 +13,10 @@ import (
"syscall"
"time"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/shutdown"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/api/server/idle"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/shutdown"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/api/server/idle"
"github.com/coreos/go-systemd/v22/activation"
"github.com/coreos/go-systemd/v22/daemon"
"github.com/gorilla/mux"
diff --git a/pkg/api/server/swagger.go b/pkg/api/server/swagger.go
index d4fc33442..92efb8ef3 100644
--- a/pkg/api/server/swagger.go
+++ b/pkg/api/server/swagger.go
@@ -1,11 +1,11 @@
package server
import (
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
- "github.com/containers/podman/v2/pkg/errorhandling"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/pkg/errorhandling"
)
// No such image
diff --git a/pkg/auth/auth.go b/pkg/auth/auth.go
index 86d92c028..ecfa6651c 100644
--- a/pkg/auth/auth.go
+++ b/pkg/auth/auth.go
@@ -41,7 +41,6 @@ func GetCredentials(r *http.Request) (*types.DockerAuthConfig, string, HeaderAut
case has(XRegistryAuthHeader):
c, f, err := getAuthCredentials(r)
return c, f, XRegistryAuthHeader, err
-
}
return nil, "", "", nil
}
diff --git a/pkg/autoupdate/autoupdate.go b/pkg/autoupdate/autoupdate.go
index 77851f534..53095c295 100644
--- a/pkg/autoupdate/autoupdate.go
+++ b/pkg/autoupdate/autoupdate.go
@@ -9,12 +9,12 @@ import (
"github.com/containers/image/v5/docker/reference"
"github.com/containers/image/v5/manifest"
"github.com/containers/image/v5/transports/alltransports"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/systemd"
- systemdGen "github.com/containers/podman/v2/pkg/systemd/generate"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/systemd"
+ systemdGen "github.com/containers/podman/v3/pkg/systemd/generate"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
@@ -304,6 +304,7 @@ func updateImage(runtime *libpod.Runtime, name string, options Options) (*image.
image.SigningOptions{},
nil,
util.PullImageAlways,
+ nil,
)
if err != nil {
return nil, err
diff --git a/pkg/bindings/README.md b/pkg/bindings/README.md
index 149deda5e..6fd7d7831 100644
--- a/pkg/bindings/README.md
+++ b/pkg/bindings/README.md
@@ -39,7 +39,7 @@ import (
"fmt"
"os"
- "github.com/containers/podman/v2/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings"
)
func main() {
@@ -66,8 +66,8 @@ import (
"fmt"
"os"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/bindings/containers"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings/containers"
)
func main() {
@@ -94,8 +94,8 @@ import (
"fmt"
"os"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/bindings/images"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings/images"
)
func main() {
@@ -122,10 +122,10 @@ import (
"fmt"
"os"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/bindings/containers"
- "github.com/containers/podman/v2/pkg/bindings/images"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings/containers"
+ "github.com/containers/podman/v3/pkg/bindings/images"
+ "github.com/containers/podman/v3/pkg/specgen"
)
func main() {
diff --git a/pkg/bindings/connection.go b/pkg/bindings/connection.go
index 7b26037eb..ad16498d5 100644
--- a/pkg/bindings/connection.go
+++ b/pkg/bindings/connection.go
@@ -13,7 +13,7 @@ import (
"time"
"github.com/blang/semver"
- "github.com/containers/podman/v2/pkg/terminal"
+ "github.com/containers/podman/v3/pkg/terminal"
jsoniter "github.com/json-iterator/go"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
@@ -124,7 +124,7 @@ func NewConnectionWithIdentity(ctx context.Context, uri string, identity string)
ctx = context.WithValue(ctx, clientKey, &connection)
if err := pingNewConnection(ctx); err != nil {
- return nil, err
+ return nil, errors.Wrap(err, "cannot connect to the Podman socket, please verify that Podman REST API service is running")
}
return ctx, nil
}
diff --git a/pkg/bindings/containers/archive.go b/pkg/bindings/containers/archive.go
index d1bbc0b95..0178f63c3 100644
--- a/pkg/bindings/containers/archive.go
+++ b/pkg/bindings/containers/archive.go
@@ -6,9 +6,9 @@ import (
"net/http"
"net/url"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/copy"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/copy"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/pkg/errors"
)
@@ -30,7 +30,7 @@ func Stat(ctx context.Context, nameOrID string, path string) (*entities.Containe
var finalErr error
if response.StatusCode == http.StatusNotFound {
- finalErr = copy.ENOENT
+ finalErr = copy.ErrENOENT
} else if response.StatusCode != http.StatusOK {
finalErr = errors.New(response.Status)
}
diff --git a/pkg/bindings/containers/attach.go b/pkg/bindings/containers/attach.go
index 586cdec8c..f48b99a95 100644
--- a/pkg/bindings/containers/attach.go
+++ b/pkg/bindings/containers/attach.go
@@ -15,10 +15,10 @@ import (
"strconv"
"time"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/bindings"
- sig "github.com/containers/podman/v2/pkg/signal"
- "github.com/containers/podman/v2/utils"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/bindings"
+ sig "github.com/containers/podman/v3/pkg/signal"
+ "github.com/containers/podman/v3/utils"
"github.com/moby/term"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
diff --git a/pkg/bindings/containers/checkpoint.go b/pkg/bindings/containers/checkpoint.go
index c250558a6..440bf707d 100644
--- a/pkg/bindings/containers/checkpoint.go
+++ b/pkg/bindings/containers/checkpoint.go
@@ -4,8 +4,8 @@ import (
"context"
"net/http"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/domain/entities"
)
// Checkpoint checkpoints the given container (identified by nameOrID). All additional
diff --git a/pkg/bindings/containers/commit.go b/pkg/bindings/containers/commit.go
index 6205c75bd..8ae61322e 100644
--- a/pkg/bindings/containers/commit.go
+++ b/pkg/bindings/containers/commit.go
@@ -4,8 +4,8 @@ import (
"context"
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/bindings"
)
// Commit creates a container image from a container. The container is defined by nameOrID. Use
diff --git a/pkg/bindings/containers/containers.go b/pkg/bindings/containers/containers.go
index 8e644b712..86304f392 100644
--- a/pkg/bindings/containers/containers.go
+++ b/pkg/bindings/containers/containers.go
@@ -7,11 +7,11 @@ import (
"net/url"
"strings"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
@@ -137,7 +137,6 @@ func Kill(ctx context.Context, nameOrID string, options *KillOptions) error {
return err
}
return response.Process(nil)
-
}
// Pause pauses a given container. The nameOrID can be a container name
@@ -270,8 +269,8 @@ func Top(ctx context.Context, nameOrID string, options *TopOptions) ([]string, e
}
params := url.Values{}
if options.Changed("Descriptors") {
- ps_args := strings.Join(options.GetDescriptors(), ",")
- params.Add("ps_args", ps_args)
+ psArgs := strings.Join(options.GetDescriptors(), ",")
+ params.Add("ps_args", psArgs)
}
response, err := conn.DoRequest(nil, http.MethodGet, "/containers/%s/top", params, nil, nameOrID)
if err != nil {
diff --git a/pkg/bindings/containers/create.go b/pkg/bindings/containers/create.go
index 177cf2e9c..3efa9643d 100644
--- a/pkg/bindings/containers/create.go
+++ b/pkg/bindings/containers/create.go
@@ -5,9 +5,9 @@ import (
"net/http"
"strings"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/specgen"
jsoniter "github.com/json-iterator/go"
)
diff --git a/pkg/bindings/containers/diff.go b/pkg/bindings/containers/diff.go
index 015172360..0d0516044 100644
--- a/pkg/bindings/containers/diff.go
+++ b/pkg/bindings/containers/diff.go
@@ -4,7 +4,7 @@ import (
"context"
"net/http"
- "github.com/containers/podman/v2/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings"
"github.com/containers/storage/pkg/archive"
)
diff --git a/pkg/bindings/containers/exec.go b/pkg/bindings/containers/exec.go
index 98ca975a0..5ae6d1d71 100644
--- a/pkg/bindings/containers/exec.go
+++ b/pkg/bindings/containers/exec.go
@@ -6,9 +6,9 @@ import (
"net/http"
"strings"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/bindings"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/bindings"
jsoniter "github.com/json-iterator/go"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
diff --git a/pkg/bindings/containers/healthcheck.go b/pkg/bindings/containers/healthcheck.go
index 44b27629b..d6b721615 100644
--- a/pkg/bindings/containers/healthcheck.go
+++ b/pkg/bindings/containers/healthcheck.go
@@ -4,8 +4,8 @@ import (
"context"
"net/http"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/bindings"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/bindings"
)
// RunHealthCheck executes the container's healthcheck and returns the health status of the
diff --git a/pkg/bindings/containers/logs.go b/pkg/bindings/containers/logs.go
index 04307d880..a3100c697 100644
--- a/pkg/bindings/containers/logs.go
+++ b/pkg/bindings/containers/logs.go
@@ -7,7 +7,7 @@ import (
"net/http"
"strconv"
- "github.com/containers/podman/v2/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings"
"github.com/pkg/errors"
)
diff --git a/pkg/bindings/containers/mount.go b/pkg/bindings/containers/mount.go
index 4fd9f89bc..bb5c3bd67 100644
--- a/pkg/bindings/containers/mount.go
+++ b/pkg/bindings/containers/mount.go
@@ -4,7 +4,7 @@ import (
"context"
"net/http"
- "github.com/containers/podman/v2/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings"
)
// Mount mounts an existing container to the filesystem. It returns the path
diff --git a/pkg/bindings/containers/rename.go b/pkg/bindings/containers/rename.go
index 0e8c7f198..60d7fda73 100644
--- a/pkg/bindings/containers/rename.go
+++ b/pkg/bindings/containers/rename.go
@@ -4,7 +4,7 @@ import (
"context"
"net/http"
- "github.com/containers/podman/v2/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings"
)
// Rename an existing container.
diff --git a/pkg/bindings/containers/types.go b/pkg/bindings/containers/types.go
index 4889b444a..2d0e65bb4 100644
--- a/pkg/bindings/containers/types.go
+++ b/pkg/bindings/containers/types.go
@@ -4,7 +4,7 @@ import (
"bufio"
"io"
- "github.com/containers/podman/v2/libpod/define"
+ "github.com/containers/podman/v3/libpod/define"
)
//go:generate go run ../generator/generator.go LogOptions
diff --git a/pkg/bindings/containers/types_attach_options.go b/pkg/bindings/containers/types_attach_options.go
index ab5a1615c..cb8f9ea65 100644
--- a/pkg/bindings/containers/types_attach_options.go
+++ b/pkg/bindings/containers/types_attach_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *AttachOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *AttachOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithDetachKeys
diff --git a/pkg/bindings/containers/types_checkpoint_options.go b/pkg/bindings/containers/types_checkpoint_options.go
index d239c476f..a2a9a913e 100644
--- a/pkg/bindings/containers/types_checkpoint_options.go
+++ b/pkg/bindings/containers/types_checkpoint_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *CheckpointOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *CheckpointOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithExport
diff --git a/pkg/bindings/containers/types_commit_options.go b/pkg/bindings/containers/types_commit_options.go
index 061f16e25..dfb7b2ced 100644
--- a/pkg/bindings/containers/types_commit_options.go
+++ b/pkg/bindings/containers/types_commit_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *CommitOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *CommitOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithAuthor
diff --git a/pkg/bindings/containers/types_create_options.go b/pkg/bindings/containers/types_create_options.go
index 8cde11335..dd8c82c15 100644
--- a/pkg/bindings/containers/types_create_options.go
+++ b/pkg/bindings/containers/types_create_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *CreateOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *CreateOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/containers/types_diff_options.go b/pkg/bindings/containers/types_diff_options.go
index e912bf041..ed356335d 100644
--- a/pkg/bindings/containers/types_diff_options.go
+++ b/pkg/bindings/containers/types_diff_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *DiffOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *DiffOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/containers/types_execinspect_options.go b/pkg/bindings/containers/types_execinspect_options.go
index b870db46b..b14ce9edb 100644
--- a/pkg/bindings/containers/types_execinspect_options.go
+++ b/pkg/bindings/containers/types_execinspect_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ExecInspectOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ExecInspectOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/containers/types_execstart_options.go b/pkg/bindings/containers/types_execstart_options.go
index 95f97b1d7..052270c49 100644
--- a/pkg/bindings/containers/types_execstart_options.go
+++ b/pkg/bindings/containers/types_execstart_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ExecStartOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ExecStartOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/containers/types_execstartandattach_options.go b/pkg/bindings/containers/types_execstartandattach_options.go
index 1981c319a..feda9cc83 100644
--- a/pkg/bindings/containers/types_execstartandattach_options.go
+++ b/pkg/bindings/containers/types_execstartandattach_options.go
@@ -4,12 +4,8 @@ import (
"bufio"
"io"
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -18,62 +14,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ExecStartAndAttachOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ExecStartAndAttachOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithOutputStream
diff --git a/pkg/bindings/containers/types_exists_options.go b/pkg/bindings/containers/types_exists_options.go
index a52777600..a3eefcebf 100644
--- a/pkg/bindings/containers/types_exists_options.go
+++ b/pkg/bindings/containers/types_exists_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ExistsOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ExistsOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithExternal
diff --git a/pkg/bindings/containers/types_export_options.go b/pkg/bindings/containers/types_export_options.go
index 3943a5a3b..d15904bc1 100644
--- a/pkg/bindings/containers/types_export_options.go
+++ b/pkg/bindings/containers/types_export_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ExportOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ExportOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/containers/types_healthcheck_options.go b/pkg/bindings/containers/types_healthcheck_options.go
index a548232cd..edad13fee 100644
--- a/pkg/bindings/containers/types_healthcheck_options.go
+++ b/pkg/bindings/containers/types_healthcheck_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *HealthCheckOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *HealthCheckOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/containers/types_init_options.go b/pkg/bindings/containers/types_init_options.go
index 92e8a6c17..602608133 100644
--- a/pkg/bindings/containers/types_init_options.go
+++ b/pkg/bindings/containers/types_init_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *InitOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *InitOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/containers/types_inspect_options.go b/pkg/bindings/containers/types_inspect_options.go
index fdb84bda8..d1f64ea9a 100644
--- a/pkg/bindings/containers/types_inspect_options.go
+++ b/pkg/bindings/containers/types_inspect_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *InspectOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *InspectOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithSize
diff --git a/pkg/bindings/containers/types_kill_options.go b/pkg/bindings/containers/types_kill_options.go
index 45bd790a4..60cb4ae2c 100644
--- a/pkg/bindings/containers/types_kill_options.go
+++ b/pkg/bindings/containers/types_kill_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *KillOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *KillOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithSignal
diff --git a/pkg/bindings/containers/types_list_options.go b/pkg/bindings/containers/types_list_options.go
index 3293320ec..c96b7d880 100644
--- a/pkg/bindings/containers/types_list_options.go
+++ b/pkg/bindings/containers/types_list_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ListOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ListOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithAll
diff --git a/pkg/bindings/containers/types_log_options.go b/pkg/bindings/containers/types_log_options.go
index e78eb7bd0..63f323089 100644
--- a/pkg/bindings/containers/types_log_options.go
+++ b/pkg/bindings/containers/types_log_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *LogOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *LogOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithFollow
diff --git a/pkg/bindings/containers/types_mount_options.go b/pkg/bindings/containers/types_mount_options.go
index cc8df1255..a1d8aef62 100644
--- a/pkg/bindings/containers/types_mount_options.go
+++ b/pkg/bindings/containers/types_mount_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *MountOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *MountOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/containers/types_mountedcontainerpaths_options.go b/pkg/bindings/containers/types_mountedcontainerpaths_options.go
index 78fa2fca0..c4562f43a 100644
--- a/pkg/bindings/containers/types_mountedcontainerpaths_options.go
+++ b/pkg/bindings/containers/types_mountedcontainerpaths_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *MountedContainerPathsOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *MountedContainerPathsOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/containers/types_pause_options.go b/pkg/bindings/containers/types_pause_options.go
index 55f14bef0..fa2ad4995 100644
--- a/pkg/bindings/containers/types_pause_options.go
+++ b/pkg/bindings/containers/types_pause_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *PauseOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *PauseOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/containers/types_prune_options.go b/pkg/bindings/containers/types_prune_options.go
index 000c7c0bd..adba0a4ef 100644
--- a/pkg/bindings/containers/types_prune_options.go
+++ b/pkg/bindings/containers/types_prune_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *PruneOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *PruneOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithFilters
diff --git a/pkg/bindings/containers/types_remove_options.go b/pkg/bindings/containers/types_remove_options.go
index dfb5367eb..cd4b76ac2 100644
--- a/pkg/bindings/containers/types_remove_options.go
+++ b/pkg/bindings/containers/types_remove_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *RemoveOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *RemoveOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithIgnore
diff --git a/pkg/bindings/containers/types_rename_options.go b/pkg/bindings/containers/types_rename_options.go
index f4f5d1426..96d9aaab5 100644
--- a/pkg/bindings/containers/types_rename_options.go
+++ b/pkg/bindings/containers/types_rename_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *RenameOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *RenameOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithName
diff --git a/pkg/bindings/containers/types_resizeexectty_options.go b/pkg/bindings/containers/types_resizeexectty_options.go
index e63d965eb..d74459822 100644
--- a/pkg/bindings/containers/types_resizeexectty_options.go
+++ b/pkg/bindings/containers/types_resizeexectty_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ResizeExecTTYOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ResizeExecTTYOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithHeight
diff --git a/pkg/bindings/containers/types_resizetty_options.go b/pkg/bindings/containers/types_resizetty_options.go
index 3170f4053..68527b330 100644
--- a/pkg/bindings/containers/types_resizetty_options.go
+++ b/pkg/bindings/containers/types_resizetty_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ResizeTTYOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ResizeTTYOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithHeight
diff --git a/pkg/bindings/containers/types_restart_options.go b/pkg/bindings/containers/types_restart_options.go
index d59176e67..18a47fcb6 100644
--- a/pkg/bindings/containers/types_restart_options.go
+++ b/pkg/bindings/containers/types_restart_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *RestartOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *RestartOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithTimeout
diff --git a/pkg/bindings/containers/types_restore_options.go b/pkg/bindings/containers/types_restore_options.go
index e9f14fc47..ea6c810a2 100644
--- a/pkg/bindings/containers/types_restore_options.go
+++ b/pkg/bindings/containers/types_restore_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *RestoreOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *RestoreOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithIgnoreRootfs
diff --git a/pkg/bindings/containers/types_shouldrestart_options.go b/pkg/bindings/containers/types_shouldrestart_options.go
index 49f943460..28986d4f8 100644
--- a/pkg/bindings/containers/types_shouldrestart_options.go
+++ b/pkg/bindings/containers/types_shouldrestart_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ShouldRestartOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ShouldRestartOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/containers/types_start_options.go b/pkg/bindings/containers/types_start_options.go
index a0f0b3077..f8ba29623 100644
--- a/pkg/bindings/containers/types_start_options.go
+++ b/pkg/bindings/containers/types_start_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *StartOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *StartOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithDetachKeys
diff --git a/pkg/bindings/containers/types_stats_options.go b/pkg/bindings/containers/types_stats_options.go
index 79e35ba62..8f6a03301 100644
--- a/pkg/bindings/containers/types_stats_options.go
+++ b/pkg/bindings/containers/types_stats_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *StatsOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *StatsOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithStream
diff --git a/pkg/bindings/containers/types_stop_options.go b/pkg/bindings/containers/types_stop_options.go
index f221b16e8..d952f9c29 100644
--- a/pkg/bindings/containers/types_stop_options.go
+++ b/pkg/bindings/containers/types_stop_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *StopOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *StopOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithIgnore
diff --git a/pkg/bindings/containers/types_top_options.go b/pkg/bindings/containers/types_top_options.go
index 570dd4e90..a80f2111a 100644
--- a/pkg/bindings/containers/types_top_options.go
+++ b/pkg/bindings/containers/types_top_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *TopOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *TopOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithDescriptors
diff --git a/pkg/bindings/containers/types_unmount_options.go b/pkg/bindings/containers/types_unmount_options.go
index 24249073e..6f624081b 100644
--- a/pkg/bindings/containers/types_unmount_options.go
+++ b/pkg/bindings/containers/types_unmount_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *UnmountOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *UnmountOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/containers/types_unpause_options.go b/pkg/bindings/containers/types_unpause_options.go
index 3b1d75001..d6694d4da 100644
--- a/pkg/bindings/containers/types_unpause_options.go
+++ b/pkg/bindings/containers/types_unpause_options.go
@@ -2,12 +2,8 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *UnpauseOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *UnpauseOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/containers/types_wait_options.go b/pkg/bindings/containers/types_wait_options.go
index a3f1e3b8c..ea724b619 100644
--- a/pkg/bindings/containers/types_wait_options.go
+++ b/pkg/bindings/containers/types_wait_options.go
@@ -2,13 +2,9 @@ package containers
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -17,62 +13,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *WaitOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *WaitOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithCondition
diff --git a/pkg/bindings/errors.go b/pkg/bindings/errors.go
index e75ce898d..3339062a5 100644
--- a/pkg/bindings/errors.go
+++ b/pkg/bindings/errors.go
@@ -4,7 +4,7 @@ import (
"encoding/json"
"io/ioutil"
- "github.com/containers/podman/v2/pkg/errorhandling"
+ "github.com/containers/podman/v3/pkg/errorhandling"
"github.com/pkg/errors"
)
@@ -20,12 +20,12 @@ func handleError(data []byte) error {
return e
}
-func (a APIResponse) Process(unmarshalInto interface{}) error {
- data, err := ioutil.ReadAll(a.Response.Body)
+func (h APIResponse) Process(unmarshalInto interface{}) error {
+ data, err := ioutil.ReadAll(h.Response.Body)
if err != nil {
return errors.Wrap(err, "unable to process API response")
}
- if a.IsSuccess() || a.IsRedirection() {
+ if h.IsSuccess() || h.IsRedirection() {
if unmarshalInto != nil {
return json.Unmarshal(data, unmarshalInto)
}
diff --git a/pkg/bindings/generate/generate.go b/pkg/bindings/generate/generate.go
index 29eb39557..7c904a6a8 100644
--- a/pkg/bindings/generate/generate.go
+++ b/pkg/bindings/generate/generate.go
@@ -5,8 +5,8 @@ import (
"errors"
"net/http"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/domain/entities"
)
func Systemd(ctx context.Context, nameOrID string, options *SystemdOptions) (*entities.GenerateSystemdReport, error) {
diff --git a/pkg/bindings/generate/types.go b/pkg/bindings/generate/types.go
index 4e9d7a0ff..3c9ea87d4 100644
--- a/pkg/bindings/generate/types.go
+++ b/pkg/bindings/generate/types.go
@@ -14,6 +14,8 @@ type SystemdOptions struct {
UseName *bool
// New - create a new container instead of starting a new one.
New *bool
+ // NoHeader - Removes autogenerated by Podman and timestamp if set to true
+ NoHeader *bool
// RestartPolicy - systemd restart policy.
RestartPolicy *string
// StopTimeout - time when stopping the container.
diff --git a/pkg/bindings/generate/types_kube_options.go b/pkg/bindings/generate/types_kube_options.go
index 218d308e1..785e55dd4 100644
--- a/pkg/bindings/generate/types_kube_options.go
+++ b/pkg/bindings/generate/types_kube_options.go
@@ -1,13 +1,9 @@
package generate
import (
- "errors"
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *KubeOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *KubeOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithService
diff --git a/pkg/bindings/generate/types_systemd_options.go b/pkg/bindings/generate/types_systemd_options.go
index faf981d1b..1cee2e16a 100644
--- a/pkg/bindings/generate/types_systemd_options.go
+++ b/pkg/bindings/generate/types_systemd_options.go
@@ -1,13 +1,9 @@
package generate
import (
- "errors"
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *SystemdOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *SystemdOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithUseName
@@ -106,6 +52,22 @@ func (o *SystemdOptions) GetNew() bool {
return *o.New
}
+// WithNoHeader
+func (o *SystemdOptions) WithNoHeader(value bool) *SystemdOptions {
+ v := &value
+ o.NoHeader = v
+ return o
+}
+
+// GetNoHeader
+func (o *SystemdOptions) GetNoHeader() bool {
+ var noHeader bool
+ if o.NoHeader == nil {
+ return noHeader
+ }
+ return *o.NoHeader
+}
+
// WithRestartPolicy
func (o *SystemdOptions) WithRestartPolicy(value string) *SystemdOptions {
v := &value
diff --git a/pkg/bindings/generator/generator.go b/pkg/bindings/generator/generator.go
index dad154166..90f0bfaf5 100644
--- a/pkg/bindings/generator/generator.go
+++ b/pkg/bindings/generator/generator.go
@@ -27,81 +27,31 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *{{.StructName}}) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *{{.StructName}}) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
-`
-var fieldTmpl = `
+{{range $field := .Fields}}
// With{{.Name}}
-func(o *{{.StructName}}) With{{.Name}}(value {{.Type}}) *{{.StructName}} {
- v := {{.TypedValue}}
- o.{{.Name}} = v
+func(o *{{$field.StructName}}) With{{$field.Name}}(value {{$field.Type}}) *{{$field.StructName}} {
+ v := {{$field.TypedValue}}
+ o.{{$field.Name}} = v
return o
}
// Get{{.Name}}
-func(o *{{.StructName}}) Get{{.Name}}() {{.Type}} {
- var {{.ZeroName}} {{.Type}}
- if o.{{.Name}} == nil {
- return {{.ZeroName}}
+func(o *{{$field.StructName}}) Get{{$field.Name}}() {{$field.Type}} {
+ var {{$field.ZeroName}} {{$field.Type}}
+ if o.{{$field.Name}} == nil {
+ return {{$field.ZeroName}}
}
- return {{.TypedName}}
+ return {{$field.TypedName}}
}
+{{end}}
`
type fieldStruct struct {
@@ -131,7 +81,7 @@ func main() {
panic(err)
}
// always add reflect
- imports := []string{"\"reflect\"", "\"github.com/containers/podman/v2/pkg/bindings/util\""}
+ imports := []string{"\"reflect\"", "\"github.com/containers/podman/v3/pkg/bindings/internal/util\""}
for _, imp := range f.Imports {
imports = append(imports, imp.Path.Value)
}
@@ -145,20 +95,7 @@ func main() {
out.Close()
}
}()
- bodyStruct := struct {
- PackageName string
- Imports []string
- Date string
- StructName string
- }{
- PackageName: pkg,
- Imports: imports,
- Date: time.Now().String(),
- StructName: inputStructName,
- }
- body := template.Must(template.New("body").Parse(bodyTmpl))
- fields := template.Must(template.New("fields").Parse(fieldTmpl))
ast.Inspect(f, func(n ast.Node) bool {
ref, refOK := n.(*ast.TypeSpec)
if refOK {
@@ -202,20 +139,28 @@ func main() {
fieldStructs = append(fieldStructs, fStruct)
} // for
+ bodyStruct := struct {
+ PackageName string
+ Imports []string
+ Date string
+ StructName string
+ Fields []fieldStruct
+ }{
+ PackageName: pkg,
+ Imports: imports,
+ Date: time.Now().String(),
+ StructName: inputStructName,
+ Fields: fieldStructs,
+ }
+
+ body := template.Must(template.New("body").Parse(bodyTmpl))
+
// create the body
if err := body.Execute(out, bodyStruct); err != nil {
fmt.Println(err)
os.Exit(1)
}
- // create with func from the struct fields
- for _, fs := range fieldStructs {
- if err := fields.Execute(out, fs); err != nil {
- fmt.Println(err)
- os.Exit(1)
- }
- }
-
// close out file
if err := out.Close(); err != nil {
fmt.Println(err)
@@ -239,7 +184,6 @@ func main() {
os.Exit(1)
}
}
-
}
return true
})
diff --git a/pkg/bindings/images/build.go b/pkg/bindings/images/build.go
index 8ea09b881..6e16461e5 100644
--- a/pkg/bindings/images/build.go
+++ b/pkg/bindings/images/build.go
@@ -16,9 +16,9 @@ import (
"strings"
"github.com/containers/buildah"
- "github.com/containers/podman/v2/pkg/auth"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/auth"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/containers/storage/pkg/fileutils"
"github.com/docker/go-units"
"github.com/hashicorp/go-multierror"
@@ -57,6 +57,13 @@ func Build(ctx context.Context, containerFiles []string, options entities.BuildO
}
params.Set("buildargs", bArgs)
}
+ if excludes := options.Excludes; len(excludes) > 0 {
+ bArgs, err := jsoniter.MarshalToString(excludes)
+ if err != nil {
+ return nil, err
+ }
+ params.Set("excludes", bArgs)
+ }
if cpuShares := options.CommonBuildOpts.CPUShares; cpuShares > 0 {
params.Set("cpushares", strconv.Itoa(int(cpuShares)))
}
@@ -94,7 +101,9 @@ func Build(ctx context.Context, containerFiles []string, options entities.BuildO
if len(options.From) > 0 {
params.Set("from", options.From)
}
-
+ if options.IgnoreUnrecognizedInstructions {
+ params.Set("ignore", "1")
+ }
params.Set("isolation", strconv.Itoa(int(options.Isolation)))
if options.CommonBuildOpts.HTTPProxy {
params.Set("httpproxy", "1")
@@ -159,6 +168,13 @@ func Build(ctx context.Context, containerFiles []string, options entities.BuildO
}
params.Set("extrahosts", h)
}
+ if nsoptions := options.NamespaceOptions; len(nsoptions) > 0 {
+ ns, err := jsoniter.MarshalToString(nsoptions)
+ if err != nil {
+ return nil, err
+ }
+ params.Set("nsoptions", ns)
+ }
if shmSize := options.CommonBuildOpts.ShmSize; len(shmSize) > 0 {
shmBytes, err := units.RAMInBytes(shmSize)
if err != nil {
diff --git a/pkg/bindings/images/diff.go b/pkg/bindings/images/diff.go
index 8802c15e2..79b0df8c9 100644
--- a/pkg/bindings/images/diff.go
+++ b/pkg/bindings/images/diff.go
@@ -4,7 +4,7 @@ import (
"context"
"net/http"
- "github.com/containers/podman/v2/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings"
"github.com/containers/storage/pkg/archive"
)
diff --git a/pkg/bindings/images/images.go b/pkg/bindings/images/images.go
index 37750bc6c..1be2bdfdd 100644
--- a/pkg/bindings/images/images.go
+++ b/pkg/bindings/images/images.go
@@ -8,11 +8,11 @@ import (
"net/url"
"strconv"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/auth"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/auth"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
"github.com/pkg/errors"
)
diff --git a/pkg/bindings/images/pull.go b/pkg/bindings/images/pull.go
index 5669c704e..f4da2d521 100644
--- a/pkg/bindings/images/pull.go
+++ b/pkg/bindings/images/pull.go
@@ -11,9 +11,9 @@ import (
"os"
"strconv"
- "github.com/containers/podman/v2/pkg/auth"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/auth"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/hashicorp/go-multierror"
)
@@ -93,7 +93,6 @@ func Pull(ctx context.Context, rawImage string, options *PullOptions) ([]string,
default:
return images, errors.New("failed to parse pull results stream, unexpected input")
}
-
}
return images, mErr
}
diff --git a/pkg/bindings/images/rm.go b/pkg/bindings/images/rm.go
index e652e66aa..beecce7bf 100644
--- a/pkg/bindings/images/rm.go
+++ b/pkg/bindings/images/rm.go
@@ -4,10 +4,10 @@ import (
"context"
"net/http"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/errorhandling"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/errorhandling"
)
// Remove removes one or more images from the local storage. Use optional force option to remove an
diff --git a/pkg/bindings/images/types_diff_options.go b/pkg/bindings/images/types_diff_options.go
index edfc7bfa2..f15a9a696 100644
--- a/pkg/bindings/images/types_diff_options.go
+++ b/pkg/bindings/images/types_diff_options.go
@@ -2,12 +2,8 @@ package images
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *DiffOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *DiffOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/images/types_exists_options.go b/pkg/bindings/images/types_exists_options.go
index 649be4862..2326c398b 100644
--- a/pkg/bindings/images/types_exists_options.go
+++ b/pkg/bindings/images/types_exists_options.go
@@ -2,12 +2,8 @@ package images
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ExistsOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ExistsOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/images/types_export_options.go b/pkg/bindings/images/types_export_options.go
index ebd053165..0c5a3390c 100644
--- a/pkg/bindings/images/types_export_options.go
+++ b/pkg/bindings/images/types_export_options.go
@@ -2,12 +2,8 @@ package images
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ExportOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ExportOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithCompress
diff --git a/pkg/bindings/images/types_get_options.go b/pkg/bindings/images/types_get_options.go
index 33ebe2611..33da7b0be 100644
--- a/pkg/bindings/images/types_get_options.go
+++ b/pkg/bindings/images/types_get_options.go
@@ -2,12 +2,8 @@ package images
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *GetOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *GetOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithSize
diff --git a/pkg/bindings/images/types_history_options.go b/pkg/bindings/images/types_history_options.go
index b2c37acea..191375390 100644
--- a/pkg/bindings/images/types_history_options.go
+++ b/pkg/bindings/images/types_history_options.go
@@ -2,12 +2,8 @@ package images
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *HistoryOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *HistoryOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/images/types_import_options.go b/pkg/bindings/images/types_import_options.go
index e2aed0866..333e841e6 100644
--- a/pkg/bindings/images/types_import_options.go
+++ b/pkg/bindings/images/types_import_options.go
@@ -2,12 +2,8 @@ package images
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ImportOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ImportOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithChanges
diff --git a/pkg/bindings/images/types_list_options.go b/pkg/bindings/images/types_list_options.go
index e194474b9..e86157f59 100644
--- a/pkg/bindings/images/types_list_options.go
+++ b/pkg/bindings/images/types_list_options.go
@@ -2,12 +2,8 @@ package images
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ListOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ListOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithAll
diff --git a/pkg/bindings/images/types_load_options.go b/pkg/bindings/images/types_load_options.go
index 7e15d4e03..7b2e504d9 100644
--- a/pkg/bindings/images/types_load_options.go
+++ b/pkg/bindings/images/types_load_options.go
@@ -2,12 +2,8 @@ package images
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *LoadOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *LoadOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithReference
diff --git a/pkg/bindings/images/types_prune_options.go b/pkg/bindings/images/types_prune_options.go
index f86676d53..6bd0c0f6f 100644
--- a/pkg/bindings/images/types_prune_options.go
+++ b/pkg/bindings/images/types_prune_options.go
@@ -2,12 +2,8 @@ package images
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *PruneOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *PruneOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithAll
diff --git a/pkg/bindings/images/types_pull_options.go b/pkg/bindings/images/types_pull_options.go
index 59e2b6354..0611c4447 100644
--- a/pkg/bindings/images/types_pull_options.go
+++ b/pkg/bindings/images/types_pull_options.go
@@ -2,12 +2,8 @@ package images
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *PullOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *PullOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithAllTags
diff --git a/pkg/bindings/images/types_push_options.go b/pkg/bindings/images/types_push_options.go
index 85f1ffee5..2593c2fe0 100644
--- a/pkg/bindings/images/types_push_options.go
+++ b/pkg/bindings/images/types_push_options.go
@@ -2,12 +2,8 @@ package images
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *PushOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *PushOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithAll
diff --git a/pkg/bindings/images/types_remove_options.go b/pkg/bindings/images/types_remove_options.go
index d79186565..d591aae88 100644
--- a/pkg/bindings/images/types_remove_options.go
+++ b/pkg/bindings/images/types_remove_options.go
@@ -2,12 +2,8 @@ package images
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *RemoveOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *RemoveOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithAll
diff --git a/pkg/bindings/images/types_search_options.go b/pkg/bindings/images/types_search_options.go
index a55c9ac89..a437a0934 100644
--- a/pkg/bindings/images/types_search_options.go
+++ b/pkg/bindings/images/types_search_options.go
@@ -2,12 +2,8 @@ package images
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *SearchOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *SearchOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithAuthfile
diff --git a/pkg/bindings/images/types_tag_options.go b/pkg/bindings/images/types_tag_options.go
index b323ea41c..25cb8f68b 100644
--- a/pkg/bindings/images/types_tag_options.go
+++ b/pkg/bindings/images/types_tag_options.go
@@ -2,12 +2,8 @@ package images
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *TagOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *TagOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/images/types_tree_options.go b/pkg/bindings/images/types_tree_options.go
index 8e1b16c5c..43178113d 100644
--- a/pkg/bindings/images/types_tree_options.go
+++ b/pkg/bindings/images/types_tree_options.go
@@ -2,12 +2,8 @@ package images
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *TreeOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *TreeOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithWhatRequires
diff --git a/pkg/bindings/images/types_untag_options.go b/pkg/bindings/images/types_untag_options.go
index b28670134..520cf7a49 100644
--- a/pkg/bindings/images/types_untag_options.go
+++ b/pkg/bindings/images/types_untag_options.go
@@ -2,12 +2,8 @@ package images
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *UntagOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *UntagOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/internal/util/util.go b/pkg/bindings/internal/util/util.go
new file mode 100644
index 000000000..c1961308e
--- /dev/null
+++ b/pkg/bindings/internal/util/util.go
@@ -0,0 +1,102 @@
+package util
+
+import (
+ "errors"
+ "fmt"
+ "net/url"
+ "reflect"
+ "strconv"
+ "strings"
+
+ jsoniter "github.com/json-iterator/go"
+)
+
+func IsSimpleType(f reflect.Value) bool {
+ if _, ok := f.Interface().(fmt.Stringer); ok {
+ return true
+ }
+
+ switch f.Kind() {
+ case reflect.Bool, reflect.Int, reflect.Int64, reflect.Uint, reflect.Uint64, reflect.String:
+ return true
+ }
+
+ return false
+}
+
+func SimpleTypeToParam(f reflect.Value) string {
+ if s, ok := f.Interface().(fmt.Stringer); ok {
+ return s.String()
+ }
+
+ switch f.Kind() {
+ case reflect.Bool:
+ return strconv.FormatBool(f.Bool())
+ case reflect.Int, reflect.Int64:
+ // f.Int() is always an int64
+ return strconv.FormatInt(f.Int(), 10)
+ case reflect.Uint, reflect.Uint64:
+ // f.Uint() is always an uint64
+ return strconv.FormatUint(f.Uint(), 10)
+ case reflect.String:
+ return f.String()
+ }
+
+ panic("the input parameter is not a simple type")
+}
+
+func Changed(o interface{}, fieldName string) bool {
+ r := reflect.ValueOf(o)
+ value := reflect.Indirect(r).FieldByName(fieldName)
+ return !value.IsNil()
+}
+
+func ToParams(o interface{}) (url.Values, error) {
+ params := url.Values{}
+ if o == nil || reflect.ValueOf(o).IsNil() {
+ return params, nil
+ }
+ json := jsoniter.ConfigCompatibleWithStandardLibrary
+ s := reflect.ValueOf(o)
+ if reflect.Ptr == s.Kind() {
+ s = s.Elem()
+ }
+ sType := s.Type()
+ for i := 0; i < s.NumField(); i++ {
+ fieldName := sType.Field(i).Name
+ if !Changed(o, fieldName) {
+ continue
+ }
+ fieldName = strings.ToLower(fieldName)
+ f := s.Field(i)
+ if reflect.Ptr == f.Kind() {
+ f = f.Elem()
+ }
+ switch {
+ case IsSimpleType(f):
+ params.Set(fieldName, SimpleTypeToParam(f))
+ case f.Kind() == reflect.Slice:
+ for i := 0; i < f.Len(); i++ {
+ elem := f.Index(i)
+ if IsSimpleType(elem) {
+ params.Add(fieldName, SimpleTypeToParam(elem))
+ } else {
+ return nil, errors.New("slices must contain only simple types")
+ }
+ }
+ case f.Kind() == reflect.Map:
+ lowerCaseKeys := make(map[string][]string)
+ iter := f.MapRange()
+ for iter.Next() {
+ lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
+ }
+ s, err := json.MarshalToString(lowerCaseKeys)
+ if err != nil {
+ return nil, err
+ }
+
+ params.Set(fieldName, s)
+ }
+ }
+ return params, nil
+}
diff --git a/pkg/bindings/manifests/manifests.go b/pkg/bindings/manifests/manifests.go
index 4634dd442..268ce3b19 100644
--- a/pkg/bindings/manifests/manifests.go
+++ b/pkg/bindings/manifests/manifests.go
@@ -9,9 +9,9 @@ import (
"strings"
"github.com/containers/image/v5/manifest"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/bindings/images"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings/images"
jsoniter "github.com/json-iterator/go"
)
diff --git a/pkg/bindings/manifests/types_add_options.go b/pkg/bindings/manifests/types_add_options.go
index 61314c479..09105c590 100644
--- a/pkg/bindings/manifests/types_add_options.go
+++ b/pkg/bindings/manifests/types_add_options.go
@@ -1,13 +1,9 @@
package manifests
import (
- "errors"
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *AddOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *AddOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithAll
diff --git a/pkg/bindings/manifests/types_create_options.go b/pkg/bindings/manifests/types_create_options.go
index 4c7c1397a..5f022c672 100644
--- a/pkg/bindings/manifests/types_create_options.go
+++ b/pkg/bindings/manifests/types_create_options.go
@@ -1,13 +1,9 @@
package manifests
import (
- "errors"
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *CreateOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *CreateOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithAll
diff --git a/pkg/bindings/manifests/types_exists_options.go b/pkg/bindings/manifests/types_exists_options.go
index 2a4962ae6..6f33c2cd5 100644
--- a/pkg/bindings/manifests/types_exists_options.go
+++ b/pkg/bindings/manifests/types_exists_options.go
@@ -1,13 +1,9 @@
package manifests
import (
- "errors"
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ExistsOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ExistsOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/manifests/types_inspect_options.go b/pkg/bindings/manifests/types_inspect_options.go
index 0b82fc3cf..7dfa11cb4 100644
--- a/pkg/bindings/manifests/types_inspect_options.go
+++ b/pkg/bindings/manifests/types_inspect_options.go
@@ -1,13 +1,9 @@
package manifests
import (
- "errors"
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *InspectOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *InspectOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/manifests/types_remove_options.go b/pkg/bindings/manifests/types_remove_options.go
index 6ed0fd329..7a507cf1a 100644
--- a/pkg/bindings/manifests/types_remove_options.go
+++ b/pkg/bindings/manifests/types_remove_options.go
@@ -1,13 +1,9 @@
package manifests
import (
- "errors"
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *RemoveOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *RemoveOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/network/network.go b/pkg/bindings/network/network.go
index 428e60cf2..46a3719fe 100644
--- a/pkg/bindings/network/network.go
+++ b/pkg/bindings/network/network.go
@@ -6,8 +6,8 @@ import (
"net/url"
"strings"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/domain/entities"
jsoniter "github.com/json-iterator/go"
)
@@ -102,7 +102,7 @@ func List(ctx context.Context, options *ListOptions) ([]*entities.NetworkListRep
}
// Disconnect removes a container from a given network
-func Disconnect(ctx context.Context, networkName string, ContainerNameOrId string, options *DisconnectOptions) error {
+func Disconnect(ctx context.Context, networkName string, ContainerNameOrID string, options *DisconnectOptions) error {
if options == nil {
options = new(DisconnectOptions)
}
@@ -117,7 +117,7 @@ func Disconnect(ctx context.Context, networkName string, ContainerNameOrId strin
Container string
Force bool
}{
- Container: ContainerNameOrId,
+ Container: ContainerNameOrID,
}
if force := options.GetForce(); options.Changed("Force") {
disconnect.Force = force
@@ -136,7 +136,7 @@ func Disconnect(ctx context.Context, networkName string, ContainerNameOrId strin
}
// Connect adds a container to a network
-func Connect(ctx context.Context, networkName string, ContainerNameOrId string, options *ConnectOptions) error {
+func Connect(ctx context.Context, networkName string, ContainerNameOrID string, options *ConnectOptions) error {
if options == nil {
options = new(ConnectOptions)
}
@@ -151,7 +151,7 @@ func Connect(ctx context.Context, networkName string, ContainerNameOrId string,
Container string
Aliases []string
}{
- Container: ContainerNameOrId,
+ Container: ContainerNameOrID,
}
if aliases := options.GetAliases(); options.Changed("Aliases") {
connect.Aliases = aliases
diff --git a/pkg/bindings/network/types_connect_options.go b/pkg/bindings/network/types_connect_options.go
index 4440bbed4..c0e7a6f50 100644
--- a/pkg/bindings/network/types_connect_options.go
+++ b/pkg/bindings/network/types_connect_options.go
@@ -2,12 +2,8 @@ package network
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ConnectOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ConnectOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithAliases
diff --git a/pkg/bindings/network/types_create_options.go b/pkg/bindings/network/types_create_options.go
index 5fbdce93a..5746a5b1f 100644
--- a/pkg/bindings/network/types_create_options.go
+++ b/pkg/bindings/network/types_create_options.go
@@ -3,12 +3,8 @@ package network
import (
"net"
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -17,62 +13,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *CreateOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *CreateOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithDisableDNS
diff --git a/pkg/bindings/network/types_disconnect_options.go b/pkg/bindings/network/types_disconnect_options.go
index 947f2f114..a73675d4f 100644
--- a/pkg/bindings/network/types_disconnect_options.go
+++ b/pkg/bindings/network/types_disconnect_options.go
@@ -2,12 +2,8 @@ package network
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *DisconnectOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *DisconnectOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithForce
diff --git a/pkg/bindings/network/types_exists_options.go b/pkg/bindings/network/types_exists_options.go
index 2fad34789..4f33cdfbb 100644
--- a/pkg/bindings/network/types_exists_options.go
+++ b/pkg/bindings/network/types_exists_options.go
@@ -2,12 +2,8 @@ package network
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ExistsOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ExistsOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/network/types_inspect_options.go b/pkg/bindings/network/types_inspect_options.go
index 144ccbfae..9f7497ed5 100644
--- a/pkg/bindings/network/types_inspect_options.go
+++ b/pkg/bindings/network/types_inspect_options.go
@@ -2,12 +2,8 @@ package network
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *InspectOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *InspectOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/network/types_list_options.go b/pkg/bindings/network/types_list_options.go
index 60632ce33..fcbe23bd6 100644
--- a/pkg/bindings/network/types_list_options.go
+++ b/pkg/bindings/network/types_list_options.go
@@ -2,12 +2,8 @@ package network
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ListOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ListOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithFilters
diff --git a/pkg/bindings/network/types_prune_options.go b/pkg/bindings/network/types_prune_options.go
index c56dcd0d3..84e1a8b32 100644
--- a/pkg/bindings/network/types_prune_options.go
+++ b/pkg/bindings/network/types_prune_options.go
@@ -2,12 +2,8 @@ package network
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *PruneOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *PruneOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/network/types_remove_options.go b/pkg/bindings/network/types_remove_options.go
index 4ad4a2301..f715c94c9 100644
--- a/pkg/bindings/network/types_remove_options.go
+++ b/pkg/bindings/network/types_remove_options.go
@@ -2,12 +2,8 @@ package network
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *RemoveOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *RemoveOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithForce
diff --git a/pkg/bindings/play/play.go b/pkg/bindings/play/play.go
index 9ee02a093..4b735c821 100644
--- a/pkg/bindings/play/play.go
+++ b/pkg/bindings/play/play.go
@@ -6,9 +6,9 @@ import (
"os"
"strconv"
- "github.com/containers/podman/v2/pkg/auth"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/auth"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/domain/entities"
)
func Kube(ctx context.Context, path string, options *KubeOptions) (*entities.PlayKubeReport, error) {
diff --git a/pkg/bindings/play/types_kube_options.go b/pkg/bindings/play/types_kube_options.go
index ea3872aae..78396a090 100644
--- a/pkg/bindings/play/types_kube_options.go
+++ b/pkg/bindings/play/types_kube_options.go
@@ -1,13 +1,9 @@
package play
import (
- "errors"
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *KubeOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *KubeOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithAuthfile
diff --git a/pkg/bindings/pods/pods.go b/pkg/bindings/pods/pods.go
index ef30348f8..eb7b273cf 100644
--- a/pkg/bindings/pods/pods.go
+++ b/pkg/bindings/pods/pods.go
@@ -6,10 +6,10 @@ import (
"net/url"
"strings"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/specgen"
jsoniter "github.com/json-iterator/go"
)
diff --git a/pkg/bindings/pods/types_create_options.go b/pkg/bindings/pods/types_create_options.go
index cfa29c6be..891ef2e84 100644
--- a/pkg/bindings/pods/types_create_options.go
+++ b/pkg/bindings/pods/types_create_options.go
@@ -2,12 +2,8 @@ package pods
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *CreateOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *CreateOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/pods/types_exists_options.go b/pkg/bindings/pods/types_exists_options.go
index 6149ab1cc..02423e7ed 100644
--- a/pkg/bindings/pods/types_exists_options.go
+++ b/pkg/bindings/pods/types_exists_options.go
@@ -2,12 +2,8 @@ package pods
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ExistsOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ExistsOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/pods/types_inspect_options.go b/pkg/bindings/pods/types_inspect_options.go
index 281717ff1..20ec3a726 100644
--- a/pkg/bindings/pods/types_inspect_options.go
+++ b/pkg/bindings/pods/types_inspect_options.go
@@ -2,12 +2,8 @@ package pods
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *InspectOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *InspectOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/pods/types_kill_options.go b/pkg/bindings/pods/types_kill_options.go
index 4c310d50c..fabd45c67 100644
--- a/pkg/bindings/pods/types_kill_options.go
+++ b/pkg/bindings/pods/types_kill_options.go
@@ -2,12 +2,8 @@ package pods
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *KillOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *KillOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithSignal
diff --git a/pkg/bindings/pods/types_list_options.go b/pkg/bindings/pods/types_list_options.go
index 20f3229e5..7221c7ff8 100644
--- a/pkg/bindings/pods/types_list_options.go
+++ b/pkg/bindings/pods/types_list_options.go
@@ -2,12 +2,8 @@ package pods
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ListOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ListOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithFilters
diff --git a/pkg/bindings/pods/types_pause_options.go b/pkg/bindings/pods/types_pause_options.go
index 0f0f5bd97..0bbc9c293 100644
--- a/pkg/bindings/pods/types_pause_options.go
+++ b/pkg/bindings/pods/types_pause_options.go
@@ -2,12 +2,8 @@ package pods
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *PauseOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *PauseOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/pods/types_prune_options.go b/pkg/bindings/pods/types_prune_options.go
index ef8aae17f..0e788f471 100644
--- a/pkg/bindings/pods/types_prune_options.go
+++ b/pkg/bindings/pods/types_prune_options.go
@@ -2,12 +2,8 @@ package pods
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *PruneOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *PruneOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/pods/types_remove_options.go b/pkg/bindings/pods/types_remove_options.go
index f51f67129..3d3c7ad2a 100644
--- a/pkg/bindings/pods/types_remove_options.go
+++ b/pkg/bindings/pods/types_remove_options.go
@@ -2,12 +2,8 @@ package pods
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *RemoveOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *RemoveOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithForce
diff --git a/pkg/bindings/pods/types_restart_options.go b/pkg/bindings/pods/types_restart_options.go
index ec05e9fc9..9278b7b46 100644
--- a/pkg/bindings/pods/types_restart_options.go
+++ b/pkg/bindings/pods/types_restart_options.go
@@ -2,12 +2,8 @@ package pods
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *RestartOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *RestartOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/pods/types_start_options.go b/pkg/bindings/pods/types_start_options.go
index ec9f5b1de..d0cb50969 100644
--- a/pkg/bindings/pods/types_start_options.go
+++ b/pkg/bindings/pods/types_start_options.go
@@ -2,12 +2,8 @@ package pods
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *StartOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *StartOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/pods/types_stats_options.go b/pkg/bindings/pods/types_stats_options.go
index 8be7d175d..2fb3529ad 100644
--- a/pkg/bindings/pods/types_stats_options.go
+++ b/pkg/bindings/pods/types_stats_options.go
@@ -2,12 +2,8 @@ package pods
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *StatsOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *StatsOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithAll
diff --git a/pkg/bindings/pods/types_stop_options.go b/pkg/bindings/pods/types_stop_options.go
index fa3577e72..443c9120f 100644
--- a/pkg/bindings/pods/types_stop_options.go
+++ b/pkg/bindings/pods/types_stop_options.go
@@ -2,12 +2,8 @@ package pods
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *StopOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *StopOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithTimeout
diff --git a/pkg/bindings/pods/types_top_options.go b/pkg/bindings/pods/types_top_options.go
index c3c701dad..ab6501704 100644
--- a/pkg/bindings/pods/types_top_options.go
+++ b/pkg/bindings/pods/types_top_options.go
@@ -2,12 +2,8 @@ package pods
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *TopOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *TopOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithDescriptors
diff --git a/pkg/bindings/pods/types_unpause_options.go b/pkg/bindings/pods/types_unpause_options.go
index 281f0ea8d..f9ea972e6 100644
--- a/pkg/bindings/pods/types_unpause_options.go
+++ b/pkg/bindings/pods/types_unpause_options.go
@@ -2,12 +2,8 @@ package pods
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *UnpauseOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *UnpauseOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/secrets/secrets.go b/pkg/bindings/secrets/secrets.go
index 3fd70dcad..091d38e56 100644
--- a/pkg/bindings/secrets/secrets.go
+++ b/pkg/bindings/secrets/secrets.go
@@ -5,8 +5,8 @@ import (
"io"
"net/http"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/domain/entities"
)
// List returns information about existing secrets in the form of a slice.
diff --git a/pkg/bindings/secrets/types_create_options.go b/pkg/bindings/secrets/types_create_options.go
index 84cf38fa3..ea5bd3039 100644
--- a/pkg/bindings/secrets/types_create_options.go
+++ b/pkg/bindings/secrets/types_create_options.go
@@ -2,12 +2,8 @@ package secrets
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *CreateOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *CreateOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithDriver
diff --git a/pkg/bindings/secrets/types_inspect_options.go b/pkg/bindings/secrets/types_inspect_options.go
index cd36b0531..48c2737d0 100644
--- a/pkg/bindings/secrets/types_inspect_options.go
+++ b/pkg/bindings/secrets/types_inspect_options.go
@@ -2,12 +2,8 @@ package secrets
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *InspectOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *InspectOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/secrets/types_list_options.go b/pkg/bindings/secrets/types_list_options.go
index d313d8f73..568e021a8 100644
--- a/pkg/bindings/secrets/types_list_options.go
+++ b/pkg/bindings/secrets/types_list_options.go
@@ -2,12 +2,8 @@ package secrets
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ListOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ListOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/secrets/types_remove_options.go b/pkg/bindings/secrets/types_remove_options.go
index ca970e30e..dd5ac530a 100644
--- a/pkg/bindings/secrets/types_remove_options.go
+++ b/pkg/bindings/secrets/types_remove_options.go
@@ -2,12 +2,8 @@ package secrets
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *RemoveOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *RemoveOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/system/info.go b/pkg/bindings/system/info.go
index 798010333..244f9643e 100644
--- a/pkg/bindings/system/info.go
+++ b/pkg/bindings/system/info.go
@@ -4,8 +4,8 @@ import (
"context"
"net/http"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/bindings"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/bindings"
)
// Info returns information about the libpod environment and its stores
diff --git a/pkg/bindings/system/system.go b/pkg/bindings/system/system.go
index 815c967f1..310bcef15 100644
--- a/pkg/bindings/system/system.go
+++ b/pkg/bindings/system/system.go
@@ -8,9 +8,9 @@ import (
"net/http"
"time"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
diff --git a/pkg/bindings/system/types_disk_options.go b/pkg/bindings/system/types_disk_options.go
index 6f0c3735a..d55139b68 100644
--- a/pkg/bindings/system/types_disk_options.go
+++ b/pkg/bindings/system/types_disk_options.go
@@ -2,12 +2,8 @@ package system
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *DiskOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *DiskOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/system/types_events_options.go b/pkg/bindings/system/types_events_options.go
index 401a9807e..8b4cff42c 100644
--- a/pkg/bindings/system/types_events_options.go
+++ b/pkg/bindings/system/types_events_options.go
@@ -2,12 +2,8 @@ package system
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *EventsOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *EventsOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithFilters
diff --git a/pkg/bindings/system/types_info_options.go b/pkg/bindings/system/types_info_options.go
index 7c07b5081..2bbb95a2e 100644
--- a/pkg/bindings/system/types_info_options.go
+++ b/pkg/bindings/system/types_info_options.go
@@ -2,12 +2,8 @@ package system
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *InfoOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *InfoOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/system/types_prune_options.go b/pkg/bindings/system/types_prune_options.go
index c677ccca6..f4daa830a 100644
--- a/pkg/bindings/system/types_prune_options.go
+++ b/pkg/bindings/system/types_prune_options.go
@@ -2,12 +2,8 @@ package system
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *PruneOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *PruneOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithAll
diff --git a/pkg/bindings/system/types_version_options.go b/pkg/bindings/system/types_version_options.go
index 60ebfced9..5e01da583 100644
--- a/pkg/bindings/system/types_version_options.go
+++ b/pkg/bindings/system/types_version_options.go
@@ -2,12 +2,8 @@ package system
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *VersionOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *VersionOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/test/attach_test.go b/pkg/bindings/test/attach_test.go
index 771b2d528..16090e104 100644
--- a/pkg/bindings/test/attach_test.go
+++ b/pkg/bindings/test/attach_test.go
@@ -5,9 +5,9 @@ import (
"fmt"
"time"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/bindings/containers"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/bindings/containers"
+ "github.com/containers/podman/v3/pkg/specgen"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gexec"
diff --git a/pkg/bindings/test/auth_test.go b/pkg/bindings/test/auth_test.go
index e647b3c36..d48a3eff7 100644
--- a/pkg/bindings/test/auth_test.go
+++ b/pkg/bindings/test/auth_test.go
@@ -7,8 +7,8 @@ import (
"github.com/containers/common/pkg/auth"
"github.com/containers/image/v5/types"
- podmanRegistry "github.com/containers/podman/v2/hack/podman-registry-go"
- "github.com/containers/podman/v2/pkg/bindings/images"
+ podmanRegistry "github.com/containers/podman/v3/hack/podman-registry-go"
+ "github.com/containers/podman/v3/pkg/bindings/images"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gexec"
diff --git a/pkg/bindings/test/common_test.go b/pkg/bindings/test/common_test.go
index 8fbc631d8..588f38930 100644
--- a/pkg/bindings/test/common_test.go
+++ b/pkg/bindings/test/common_test.go
@@ -9,10 +9,10 @@ import (
"path/filepath"
"strings"
- "github.com/containers/podman/v2/libpod/define"
- . "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/bindings/containers"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/libpod/define"
+ . "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings/containers"
+ "github.com/containers/podman/v3/pkg/specgen"
"github.com/onsi/ginkgo"
"github.com/onsi/gomega/gexec"
"github.com/pkg/errors"
diff --git a/pkg/bindings/test/containers_test.go b/pkg/bindings/test/containers_test.go
index 14eb1ffc6..f2ab197ce 100644
--- a/pkg/bindings/test/containers_test.go
+++ b/pkg/bindings/test/containers_test.go
@@ -5,11 +5,11 @@ import (
"strings"
"time"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/bindings/containers"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings/containers"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/pkg/specgen"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gexec"
diff --git a/pkg/bindings/test/create_test.go b/pkg/bindings/test/create_test.go
index 2d2d657de..3c83aac02 100644
--- a/pkg/bindings/test/create_test.go
+++ b/pkg/bindings/test/create_test.go
@@ -3,8 +3,8 @@ package test_bindings
import (
"time"
- "github.com/containers/podman/v2/pkg/bindings/containers"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/pkg/bindings/containers"
+ "github.com/containers/podman/v3/pkg/specgen"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gexec"
diff --git a/pkg/bindings/test/exec_test.go b/pkg/bindings/test/exec_test.go
index 8e20a192f..7a21be77f 100644
--- a/pkg/bindings/test/exec_test.go
+++ b/pkg/bindings/test/exec_test.go
@@ -3,9 +3,9 @@ package test_bindings
import (
"time"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/bindings/containers"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings/containers"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gexec"
diff --git a/pkg/bindings/test/images_test.go b/pkg/bindings/test/images_test.go
index f94960047..db51d1e68 100644
--- a/pkg/bindings/test/images_test.go
+++ b/pkg/bindings/test/images_test.go
@@ -6,10 +6,10 @@ import (
"path/filepath"
"time"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/bindings/containers"
- "github.com/containers/podman/v2/pkg/bindings/images"
- dreports "github.com/containers/podman/v2/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings/containers"
+ "github.com/containers/podman/v3/pkg/bindings/images"
+ dreports "github.com/containers/podman/v3/pkg/domain/entities/reports"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gexec"
diff --git a/pkg/bindings/test/info_test.go b/pkg/bindings/test/info_test.go
index 4d696b59e..3ca4b99b3 100644
--- a/pkg/bindings/test/info_test.go
+++ b/pkg/bindings/test/info_test.go
@@ -4,10 +4,10 @@ import (
"runtime"
"time"
- "github.com/containers/podman/v2/pkg/bindings/containers"
- "github.com/containers/podman/v2/pkg/bindings/images"
- "github.com/containers/podman/v2/pkg/bindings/system"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/pkg/bindings/containers"
+ "github.com/containers/podman/v3/pkg/bindings/images"
+ "github.com/containers/podman/v3/pkg/bindings/system"
+ "github.com/containers/podman/v3/pkg/specgen"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gexec"
diff --git a/pkg/bindings/test/manifests_test.go b/pkg/bindings/test/manifests_test.go
index b93f64b4b..4d8ca74bf 100644
--- a/pkg/bindings/test/manifests_test.go
+++ b/pkg/bindings/test/manifests_test.go
@@ -4,9 +4,9 @@ import (
"net/http"
"time"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/bindings/images"
- "github.com/containers/podman/v2/pkg/bindings/manifests"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings/images"
+ "github.com/containers/podman/v3/pkg/bindings/manifests"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gexec"
diff --git a/pkg/bindings/test/pods_test.go b/pkg/bindings/test/pods_test.go
index 058479c26..2b4eb05d3 100644
--- a/pkg/bindings/test/pods_test.go
+++ b/pkg/bindings/test/pods_test.go
@@ -5,10 +5,10 @@ import (
"strings"
"time"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/bindings/pods"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings/pods"
+ "github.com/containers/podman/v3/pkg/specgen"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gexec"
diff --git a/pkg/bindings/test/secrets_test.go b/pkg/bindings/test/secrets_test.go
index 17c043e4b..5edb37f18 100644
--- a/pkg/bindings/test/secrets_test.go
+++ b/pkg/bindings/test/secrets_test.go
@@ -6,8 +6,8 @@ import (
"strings"
"time"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/bindings/secrets"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings/secrets"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gexec"
diff --git a/pkg/bindings/test/system_test.go b/pkg/bindings/test/system_test.go
index 44067b61d..a68a8099c 100644
--- a/pkg/bindings/test/system_test.go
+++ b/pkg/bindings/test/system_test.go
@@ -4,13 +4,13 @@ import (
"sync"
"time"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/bindings/containers"
- "github.com/containers/podman/v2/pkg/bindings/pods"
- "github.com/containers/podman/v2/pkg/bindings/system"
- "github.com/containers/podman/v2/pkg/bindings/volumes"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings/containers"
+ "github.com/containers/podman/v3/pkg/bindings/pods"
+ "github.com/containers/podman/v3/pkg/bindings/system"
+ "github.com/containers/podman/v3/pkg/bindings/volumes"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gexec"
diff --git a/pkg/bindings/test/volumes_test.go b/pkg/bindings/test/volumes_test.go
index 1f1da3cfa..91f6444cc 100644
--- a/pkg/bindings/test/volumes_test.go
+++ b/pkg/bindings/test/volumes_test.go
@@ -6,11 +6,11 @@ import (
"net/http"
"time"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/bindings/containers"
- "github.com/containers/podman/v2/pkg/bindings/volumes"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/bindings/containers"
+ "github.com/containers/podman/v3/pkg/bindings/volumes"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gexec"
diff --git a/pkg/bindings/util/util.go b/pkg/bindings/util/util.go
deleted file mode 100644
index 403846355..000000000
--- a/pkg/bindings/util/util.go
+++ /dev/null
@@ -1,30 +0,0 @@
-package util
-
-import (
- "reflect"
- "strconv"
-)
-
-func IsSimpleType(f reflect.Value) bool {
- switch f.Kind() {
- case reflect.Bool, reflect.Int, reflect.Int64, reflect.Uint, reflect.Uint64, reflect.String:
- return true
- }
- return false
-}
-
-func SimpleTypeToParam(f reflect.Value) string {
- switch f.Kind() {
- case reflect.Bool:
- return strconv.FormatBool(f.Bool())
- case reflect.Int, reflect.Int64:
- // f.Int() is always an int64
- return strconv.FormatInt(f.Int(), 10)
- case reflect.Uint, reflect.Uint64:
- // f.Uint() is always an uint64
- return strconv.FormatUint(f.Uint(), 10)
- case reflect.String:
- return f.String()
- }
- panic("the input parameter is not a simple type")
-}
diff --git a/pkg/bindings/volumes/types_create_options.go b/pkg/bindings/volumes/types_create_options.go
index 2254f8c13..0e8274d25 100644
--- a/pkg/bindings/volumes/types_create_options.go
+++ b/pkg/bindings/volumes/types_create_options.go
@@ -2,12 +2,8 @@ package volumes
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *CreateOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *CreateOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/volumes/types_exists_options.go b/pkg/bindings/volumes/types_exists_options.go
index 9840b1bcd..b58b93f38 100644
--- a/pkg/bindings/volumes/types_exists_options.go
+++ b/pkg/bindings/volumes/types_exists_options.go
@@ -2,12 +2,8 @@ package volumes
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ExistsOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ExistsOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/volumes/types_inspect_options.go b/pkg/bindings/volumes/types_inspect_options.go
index 51ac2d348..81bed1363 100644
--- a/pkg/bindings/volumes/types_inspect_options.go
+++ b/pkg/bindings/volumes/types_inspect_options.go
@@ -2,12 +2,8 @@ package volumes
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,60 +12,10 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *InspectOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *InspectOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
diff --git a/pkg/bindings/volumes/types_list_options.go b/pkg/bindings/volumes/types_list_options.go
index c96e647b0..9b2c6a3ad 100644
--- a/pkg/bindings/volumes/types_list_options.go
+++ b/pkg/bindings/volumes/types_list_options.go
@@ -2,12 +2,8 @@ package volumes
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *ListOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *ListOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithFilters
diff --git a/pkg/bindings/volumes/types_prune_options.go b/pkg/bindings/volumes/types_prune_options.go
index 06d16b659..5d52752f2 100644
--- a/pkg/bindings/volumes/types_prune_options.go
+++ b/pkg/bindings/volumes/types_prune_options.go
@@ -2,12 +2,8 @@ package volumes
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *PruneOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *PruneOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithFilters
diff --git a/pkg/bindings/volumes/types_remove_options.go b/pkg/bindings/volumes/types_remove_options.go
index 4b0037234..5e3fde58a 100644
--- a/pkg/bindings/volumes/types_remove_options.go
+++ b/pkg/bindings/volumes/types_remove_options.go
@@ -2,12 +2,8 @@ package volumes
import (
"net/url"
- "reflect"
- "strings"
- "github.com/containers/podman/v2/pkg/bindings/util"
- jsoniter "github.com/json-iterator/go"
- "github.com/pkg/errors"
+ "github.com/containers/podman/v3/pkg/bindings/internal/util"
)
/*
@@ -16,62 +12,12 @@ This file is generated automatically by go generate. Do not edit.
// Changed
func (o *RemoveOptions) Changed(fieldName string) bool {
- r := reflect.ValueOf(o)
- value := reflect.Indirect(r).FieldByName(fieldName)
- return !value.IsNil()
+ return util.Changed(o, fieldName)
}
// ToParams
func (o *RemoveOptions) ToParams() (url.Values, error) {
- params := url.Values{}
- if o == nil {
- return params, nil
- }
- json := jsoniter.ConfigCompatibleWithStandardLibrary
- s := reflect.ValueOf(o)
- if reflect.Ptr == s.Kind() {
- s = s.Elem()
- }
- sType := s.Type()
- for i := 0; i < s.NumField(); i++ {
- fieldName := sType.Field(i).Name
- if !o.Changed(fieldName) {
- continue
- }
- fieldName = strings.ToLower(fieldName)
- f := s.Field(i)
- if reflect.Ptr == f.Kind() {
- f = f.Elem()
- }
- switch {
- case util.IsSimpleType(f):
- params.Set(fieldName, util.SimpleTypeToParam(f))
- case f.Kind() == reflect.Slice:
- for i := 0; i < f.Len(); i++ {
- elem := f.Index(i)
- if util.IsSimpleType(elem) {
- params.Add(fieldName, util.SimpleTypeToParam(elem))
- } else {
- return nil, errors.New("slices must contain only simple types")
- }
- }
- case f.Kind() == reflect.Map:
- lowerCaseKeys := make(map[string][]string)
- iter := f.MapRange()
- for iter.Next() {
- lowerCaseKeys[iter.Key().Interface().(string)] = iter.Value().Interface().([]string)
-
- }
- s, err := json.MarshalToString(lowerCaseKeys)
- if err != nil {
- return nil, err
- }
-
- params.Set(fieldName, s)
- }
-
- }
- return params, nil
+ return util.ToParams(o)
}
// WithForce
diff --git a/pkg/bindings/volumes/volumes.go b/pkg/bindings/volumes/volumes.go
index 60fdd0a23..fb58a1d1f 100644
--- a/pkg/bindings/volumes/volumes.go
+++ b/pkg/bindings/volumes/volumes.go
@@ -5,9 +5,9 @@ import (
"net/http"
"strings"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
jsoniter "github.com/json-iterator/go"
)
diff --git a/pkg/cgroups/cgroups.go b/pkg/cgroups/cgroups.go
index 285fd093a..608e1647a 100644
--- a/pkg/cgroups/cgroups.go
+++ b/pkg/cgroups/cgroups.go
@@ -11,7 +11,7 @@ import (
"strconv"
"strings"
- "github.com/containers/podman/v2/pkg/rootless"
+ "github.com/containers/podman/v3/pkg/rootless"
systemdDbus "github.com/coreos/go-systemd/v22/dbus"
"github.com/godbus/dbus/v5"
spec "github.com/opencontainers/runtime-spec/specs-go"
@@ -331,18 +331,24 @@ func Load(path string) (*CgroupControl, error) {
control.additionalControllers = controllers
}
if !cgroup2 {
+ oneExists := false
+ // check that the cgroup exists at least under one controller
for name := range handlers {
p := control.getCgroupv1Path(name)
- if _, err := os.Stat(p); err != nil {
- if os.IsNotExist(err) {
- if rootless.IsRootless() {
- return nil, ErrCgroupV1Rootless
- }
- // compatible with the error code
- // used by containerd/cgroups
- return nil, ErrCgroupDeleted
- }
+ if _, err := os.Stat(p); err == nil {
+ oneExists = true
+ break
+ }
+ }
+
+ // if there is no controller at all, raise an error
+ if !oneExists {
+ if rootless.IsRootless() {
+ return nil, ErrCgroupV1Rootless
}
+ // compatible with the error code
+ // used by containerd/cgroups
+ return nil, ErrCgroupDeleted
}
}
return control, nil
diff --git a/pkg/cgroups/cgroups_test.go b/pkg/cgroups/cgroups_test.go
index 54315f7be..22d5efb76 100644
--- a/pkg/cgroups/cgroups_test.go
+++ b/pkg/cgroups/cgroups_test.go
@@ -3,7 +3,7 @@ package cgroups
import (
"testing"
- "github.com/containers/podman/v2/pkg/rootless"
+ "github.com/containers/podman/v3/pkg/rootless"
spec "github.com/opencontainers/runtime-spec/specs-go"
)
diff --git a/pkg/cgroups/cpu.go b/pkg/cgroups/cpu.go
index a73187dc8..05223c2e1 100644
--- a/pkg/cgroups/cpu.go
+++ b/pkg/cgroups/cpu.go
@@ -155,7 +155,6 @@ func GetSystemCPUUsage() (uint64, error) {
}
total += v * 1000
}
-
}
return total, nil
}
diff --git a/pkg/checkpoint/checkpoint_restore.go b/pkg/checkpoint/checkpoint_restore.go
index f6cd3b38f..6285680c0 100644
--- a/pkg/checkpoint/checkpoint_restore.go
+++ b/pkg/checkpoint/checkpoint_restore.go
@@ -6,11 +6,11 @@ import (
"os"
"path/filepath"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/errorhandling"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/errorhandling"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/containers/storage/pkg/archive"
jsoniter "github.com/json-iterator/go"
spec "github.com/opencontainers/runtime-spec/specs-go"
@@ -121,7 +121,7 @@ func CRImportCheckpoint(ctx context.Context, runtime *libpod.Runtime, restoreOpt
return nil, err
}
- _, err = runtime.ImageRuntime().New(ctx, config.RootfsImageName, rtc.Engine.SignaturePolicyPath, "", writer, nil, image.SigningOptions{}, nil, util.PullImageMissing)
+ _, err = runtime.ImageRuntime().New(ctx, config.RootfsImageName, rtc.Engine.SignaturePolicyPath, "", writer, nil, image.SigningOptions{}, nil, util.PullImageMissing, nil)
if err != nil {
return nil, err
}
diff --git a/pkg/copy/fileinfo.go b/pkg/copy/fileinfo.go
index ddb9b629c..b95bcd90c 100644
--- a/pkg/copy/fileinfo.go
+++ b/pkg/copy/fileinfo.go
@@ -16,9 +16,9 @@ import (
// base64 encoded JSON payload of stating a path in a container.
const XDockerContainerPathStatHeader = "X-Docker-Container-Path-Stat"
-// ENOENT mimics the stdlib's ENOENT and can be used to implement custom logic
+// ErrENOENT mimics the stdlib's ErrENOENT and can be used to implement custom logic
// while preserving the user-visible error message.
-var ENOENT = errors.New("No such file or directory")
+var ErrENOENT = errors.New("No such file or directory")
// FileInfo describes a file or directory and is returned by
// (*CopyItem).Stat().
@@ -70,7 +70,7 @@ func ResolveHostPath(path string) (*FileInfo, error) {
statInfo, err := os.Stat(resolvedHostPath)
if err != nil {
if os.IsNotExist(err) {
- return nil, ENOENT
+ return nil, ErrENOENT
}
return nil, err
}
diff --git a/pkg/domain/entities/container_ps.go b/pkg/domain/entities/container_ps.go
index 6709ca48a..572d6b9e9 100644
--- a/pkg/domain/entities/container_ps.go
+++ b/pkg/domain/entities/container_ps.go
@@ -5,7 +5,7 @@ import (
"strings"
"time"
- "github.com/containers/podman/v2/pkg/ps/define"
+ "github.com/containers/podman/v3/pkg/ps/define"
"github.com/cri-o/ocicni/pkg/ocicni"
"github.com/pkg/errors"
)
diff --git a/pkg/domain/entities/containers.go b/pkg/domain/entities/containers.go
index 2d50d6826..ac965834a 100644
--- a/pkg/domain/entities/containers.go
+++ b/pkg/domain/entities/containers.go
@@ -7,9 +7,9 @@ import (
"time"
"github.com/containers/image/v5/types"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/copy"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/copy"
+ "github.com/containers/podman/v3/pkg/specgen"
"github.com/cri-o/ocicni/pkg/ocicni"
)
@@ -88,8 +88,9 @@ type StopOptions struct {
}
type StopReport struct {
- Err error
- Id string //nolint
+ Err error
+ Id string //nolint
+ RawInput string
}
type TopOptions struct {
@@ -109,8 +110,9 @@ type KillOptions struct {
}
type KillReport struct {
- Err error
- Id string //nolint
+ Err error
+ Id string //nolint
+ RawInput string
}
type RestartOptions struct {
diff --git a/pkg/domain/entities/engine_container.go b/pkg/domain/entities/engine_container.go
index d43b422a3..bcab617af 100644
--- a/pkg/domain/entities/engine_container.go
+++ b/pkg/domain/entities/engine_container.go
@@ -5,9 +5,9 @@ import (
"io"
"github.com/containers/common/pkg/config"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/pkg/specgen"
"github.com/spf13/cobra"
)
@@ -91,7 +91,7 @@ type ContainerEngine interface {
Unshare(ctx context.Context, args []string) error
Version(ctx context.Context) (*SystemVersionReport, error)
VolumeCreate(ctx context.Context, opts VolumeCreateOptions) (*IDOrNameResponse, error)
- VolumeExists(ctx context.Context, namesOrId string) (*BoolReport, error)
+ VolumeExists(ctx context.Context, namesOrID string) (*BoolReport, error)
VolumeInspect(ctx context.Context, namesOrIds []string, opts InspectOptions) ([]*VolumeInspectReport, []error, error)
VolumeList(ctx context.Context, opts VolumeListOptions) ([]*VolumeListReport, error)
VolumePrune(ctx context.Context, options VolumePruneOptions) ([]*reports.PruneReport, error)
diff --git a/pkg/domain/entities/engine_image.go b/pkg/domain/entities/engine_image.go
index ee611502f..d841ecd6e 100644
--- a/pkg/domain/entities/engine_image.go
+++ b/pkg/domain/entities/engine_image.go
@@ -4,7 +4,7 @@ import (
"context"
"github.com/containers/common/pkg/config"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
)
type ImageEngine interface {
diff --git a/pkg/domain/entities/events.go b/pkg/domain/entities/events.go
index f4f3b705f..930ca53ae 100644
--- a/pkg/domain/entities/events.go
+++ b/pkg/domain/entities/events.go
@@ -4,7 +4,7 @@ import (
"strconv"
"time"
- libpodEvents "github.com/containers/podman/v2/libpod/events"
+ libpodEvents "github.com/containers/podman/v3/libpod/events"
dockerEvents "github.com/docker/docker/api/types/events"
)
diff --git a/pkg/domain/entities/generate.go b/pkg/domain/entities/generate.go
index 4a0d7537e..3ec713edf 100644
--- a/pkg/domain/entities/generate.go
+++ b/pkg/domain/entities/generate.go
@@ -18,6 +18,8 @@ type GenerateSystemdOptions struct {
PodPrefix string
// Separator - systemd unit name separator between name/id and prefix
Separator string
+ // NoHeader - skip header generation
+ NoHeader bool
}
// GenerateSystemdReport
diff --git a/pkg/domain/entities/images.go b/pkg/domain/entities/images.go
index ef40d5490..19109f873 100644
--- a/pkg/domain/entities/images.go
+++ b/pkg/domain/entities/images.go
@@ -6,8 +6,8 @@ import (
"github.com/containers/common/pkg/config"
"github.com/containers/image/v5/manifest"
"github.com/containers/image/v5/types"
- "github.com/containers/podman/v2/pkg/inspect"
- "github.com/containers/podman/v2/pkg/trust"
+ "github.com/containers/podman/v3/pkg/inspect"
+ "github.com/containers/podman/v3/pkg/trust"
docker "github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"github.com/opencontainers/go-digest"
diff --git a/pkg/domain/entities/network.go b/pkg/domain/entities/network.go
index 1859f920e..f66a7f575 100644
--- a/pkg/domain/entities/network.go
+++ b/pkg/domain/entities/network.go
@@ -31,6 +31,7 @@ type NetworkReloadOptions struct {
// NetworkReloadReport describes the results of reloading a container network.
type NetworkReloadReport struct {
+ // nolint:stylecheck,golint
Id string
Err error
}
diff --git a/pkg/domain/entities/pods.go b/pkg/domain/entities/pods.go
index 32900d536..88055454f 100644
--- a/pkg/domain/entities/pods.go
+++ b/pkg/domain/entities/pods.go
@@ -5,8 +5,8 @@ import (
"strings"
"time"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/specgen"
)
type PodKillOptions struct {
diff --git a/pkg/domain/entities/secrets.go b/pkg/domain/entities/secrets.go
index 3cad4c099..3481cbe05 100644
--- a/pkg/domain/entities/secrets.go
+++ b/pkg/domain/entities/secrets.go
@@ -3,7 +3,7 @@ package entities
import (
"time"
- "github.com/containers/podman/v2/pkg/errorhandling"
+ "github.com/containers/podman/v3/pkg/errorhandling"
)
type SecretCreateReport struct {
diff --git a/pkg/domain/entities/system.go b/pkg/domain/entities/system.go
index 99fa947f0..a1cfb4481 100644
--- a/pkg/domain/entities/system.go
+++ b/pkg/domain/entities/system.go
@@ -3,8 +3,8 @@ package entities
import (
"time"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
"github.com/docker/docker/api/types"
"github.com/spf13/cobra"
)
diff --git a/pkg/domain/entities/types.go b/pkg/domain/entities/types.go
index e5473dc62..9efc64c93 100644
--- a/pkg/domain/entities/types.go
+++ b/pkg/domain/entities/types.go
@@ -4,8 +4,8 @@ import (
"net"
"github.com/containers/buildah/imagebuildah"
- "github.com/containers/podman/v2/libpod/events"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/libpod/events"
+ "github.com/containers/podman/v3/pkg/specgen"
"github.com/containers/storage/pkg/archive"
)
diff --git a/pkg/domain/entities/volumes.go b/pkg/domain/entities/volumes.go
index c826ee389..beb2a75ac 100644
--- a/pkg/domain/entities/volumes.go
+++ b/pkg/domain/entities/volumes.go
@@ -3,7 +3,7 @@ package entities
import (
"net/url"
- "github.com/containers/podman/v2/libpod/define"
+ "github.com/containers/podman/v3/libpod/define"
docker_api_types "github.com/docker/docker/api/types"
docker_api_types_volume "github.com/docker/docker/api/types/volume"
)
diff --git a/pkg/domain/filters/containers.go b/pkg/domain/filters/containers.go
index 1de5aca91..6f4b4e8a0 100644
--- a/pkg/domain/filters/containers.go
+++ b/pkg/domain/filters/containers.go
@@ -5,11 +5,11 @@ import (
"strings"
"time"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/network"
- "github.com/containers/podman/v2/pkg/timetype"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/network"
+ "github.com/containers/podman/v3/pkg/timetype"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/pkg/errors"
)
diff --git a/pkg/domain/filters/pods.go b/pkg/domain/filters/pods.go
index ce7028d2a..53d10213a 100644
--- a/pkg/domain/filters/pods.go
+++ b/pkg/domain/filters/pods.go
@@ -4,10 +4,10 @@ import (
"strconv"
"strings"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/network"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/network"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/pkg/errors"
)
diff --git a/pkg/domain/filters/volumes.go b/pkg/domain/filters/volumes.go
index 7890459f5..bc1756cf5 100644
--- a/pkg/domain/filters/volumes.go
+++ b/pkg/domain/filters/volumes.go
@@ -4,7 +4,7 @@ import (
"net/url"
"strings"
- "github.com/containers/podman/v2/libpod"
+ "github.com/containers/podman/v3/libpod"
"github.com/pkg/errors"
)
diff --git a/pkg/domain/infra/abi/archive.go b/pkg/domain/infra/abi/archive.go
index c64dfb02a..528771ee7 100644
--- a/pkg/domain/infra/abi/archive.go
+++ b/pkg/domain/infra/abi/archive.go
@@ -3,13 +3,14 @@ package abi
import (
"context"
"io"
+ "path/filepath"
"strings"
buildahCopiah "github.com/containers/buildah/copier"
"github.com/containers/buildah/pkg/chrootuser"
"github.com/containers/buildah/util"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/containers/storage"
"github.com/containers/storage/pkg/archive"
"github.com/containers/storage/pkg/idtools"
@@ -93,7 +94,7 @@ func (ic *ContainerEngine) ContainerCopyToArchive(ctx context.Context, nameOrID
containerPath = "/."
}
- _, resolvedRoot, resolvedContainerPath, err := ic.containerStat(container, containerMountPoint, containerPath)
+ statInfo, resolvedRoot, resolvedContainerPath, err := ic.containerStat(container, containerMountPoint, containerPath)
if err != nil {
unmount()
return nil, err
@@ -110,8 +111,8 @@ func (ic *ContainerEngine) ContainerCopyToArchive(ctx context.Context, nameOrID
return func() error {
defer container.Unmount(false)
getOptions := buildahCopiah.GetOptions{
- // Unless the specified path ends with ".", we want to copy the base directory.
- KeepDirectoryNames: !strings.HasSuffix(resolvedContainerPath, "."),
+ // Unless the specified points to ".", we want to copy the base directory.
+ KeepDirectoryNames: statInfo.IsDir && filepath.Base(containerPath) != ".",
UIDMap: idMappings.UIDMap,
GIDMap: idMappings.GIDMap,
ChownDirs: idPair,
diff --git a/pkg/domain/infra/abi/auto-update.go b/pkg/domain/infra/abi/auto-update.go
index e8e2fa185..c9d7f2130 100644
--- a/pkg/domain/infra/abi/auto-update.go
+++ b/pkg/domain/infra/abi/auto-update.go
@@ -3,8 +3,8 @@ package abi
import (
"context"
- "github.com/containers/podman/v2/pkg/autoupdate"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/autoupdate"
+ "github.com/containers/podman/v3/pkg/domain/entities"
)
func (ic *ContainerEngine) AutoUpdate(ctx context.Context, options entities.AutoUpdateOptions) (*entities.AutoUpdateReport, []error) {
diff --git a/pkg/domain/infra/abi/containers.go b/pkg/domain/infra/abi/containers.go
index 7a672d863..4790bd58c 100644
--- a/pkg/domain/infra/abi/containers.go
+++ b/pkg/domain/infra/abi/containers.go
@@ -12,24 +12,24 @@ import (
"github.com/containers/buildah"
"github.com/containers/common/pkg/config"
"github.com/containers/image/v5/manifest"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/events"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/libpod/logs"
- "github.com/containers/podman/v2/pkg/cgroups"
- "github.com/containers/podman/v2/pkg/checkpoint"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
- dfilters "github.com/containers/podman/v2/pkg/domain/filters"
- "github.com/containers/podman/v2/pkg/domain/infra/abi/terminal"
- parallelctr "github.com/containers/podman/v2/pkg/parallel/ctr"
- "github.com/containers/podman/v2/pkg/ps"
- "github.com/containers/podman/v2/pkg/rootless"
- "github.com/containers/podman/v2/pkg/signal"
- "github.com/containers/podman/v2/pkg/specgen"
- "github.com/containers/podman/v2/pkg/specgen/generate"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/events"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/libpod/logs"
+ "github.com/containers/podman/v3/pkg/cgroups"
+ "github.com/containers/podman/v3/pkg/checkpoint"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
+ dfilters "github.com/containers/podman/v3/pkg/domain/filters"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi/terminal"
+ parallelctr "github.com/containers/podman/v3/pkg/parallel/ctr"
+ "github.com/containers/podman/v3/pkg/ps"
+ "github.com/containers/podman/v3/pkg/rootless"
+ "github.com/containers/podman/v3/pkg/signal"
+ "github.com/containers/podman/v3/pkg/specgen"
+ "github.com/containers/podman/v3/pkg/specgen/generate"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/containers/storage"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
@@ -138,10 +138,16 @@ func (ic *ContainerEngine) ContainerUnpause(ctx context.Context, namesOrIds []st
}
func (ic *ContainerEngine) ContainerStop(ctx context.Context, namesOrIds []string, options entities.StopOptions) ([]*entities.StopReport, error) {
names := namesOrIds
- ctrs, err := getContainersByContext(options.All, options.Latest, names, ic.Libpod)
+ ctrs, rawInputs, err := getContainersAndInputByContext(options.All, options.Latest, names, ic.Libpod)
if err != nil && !(options.Ignore && errors.Cause(err) == define.ErrNoSuchCtr) {
return nil, err
}
+ ctrMap := map[string]string{}
+ if len(rawInputs) == len(ctrs) {
+ for i := range ctrs {
+ ctrMap[ctrs[i].ID()] = rawInputs[i]
+ }
+ }
errMap, err := parallelctr.ContainerOp(ctx, ctrs, func(c *libpod.Container) error {
var err error
if options.Timeout != nil {
@@ -174,6 +180,11 @@ func (ic *ContainerEngine) ContainerStop(ctx context.Context, namesOrIds []strin
for ctr, err := range errMap {
report := new(entities.StopReport)
report.Id = ctr.ID()
+ if options.All {
+ report.RawInput = ctr.ID()
+ } else {
+ report.RawInput = ctrMap[ctr.ID()]
+ }
report.Err = err
reports = append(reports, report)
}
@@ -197,15 +208,22 @@ func (ic *ContainerEngine) ContainerKill(ctx context.Context, namesOrIds []strin
if err != nil {
return nil, err
}
- ctrs, err := getContainersByContext(options.All, options.Latest, namesOrIds, ic.Libpod)
+ ctrs, rawInputs, err := getContainersAndInputByContext(options.All, options.Latest, namesOrIds, ic.Libpod)
if err != nil {
return nil, err
}
+ ctrMap := map[string]string{}
+ if len(rawInputs) == len(ctrs) {
+ for i := range ctrs {
+ ctrMap[ctrs[i].ID()] = rawInputs[i]
+ }
+ }
reports := make([]*entities.KillReport, 0, len(ctrs))
for _, con := range ctrs {
reports = append(reports, &entities.KillReport{
- Id: con.ID(),
- Err: con.Kill(uint(sig)),
+ Id: con.ID(),
+ Err: con.Kill(uint(sig)),
+ RawInput: ctrMap[con.ID()],
})
}
return reports, nil
@@ -301,12 +319,18 @@ func (ic *ContainerEngine) ContainerRm(ctx context.Context, namesOrIds []string,
errMap, err := parallelctr.ContainerOp(ctx, ctrs, func(c *libpod.Container) error {
err := ic.Libpod.RemoveContainer(ctx, c, options.Force, options.Volumes)
- if err != nil {
- if options.Ignore && errors.Cause(err) == define.ErrNoSuchCtr {
+ if err == nil {
+ return nil
+ }
+ logrus.Debugf("Failed to remove container %s: %s", c.ID(), err.Error())
+ switch errors.Cause(err) {
+ case define.ErrNoSuchCtr:
+ if options.Ignore {
logrus.Debugf("Ignoring error (--allow-missing): %v", err)
return nil
}
- logrus.Debugf("Failed to remove container %s: %s", c.ID(), err.Error())
+ case define.ErrCtrRemoved:
+ return nil
}
return err
})
diff --git a/pkg/domain/infra/abi/containers_runlabel.go b/pkg/domain/infra/abi/containers_runlabel.go
index 41fdf8f34..8de383926 100644
--- a/pkg/domain/infra/abi/containers_runlabel.go
+++ b/pkg/domain/infra/abi/containers_runlabel.go
@@ -7,11 +7,11 @@ import (
"path/filepath"
"strings"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/domain/entities"
- envLib "github.com/containers/podman/v2/pkg/env"
- "github.com/containers/podman/v2/utils"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ envLib "github.com/containers/podman/v3/pkg/env"
+ "github.com/containers/podman/v3/utils"
"github.com/google/shlex"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
diff --git a/pkg/domain/infra/abi/containers_stat.go b/pkg/domain/infra/abi/containers_stat.go
index f3d0799a0..1baeb9178 100644
--- a/pkg/domain/infra/abi/containers_stat.go
+++ b/pkg/domain/infra/abi/containers_stat.go
@@ -7,9 +7,9 @@ import (
"strings"
buildahCopiah "github.com/containers/buildah/copier"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/copy"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/copy"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
@@ -35,7 +35,7 @@ func (ic *ContainerEngine) containerStat(container *libpod.Container, containerM
// ENOENT let's the API handlers return the correct status code
// which is crucial for the remote client.
if os.IsNotExist(err) || strings.Contains(statInfoErr.Error(), "o such file or directory") {
- statInfoErr = copy.ENOENT
+ statInfoErr = copy.ErrENOENT
}
// If statInfo is nil, there's nothing we can do anymore. A
// non-nil statInfo may indicate a symlink where we must have
@@ -129,7 +129,7 @@ func secureStat(root string, path string) (*buildahCopiah.StatForItem, error) {
stat, exists := globStats[0].Results[glob] // only one glob passed, so that's okay
if !exists {
- return nil, copy.ENOENT
+ return nil, copy.ErrENOENT
}
var statErr error
diff --git a/pkg/domain/infra/abi/events.go b/pkg/domain/infra/abi/events.go
index fa57543bf..d7e2566e3 100644
--- a/pkg/domain/infra/abi/events.go
+++ b/pkg/domain/infra/abi/events.go
@@ -3,8 +3,8 @@ package abi
import (
"context"
- "github.com/containers/podman/v2/libpod/events"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/libpod/events"
+ "github.com/containers/podman/v3/pkg/domain/entities"
)
func (ic *ContainerEngine) Events(ctx context.Context, opts entities.EventsOptions) error {
diff --git a/pkg/domain/infra/abi/generate.go b/pkg/domain/infra/abi/generate.go
index 79f55e2bd..161becbfa 100644
--- a/pkg/domain/infra/abi/generate.go
+++ b/pkg/domain/infra/abi/generate.go
@@ -5,10 +5,10 @@ import (
"context"
"fmt"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/systemd/generate"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/systemd/generate"
"github.com/ghodss/yaml"
"github.com/pkg/errors"
k8sAPI "k8s.io/api/core/v1"
diff --git a/pkg/domain/infra/abi/healthcheck.go b/pkg/domain/infra/abi/healthcheck.go
index 49b709f39..92ccd19af 100644
--- a/pkg/domain/infra/abi/healthcheck.go
+++ b/pkg/domain/infra/abi/healthcheck.go
@@ -3,8 +3,8 @@ package abi
import (
"context"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/domain/entities"
)
func (ic *ContainerEngine) HealthCheckRun(ctx context.Context, nameOrID string, options entities.HealthCheckOptions) (*define.HealthCheckResults, error) {
diff --git a/pkg/domain/infra/abi/images.go b/pkg/domain/infra/abi/images.go
index f2d0f2c39..562653403 100644
--- a/pkg/domain/infra/abi/images.go
+++ b/pkg/domain/infra/abi/images.go
@@ -20,13 +20,13 @@ import (
"github.com/containers/image/v5/transports"
"github.com/containers/image/v5/transports/alltransports"
"github.com/containers/image/v5/types"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
- domainUtils "github.com/containers/podman/v2/pkg/domain/utils"
- "github.com/containers/podman/v2/pkg/rootless"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
+ domainUtils "github.com/containers/podman/v3/pkg/domain/utils"
+ "github.com/containers/podman/v3/pkg/rootless"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/containers/storage"
dockerRef "github.com/docker/distribution/reference"
"github.com/opencontainers/go-digest"
@@ -40,10 +40,9 @@ func (ir *ImageEngine) Exists(_ context.Context, nameOrID string) (*entities.Boo
if err != nil {
if errors.Cause(err) == define.ErrMultipleImages {
return &entities.BoolReport{Value: true}, nil
- } else {
- if errors.Cause(err) != define.ErrNoSuchImage {
- return nil, err
- }
+ }
+ if errors.Cause(err) != define.ErrNoSuchImage {
+ return nil, err
}
}
return &entities.BoolReport{Value: err == nil}, nil
@@ -248,7 +247,7 @@ func pull(ctx context.Context, runtime *image.Runtime, rawImage string, options
}
if !options.AllTags {
- newImage, err := runtime.New(ctx, rawImage, options.SignaturePolicy, options.Authfile, writer, &dockerRegistryOptions, image.SigningOptions{}, label, options.PullPolicy)
+ newImage, err := runtime.New(ctx, rawImage, options.SignaturePolicy, options.Authfile, writer, &dockerRegistryOptions, image.SigningOptions{}, label, options.PullPolicy, nil)
if err != nil {
return nil, err
}
@@ -270,7 +269,6 @@ func pull(ctx context.Context, runtime *image.Runtime, rawImage string, options
}
if _, isTagged := namedRef.(reference.Tagged); isTagged {
return nil, errors.New("--all-tags requires a reference without a tag")
-
}
systemContext := image.GetSystemContext("", options.Authfile, false)
@@ -282,7 +280,7 @@ func pull(ctx context.Context, runtime *image.Runtime, rawImage string, options
foundIDs := []string{}
for _, tag := range tags {
name := rawImage + ":" + tag
- newImage, err := runtime.New(ctx, name, options.SignaturePolicy, options.Authfile, writer, &dockerRegistryOptions, image.SigningOptions{}, nil, util.PullImageAlways)
+ newImage, err := runtime.New(ctx, name, options.SignaturePolicy, options.Authfile, writer, &dockerRegistryOptions, image.SigningOptions{}, nil, util.PullImageAlways, nil)
if err != nil {
logrus.Errorf("error pulling image %q", name)
continue
@@ -503,7 +501,6 @@ func (ir *ImageEngine) Config(_ context.Context) (*config.Config, error) {
}
func (ir *ImageEngine) Build(ctx context.Context, containerFiles []string, opts entities.BuildOptions) (*entities.BuildReport, error) {
-
id, _, err := ir.Libpod.Build(ctx, opts.BuildOptions, containerFiles...)
if err != nil {
return nil, err
diff --git a/pkg/domain/infra/abi/images_list.go b/pkg/domain/infra/abi/images_list.go
index 2d3b9f36a..3b8aabeb7 100644
--- a/pkg/domain/infra/abi/images_list.go
+++ b/pkg/domain/infra/abi/images_list.go
@@ -3,8 +3,8 @@ package abi
import (
"context"
- libpodImage "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ libpodImage "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/pkg/errors"
)
diff --git a/pkg/domain/infra/abi/manifest.go b/pkg/domain/infra/abi/manifest.go
index 626f1f7bf..8e3c50fac 100644
--- a/pkg/domain/infra/abi/manifest.go
+++ b/pkg/domain/infra/abi/manifest.go
@@ -1,5 +1,3 @@
-// +build !remote
-
package abi
import (
@@ -19,8 +17,8 @@ import (
"github.com/containers/image/v5/transports"
"github.com/containers/image/v5/transports/alltransports"
"github.com/containers/image/v5/types"
- libpodImage "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ libpodImage "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/opencontainers/go-digest"
imgspecv1 "github.com/opencontainers/image-spec/specs-go/v1"
"github.com/pkg/errors"
diff --git a/pkg/domain/infra/abi/network.go b/pkg/domain/infra/abi/network.go
index 13fabe89d..50a74032c 100644
--- a/pkg/domain/infra/abi/network.go
+++ b/pkg/domain/infra/abi/network.go
@@ -3,10 +3,10 @@ package abi
import (
"context"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/network"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/network"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/pkg/errors"
)
diff --git a/pkg/domain/infra/abi/parse/parse.go b/pkg/domain/infra/abi/parse/parse.go
index 6a6380e33..1c590d2d6 100644
--- a/pkg/domain/infra/abi/parse/parse.go
+++ b/pkg/domain/infra/abi/parse/parse.go
@@ -4,8 +4,8 @@ import (
"strconv"
"strings"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
diff --git a/pkg/domain/infra/abi/play.go b/pkg/domain/infra/abi/play.go
index 70c7104f1..b7ca69281 100644
--- a/pkg/domain/infra/abi/play.go
+++ b/pkg/domain/infra/abi/play.go
@@ -9,13 +9,13 @@ import (
"strings"
"github.com/containers/image/v5/types"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/specgen/generate"
- "github.com/containers/podman/v2/pkg/specgen/generate/kube"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/specgen/generate"
+ "github.com/containers/podman/v3/pkg/specgen/generate/kube"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/docker/distribution/reference"
"github.com/ghodss/yaml"
"github.com/pkg/errors"
@@ -60,7 +60,6 @@ func (ic *ContainerEngine) PlayKube(ctx context.Context, path string, options en
default:
return nil, errors.Errorf("invalid YAML kind: %q. [Pod|Deployment] are the only supported Kubernetes Kinds", kubeObject.Kind)
}
-
}
func (ic *ContainerEngine) playKubeDeployment(ctx context.Context, deploymentYAML *v1apps.Deployment, options entities.PlayKubeOptions) (*entities.PlayKubeReport, error) {
@@ -222,7 +221,7 @@ func (ic *ContainerEngine) playKubePod(ctx context.Context, podName string, podY
}
// This ensures the image is the image store
- newImage, err := ic.Libpod.ImageRuntime().New(ctx, container.Image, options.SignaturePolicy, options.Authfile, writer, &dockerRegistryOptions, image.SigningOptions{}, nil, pullPolicy)
+ newImage, err := ic.Libpod.ImageRuntime().New(ctx, container.Image, options.SignaturePolicy, options.Authfile, writer, &dockerRegistryOptions, image.SigningOptions{}, nil, pullPolicy, nil)
if err != nil {
return nil, err
}
diff --git a/pkg/domain/infra/abi/pods.go b/pkg/domain/infra/abi/pods.go
index 2a8445c9f..9f033a4c0 100644
--- a/pkg/domain/infra/abi/pods.go
+++ b/pkg/domain/infra/abi/pods.go
@@ -3,13 +3,13 @@ package abi
import (
"context"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/domain/entities"
- dfilters "github.com/containers/podman/v2/pkg/domain/filters"
- "github.com/containers/podman/v2/pkg/signal"
- "github.com/containers/podman/v2/pkg/specgen"
- "github.com/containers/podman/v2/pkg/specgen/generate"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ dfilters "github.com/containers/podman/v3/pkg/domain/filters"
+ "github.com/containers/podman/v3/pkg/signal"
+ "github.com/containers/podman/v3/pkg/specgen"
+ "github.com/containers/podman/v3/pkg/specgen/generate"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
diff --git a/pkg/domain/infra/abi/pods_stats.go b/pkg/domain/infra/abi/pods_stats.go
index 29bcbe087..abb15bd1f 100644
--- a/pkg/domain/infra/abi/pods_stats.go
+++ b/pkg/domain/infra/abi/pods_stats.go
@@ -4,11 +4,11 @@ import (
"context"
"fmt"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/cgroups"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/rootless"
- "github.com/containers/podman/v2/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/cgroups"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/rootless"
+ "github.com/containers/podman/v3/utils"
"github.com/docker/go-units"
"github.com/pkg/errors"
)
diff --git a/pkg/domain/infra/abi/runtime.go b/pkg/domain/infra/abi/runtime.go
index 3eab16479..3e7ea0d09 100644
--- a/pkg/domain/infra/abi/runtime.go
+++ b/pkg/domain/infra/abi/runtime.go
@@ -3,7 +3,7 @@ package abi
import (
"sync"
- "github.com/containers/podman/v2/libpod"
+ "github.com/containers/podman/v3/libpod"
)
// Image-related runtime linked against libpod library
diff --git a/pkg/domain/infra/abi/secrets.go b/pkg/domain/infra/abi/secrets.go
index b1fe60e01..764f4a9dc 100644
--- a/pkg/domain/infra/abi/secrets.go
+++ b/pkg/domain/infra/abi/secrets.go
@@ -7,7 +7,7 @@ import (
"path/filepath"
"github.com/containers/common/pkg/secrets"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/pkg/errors"
)
@@ -65,7 +65,6 @@ func (ic *ContainerEngine) SecretInspect(ctx context.Context, nameOrIDs []string
},
}
reports = append(reports, report)
-
}
return reports, errs, nil
diff --git a/pkg/domain/infra/abi/system.go b/pkg/domain/infra/abi/system.go
index f29b98696..9f7c8919b 100644
--- a/pkg/domain/infra/abi/system.go
+++ b/pkg/domain/infra/abi/system.go
@@ -12,14 +12,14 @@ import (
"strings"
"github.com/containers/common/pkg/config"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/cgroups"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
- "github.com/containers/podman/v2/pkg/rootless"
- "github.com/containers/podman/v2/pkg/util"
- "github.com/containers/podman/v2/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/cgroups"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/pkg/rootless"
+ "github.com/containers/podman/v3/pkg/util"
+ "github.com/containers/podman/v3/utils"
"github.com/containers/storage"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
@@ -82,7 +82,7 @@ func (ic *ContainerEngine) SetupRootless(_ context.Context, cmd *cobra.Command)
unitName := fmt.Sprintf("podman-%d.scope", os.Getpid())
if runsUnderSystemd || conf.Engine.CgroupManager == config.SystemdCgroupsManager {
if err := utils.RunUnderSystemdScope(os.Getpid(), "user.slice", unitName); err != nil {
- logrus.Warnf("Failed to add podman to systemd sandbox cgroup: %v", err)
+ logrus.Debugf("Failed to add podman to systemd sandbox cgroup: %v", err)
}
}
}
diff --git a/pkg/domain/infra/abi/terminal/sigproxy_linux.go b/pkg/domain/infra/abi/terminal/sigproxy_linux.go
index 2aca8f22d..26e199aee 100644
--- a/pkg/domain/infra/abi/terminal/sigproxy_linux.go
+++ b/pkg/domain/infra/abi/terminal/sigproxy_linux.go
@@ -4,10 +4,10 @@ import (
"os"
"syscall"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/shutdown"
- "github.com/containers/podman/v2/pkg/signal"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/shutdown"
+ "github.com/containers/podman/v3/pkg/signal"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
diff --git a/pkg/domain/infra/abi/terminal/terminal.go b/pkg/domain/infra/abi/terminal/terminal.go
index 48f5749d5..067c0c08e 100644
--- a/pkg/domain/infra/abi/terminal/terminal.go
+++ b/pkg/domain/infra/abi/terminal/terminal.go
@@ -5,11 +5,11 @@ import (
"os"
"os/signal"
- lsignal "github.com/containers/podman/v2/pkg/signal"
+ "github.com/containers/podman/v3/libpod/define"
+ lsignal "github.com/containers/podman/v3/pkg/signal"
"github.com/moby/term"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
- "k8s.io/client-go/tools/remotecommand"
)
// RawTtyFormatter ...
@@ -18,20 +18,20 @@ type RawTtyFormatter struct {
// getResize returns a TerminalSize command matching stdin's current
// size on success, and nil on errors.
-func getResize() *remotecommand.TerminalSize {
+func getResize() *define.TerminalSize {
winsize, err := term.GetWinsize(os.Stdin.Fd())
if err != nil {
logrus.Warnf("Could not get terminal size %v", err)
return nil
}
- return &remotecommand.TerminalSize{
+ return &define.TerminalSize{
Width: winsize.Width,
Height: winsize.Height,
}
}
// Helper for prepareAttach - set up a goroutine to generate terminal resize events
-func resizeTty(ctx context.Context, resize chan remotecommand.TerminalSize) {
+func resizeTty(ctx context.Context, resize chan define.TerminalSize) {
sigchan := make(chan os.Signal, 1)
signal.Notify(sigchan, lsignal.SIGWINCH)
go func() {
@@ -78,7 +78,7 @@ func (f *RawTtyFormatter) Format(entry *logrus.Entry) ([]byte, error) {
return bytes, err
}
-func handleTerminalAttach(ctx context.Context, resize chan remotecommand.TerminalSize) (context.CancelFunc, *term.State, error) {
+func handleTerminalAttach(ctx context.Context, resize chan define.TerminalSize) (context.CancelFunc, *term.State, error) {
logrus.Debugf("Handling terminal attach")
subCtx, cancel := context.WithCancel(ctx)
diff --git a/pkg/domain/infra/abi/terminal/terminal_linux.go b/pkg/domain/infra/abi/terminal/terminal_linux.go
index 8886625a6..7a0c2907c 100644
--- a/pkg/domain/infra/abi/terminal/terminal_linux.go
+++ b/pkg/domain/infra/abi/terminal/terminal_linux.go
@@ -6,17 +6,16 @@ import (
"fmt"
"os"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"golang.org/x/crypto/ssh/terminal"
- "k8s.io/client-go/tools/remotecommand"
)
// ExecAttachCtr execs and attaches to a container
func ExecAttachCtr(ctx context.Context, ctr *libpod.Container, execConfig *libpod.ExecConfig, streams *define.AttachStreams) (int, error) {
- resize := make(chan remotecommand.TerminalSize)
+ resize := make(chan define.TerminalSize)
haveTerminal := terminal.IsTerminal(int(os.Stdin.Fd()))
// Check if we are attached to a terminal. If we are, generate resize
@@ -41,7 +40,7 @@ func ExecAttachCtr(ctx context.Context, ctr *libpod.Container, execConfig *libpo
// if you change the signature of this function from os.File to io.Writer, it will trigger a downstream
// error. we may need to just lint disable this one.
func StartAttachCtr(ctx context.Context, ctr *libpod.Container, stdout, stderr, stdin *os.File, detachKeys string, sigProxy bool, startContainer bool, recursive bool) error { //nolint-interfacer
- resize := make(chan remotecommand.TerminalSize)
+ resize := make(chan define.TerminalSize)
haveTerminal := terminal.IsTerminal(int(os.Stdin.Fd()))
diff --git a/pkg/domain/infra/abi/trust.go b/pkg/domain/infra/abi/trust.go
index 4a12297f9..d3aff62ba 100644
--- a/pkg/domain/infra/abi/trust.go
+++ b/pkg/domain/infra/abi/trust.go
@@ -7,8 +7,8 @@ import (
"os"
"strings"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/trust"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/trust"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
diff --git a/pkg/domain/infra/abi/volumes.go b/pkg/domain/infra/abi/volumes.go
index f15aa2d14..e077b10ea 100644
--- a/pkg/domain/infra/abi/volumes.go
+++ b/pkg/domain/infra/abi/volumes.go
@@ -3,12 +3,12 @@ package abi
import (
"context"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
- "github.com/containers/podman/v2/pkg/domain/filters"
- "github.com/containers/podman/v2/pkg/domain/infra/abi/parse"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/pkg/domain/filters"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi/parse"
"github.com/pkg/errors"
)
diff --git a/pkg/domain/infra/runtime_abi.go b/pkg/domain/infra/runtime_abi.go
index a25d165c9..ca201b5ae 100644
--- a/pkg/domain/infra/runtime_abi.go
+++ b/pkg/domain/infra/runtime_abi.go
@@ -6,11 +6,11 @@ import (
"context"
"fmt"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
- "github.com/containers/podman/v2/pkg/domain/infra/tunnel"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/pkg/domain/infra/tunnel"
)
// NewContainerEngine factory provides a libpod runtime for container-related operations
diff --git a/pkg/domain/infra/runtime_abi_unsupported.go b/pkg/domain/infra/runtime_abi_unsupported.go
index bac552b1e..e7107ff38 100644
--- a/pkg/domain/infra/runtime_abi_unsupported.go
+++ b/pkg/domain/infra/runtime_abi_unsupported.go
@@ -5,7 +5,7 @@ package infra
import (
"errors"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities"
)
// NewSystemEngine factory provides a libpod runtime for specialized system operations
diff --git a/pkg/domain/infra/runtime_libpod.go b/pkg/domain/infra/runtime_libpod.go
index b786a5fbf..8b6581c7b 100644
--- a/pkg/domain/infra/runtime_libpod.go
+++ b/pkg/domain/infra/runtime_libpod.go
@@ -9,12 +9,12 @@ import (
"os/signal"
"sync"
- "github.com/containers/podman/v2/cmd/podman/utils"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/cgroups"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/namespaces"
- "github.com/containers/podman/v2/pkg/rootless"
+ "github.com/containers/podman/v3/cmd/podman/utils"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/cgroups"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/namespaces"
+ "github.com/containers/podman/v3/pkg/rootless"
"github.com/containers/storage"
"github.com/containers/storage/pkg/idtools"
"github.com/pkg/errors"
diff --git a/pkg/domain/infra/runtime_proxy.go b/pkg/domain/infra/runtime_proxy.go
index 897dbbfc0..8fe264989 100644
--- a/pkg/domain/infra/runtime_proxy.go
+++ b/pkg/domain/infra/runtime_proxy.go
@@ -5,8 +5,8 @@ package infra
import (
"context"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/abi"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/abi"
flag "github.com/spf13/pflag"
)
diff --git a/pkg/domain/infra/runtime_tunnel.go b/pkg/domain/infra/runtime_tunnel.go
index b8aefaa35..185d223b7 100644
--- a/pkg/domain/infra/runtime_tunnel.go
+++ b/pkg/domain/infra/runtime_tunnel.go
@@ -7,9 +7,9 @@ import (
"fmt"
"sync"
- "github.com/containers/podman/v2/pkg/bindings"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/infra/tunnel"
+ "github.com/containers/podman/v3/pkg/bindings"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/infra/tunnel"
)
var (
diff --git a/pkg/domain/infra/tunnel/auto-update.go b/pkg/domain/infra/tunnel/auto-update.go
index 0ebd07588..41165cc74 100644
--- a/pkg/domain/infra/tunnel/auto-update.go
+++ b/pkg/domain/infra/tunnel/auto-update.go
@@ -3,7 +3,7 @@ package tunnel
import (
"context"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/pkg/errors"
)
diff --git a/pkg/domain/infra/tunnel/containers.go b/pkg/domain/infra/tunnel/containers.go
index e9c513f8e..a0f65f11f 100644
--- a/pkg/domain/infra/tunnel/containers.go
+++ b/pkg/domain/infra/tunnel/containers.go
@@ -12,15 +12,15 @@ import (
"github.com/containers/common/pkg/config"
"github.com/containers/image/v5/docker/reference"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/events"
- "github.com/containers/podman/v2/pkg/api/handlers"
- "github.com/containers/podman/v2/pkg/bindings/containers"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
- "github.com/containers/podman/v2/pkg/errorhandling"
- "github.com/containers/podman/v2/pkg/specgen"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/events"
+ "github.com/containers/podman/v3/pkg/api/handlers"
+ "github.com/containers/podman/v3/pkg/bindings/containers"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/pkg/errorhandling"
+ "github.com/containers/podman/v3/pkg/specgen"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
@@ -82,16 +82,23 @@ func (ic *ContainerEngine) ContainerUnpause(ctx context.Context, namesOrIds []st
func (ic *ContainerEngine) ContainerStop(ctx context.Context, namesOrIds []string, opts entities.StopOptions) ([]*entities.StopReport, error) {
reports := []*entities.StopReport{}
- ctrs, err := getContainersByContext(ic.ClientCtx, opts.All, opts.Ignore, namesOrIds)
+ ctrs, rawInputs, err := getContainersAndInputByContext(ic.ClientCtx, opts.All, opts.Ignore, namesOrIds)
if err != nil {
return nil, err
}
+ ctrMap := map[string]string{}
+ for i := range ctrs {
+ ctrMap[ctrs[i].ID] = rawInputs[i]
+ }
options := new(containers.StopOptions).WithIgnore(opts.Ignore)
if to := opts.Timeout; to != nil {
options.WithTimeout(*to)
}
for _, c := range ctrs {
- report := entities.StopReport{Id: c.ID}
+ report := entities.StopReport{
+ Id: c.ID,
+ RawInput: ctrMap[c.ID],
+ }
if err = containers.Stop(ic.ClientCtx, c.ID, options); err != nil {
// These first two are considered non-fatal under the right conditions
if errors.Cause(err).Error() == define.ErrCtrStopped.Error() {
@@ -117,16 +124,21 @@ func (ic *ContainerEngine) ContainerStop(ctx context.Context, namesOrIds []strin
}
func (ic *ContainerEngine) ContainerKill(ctx context.Context, namesOrIds []string, opts entities.KillOptions) ([]*entities.KillReport, error) {
- ctrs, err := getContainersByContext(ic.ClientCtx, opts.All, false, namesOrIds)
+ ctrs, rawInputs, err := getContainersAndInputByContext(ic.ClientCtx, opts.All, false, namesOrIds)
if err != nil {
return nil, err
}
+ ctrMap := map[string]string{}
+ for i := range ctrs {
+ ctrMap[ctrs[i].ID] = rawInputs[i]
+ }
options := new(containers.KillOptions).WithSignal(opts.Signal)
reports := make([]*entities.KillReport, 0, len(ctrs))
for _, c := range ctrs {
reports = append(reports, &entities.KillReport{
- Id: c.ID,
- Err: containers.Kill(ic.ClientCtx, c.ID, options),
+ Id: c.ID,
+ Err: containers.Kill(ic.ClientCtx, c.ID, options),
+ RawInput: ctrMap[c.ID],
})
}
return reports, nil
@@ -290,7 +302,6 @@ func (ic *ContainerEngine) ContainerCheckpoint(ctx context.Context, namesOrIds [
ctrs = append(ctrs, c)
}
}
-
} else {
ctrs, err = getContainersByContext(ic.ClientCtx, false, false, namesOrIds)
if err != nil {
@@ -326,7 +337,6 @@ func (ic *ContainerEngine) ContainerRestore(ctx context.Context, namesOrIds []st
ctrs = append(ctrs, c)
}
}
-
} else {
ctrs, err = getContainersByContext(ic.ClientCtx, false, false, namesOrIds)
if err != nil {
@@ -570,7 +580,6 @@ func (ic *ContainerEngine) ContainerStart(ctx context.Context, namesOrIds []stri
}
// Start the container if it's not running already.
if !ctrRunning {
-
err = containers.Start(ic.ClientCtx, name, new(containers.StartOptions).WithDetachKeys(options.DetachKeys))
if err != nil {
if ctr.AutoRemove {
diff --git a/pkg/domain/infra/tunnel/events.go b/pkg/domain/infra/tunnel/events.go
index cec6c749c..6e2c3f8ba 100644
--- a/pkg/domain/infra/tunnel/events.go
+++ b/pkg/domain/infra/tunnel/events.go
@@ -4,9 +4,9 @@ import (
"context"
"strings"
- "github.com/containers/podman/v2/libpod/events"
- "github.com/containers/podman/v2/pkg/bindings/system"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/libpod/events"
+ "github.com/containers/podman/v3/pkg/bindings/system"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/pkg/errors"
)
diff --git a/pkg/domain/infra/tunnel/generate.go b/pkg/domain/infra/tunnel/generate.go
index 6d68157c1..0e768b30b 100644
--- a/pkg/domain/infra/tunnel/generate.go
+++ b/pkg/domain/infra/tunnel/generate.go
@@ -3,12 +3,12 @@ package tunnel
import (
"context"
- "github.com/containers/podman/v2/pkg/bindings/generate"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/bindings/generate"
+ "github.com/containers/podman/v3/pkg/domain/entities"
)
func (ic *ContainerEngine) GenerateSystemd(ctx context.Context, nameOrID string, opts entities.GenerateSystemdOptions) (*entities.GenerateSystemdReport, error) {
- options := new(generate.SystemdOptions).WithUseName(opts.Name).WithContainerPrefix(opts.ContainerPrefix).WithNew(opts.New)
+ options := new(generate.SystemdOptions).WithUseName(opts.Name).WithContainerPrefix(opts.ContainerPrefix).WithNew(opts.New).WithNoHeader(opts.NoHeader)
options.WithPodPrefix(opts.PodPrefix).WithRestartPolicy(opts.RestartPolicy).WithSeparator(opts.Separator)
if to := opts.StopTimeout; to != nil {
options.WithStopTimeout(*opts.StopTimeout)
diff --git a/pkg/domain/infra/tunnel/healthcheck.go b/pkg/domain/infra/tunnel/healthcheck.go
index 3daf22647..9d37826e0 100644
--- a/pkg/domain/infra/tunnel/healthcheck.go
+++ b/pkg/domain/infra/tunnel/healthcheck.go
@@ -3,9 +3,9 @@ package tunnel
import (
"context"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/bindings/containers"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/bindings/containers"
+ "github.com/containers/podman/v3/pkg/domain/entities"
)
func (ic *ContainerEngine) HealthCheckRun(ctx context.Context, nameOrID string, options entities.HealthCheckOptions) (*define.HealthCheckResults, error) {
diff --git a/pkg/domain/infra/tunnel/helpers.go b/pkg/domain/infra/tunnel/helpers.go
index 0a806d860..f088d360b 100644
--- a/pkg/domain/infra/tunnel/helpers.go
+++ b/pkg/domain/infra/tunnel/helpers.go
@@ -3,27 +3,37 @@ package tunnel
import (
"context"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/bindings/containers"
- "github.com/containers/podman/v2/pkg/bindings/pods"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/errorhandling"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/bindings/containers"
+ "github.com/containers/podman/v3/pkg/bindings/pods"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/errorhandling"
"github.com/pkg/errors"
)
// FIXME: the `ignore` parameter is very likely wrong here as it should rather
// be used on *errors* from operations such as remove.
func getContainersByContext(contextWithConnection context.Context, all, ignore bool, namesOrIDs []string) ([]entities.ListContainer, error) {
+ ctrs, _, err := getContainersAndInputByContext(contextWithConnection, all, ignore, namesOrIDs)
+ return ctrs, err
+}
+
+func getContainersAndInputByContext(contextWithConnection context.Context, all, ignore bool, namesOrIDs []string) ([]entities.ListContainer, []string, error) {
if all && len(namesOrIDs) > 0 {
- return nil, errors.New("cannot lookup containers and all")
+ return nil, nil, errors.New("cannot lookup containers and all")
}
options := new(containers.ListOptions).WithAll(true).WithSync(true)
allContainers, err := containers.List(contextWithConnection, options)
if err != nil {
- return nil, err
+ return nil, nil, err
}
+ rawInputs := []string{}
if all {
- return allContainers, err
+ for i := range allContainers {
+ rawInputs = append(rawInputs, allContainers[i].ID)
+ }
+
+ return allContainers, rawInputs, err
}
// Note: it would be nicer if the lists endpoint would support that as
@@ -42,7 +52,7 @@ func getContainersByContext(contextWithConnection context.Context, all, ignore b
if ignore && errorhandling.Contains(err, define.ErrNoSuchCtr) {
continue
}
- return nil, err
+ return nil, nil, err
}
// Now we can do a full match of the ID to find the right
@@ -52,17 +62,17 @@ func getContainersByContext(contextWithConnection context.Context, all, ignore b
for _, ctr := range allContainers {
if ctr.ID == inspectData.ID {
filtered = append(filtered, ctr)
+ rawInputs = append(rawInputs, nameOrID)
found = true
break
}
-
}
if !found && !ignore {
- return nil, errors.Wrapf(define.ErrNoSuchCtr, "unable to find container %q", nameOrID)
+ return nil, nil, errors.Wrapf(define.ErrNoSuchCtr, "unable to find container %q", nameOrID)
}
}
- return filtered, nil
+ return filtered, rawInputs, nil
}
func getPodsByContext(contextWithConnection context.Context, all bool, namesOrIDs []string) ([]*entities.ListPodsReport, error) {
@@ -107,7 +117,6 @@ func getPodsByContext(contextWithConnection context.Context, all bool, namesOrID
found = true
break
}
-
}
if !found {
diff --git a/pkg/domain/infra/tunnel/images.go b/pkg/domain/infra/tunnel/images.go
index daad911cd..90b6e104b 100644
--- a/pkg/domain/infra/tunnel/images.go
+++ b/pkg/domain/infra/tunnel/images.go
@@ -11,13 +11,13 @@ import (
"github.com/containers/common/pkg/config"
"github.com/containers/image/v5/docker/reference"
"github.com/containers/image/v5/types"
- "github.com/containers/podman/v2/libpod/image"
- images "github.com/containers/podman/v2/pkg/bindings/images"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
- "github.com/containers/podman/v2/pkg/domain/utils"
- "github.com/containers/podman/v2/pkg/errorhandling"
- utils2 "github.com/containers/podman/v2/utils"
+ "github.com/containers/podman/v3/libpod/image"
+ images "github.com/containers/podman/v3/pkg/bindings/images"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/pkg/domain/utils"
+ "github.com/containers/podman/v3/pkg/errorhandling"
+ utils2 "github.com/containers/podman/v3/utils"
"github.com/pkg/errors"
)
@@ -32,7 +32,6 @@ func (ir *ImageEngine) Remove(ctx context.Context, imagesArg []string, opts enti
}
func (ir *ImageEngine) List(ctx context.Context, opts entities.ImageListOptions) ([]*entities.ImageSummary, error) {
-
filters := make(map[string][]string, len(opts.Filter))
for _, filter := range opts.Filter {
f := strings.Split(filter, "=")
diff --git a/pkg/domain/infra/tunnel/manifest.go b/pkg/domain/infra/tunnel/manifest.go
index e261afee2..8ac1f1420 100644
--- a/pkg/domain/infra/tunnel/manifest.go
+++ b/pkg/domain/infra/tunnel/manifest.go
@@ -7,9 +7,9 @@ import (
"strings"
"github.com/containers/image/v5/types"
- images "github.com/containers/podman/v2/pkg/bindings/images"
- "github.com/containers/podman/v2/pkg/bindings/manifests"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ images "github.com/containers/podman/v3/pkg/bindings/images"
+ "github.com/containers/podman/v3/pkg/bindings/manifests"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/pkg/errors"
)
diff --git a/pkg/domain/infra/tunnel/network.go b/pkg/domain/infra/tunnel/network.go
index 990bfa880..adf34460c 100644
--- a/pkg/domain/infra/tunnel/network.go
+++ b/pkg/domain/infra/tunnel/network.go
@@ -3,9 +3,9 @@ package tunnel
import (
"context"
- "github.com/containers/podman/v2/pkg/bindings/network"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/errorhandling"
+ "github.com/containers/podman/v3/pkg/bindings/network"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/errorhandling"
"github.com/pkg/errors"
)
diff --git a/pkg/domain/infra/tunnel/play.go b/pkg/domain/infra/tunnel/play.go
index 2318b9caa..9f9076114 100644
--- a/pkg/domain/infra/tunnel/play.go
+++ b/pkg/domain/infra/tunnel/play.go
@@ -4,8 +4,8 @@ import (
"context"
"github.com/containers/image/v5/types"
- "github.com/containers/podman/v2/pkg/bindings/play"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/bindings/play"
+ "github.com/containers/podman/v3/pkg/domain/entities"
)
func (ic *ContainerEngine) PlayKube(ctx context.Context, path string, opts entities.PlayKubeOptions) (*entities.PlayKubeReport, error) {
diff --git a/pkg/domain/infra/tunnel/pods.go b/pkg/domain/infra/tunnel/pods.go
index d61c95d57..82f062b2c 100644
--- a/pkg/domain/infra/tunnel/pods.go
+++ b/pkg/domain/infra/tunnel/pods.go
@@ -3,11 +3,11 @@ package tunnel
import (
"context"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/bindings/pods"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/specgen"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/bindings/pods"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/specgen"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/pkg/errors"
)
diff --git a/pkg/domain/infra/tunnel/secrets.go b/pkg/domain/infra/tunnel/secrets.go
index f7c0f7d13..1153f490e 100644
--- a/pkg/domain/infra/tunnel/secrets.go
+++ b/pkg/domain/infra/tunnel/secrets.go
@@ -4,9 +4,9 @@ import (
"context"
"io"
- "github.com/containers/podman/v2/pkg/bindings/secrets"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/errorhandling"
+ "github.com/containers/podman/v3/pkg/bindings/secrets"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/errorhandling"
"github.com/pkg/errors"
)
@@ -76,7 +76,6 @@ func (ic *ContainerEngine) SecretRm(ctx context.Context, nameOrIDs []string, opt
Err: secrets.Remove(ic.ClientCtx, name),
ID: secret.ID,
})
-
}
return allRm, nil
}
diff --git a/pkg/domain/infra/tunnel/system.go b/pkg/domain/infra/tunnel/system.go
index a46b164a5..d2c5063c9 100644
--- a/pkg/domain/infra/tunnel/system.go
+++ b/pkg/domain/infra/tunnel/system.go
@@ -4,9 +4,9 @@ import (
"context"
"errors"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/bindings/system"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/bindings/system"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/spf13/cobra"
)
diff --git a/pkg/domain/infra/tunnel/trust.go b/pkg/domain/infra/tunnel/trust.go
index cf0faaf67..e0bd535ec 100644
--- a/pkg/domain/infra/tunnel/trust.go
+++ b/pkg/domain/infra/tunnel/trust.go
@@ -4,7 +4,7 @@ import (
"context"
"errors"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities"
)
func (ir *ImageEngine) ShowTrust(ctx context.Context, args []string, options entities.ShowTrustOptions) (*entities.ShowTrustReport, error) {
diff --git a/pkg/domain/infra/tunnel/volumes.go b/pkg/domain/infra/tunnel/volumes.go
index ffd2c1d35..2d231bad6 100644
--- a/pkg/domain/infra/tunnel/volumes.go
+++ b/pkg/domain/infra/tunnel/volumes.go
@@ -3,10 +3,10 @@ package tunnel
import (
"context"
- "github.com/containers/podman/v2/pkg/bindings/volumes"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/entities/reports"
- "github.com/containers/podman/v2/pkg/errorhandling"
+ "github.com/containers/podman/v3/pkg/bindings/volumes"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities/reports"
+ "github.com/containers/podman/v3/pkg/errorhandling"
"github.com/pkg/errors"
)
diff --git a/pkg/hooks/0.1.0/hook.go b/pkg/hooks/0.1.0/hook.go
index 97eec8bb1..fb5760172 100644
--- a/pkg/hooks/0.1.0/hook.go
+++ b/pkg/hooks/0.1.0/hook.go
@@ -6,7 +6,7 @@ import (
"errors"
"strings"
- current "github.com/containers/podman/v2/pkg/hooks/1.0.0"
+ current "github.com/containers/podman/v3/pkg/hooks/1.0.0"
rspec "github.com/opencontainers/runtime-spec/specs-go"
)
diff --git a/pkg/hooks/0.1.0/hook_test.go b/pkg/hooks/0.1.0/hook_test.go
index dcc083f97..637aad638 100644
--- a/pkg/hooks/0.1.0/hook_test.go
+++ b/pkg/hooks/0.1.0/hook_test.go
@@ -3,7 +3,7 @@ package hook
import (
"testing"
- current "github.com/containers/podman/v2/pkg/hooks/1.0.0"
+ current "github.com/containers/podman/v3/pkg/hooks/1.0.0"
rspec "github.com/opencontainers/runtime-spec/specs-go"
"github.com/stretchr/testify/assert"
)
diff --git a/pkg/hooks/hooks.go b/pkg/hooks/hooks.go
index 6cb81e573..f49195f65 100644
--- a/pkg/hooks/hooks.go
+++ b/pkg/hooks/hooks.go
@@ -9,7 +9,7 @@ import (
"strings"
"sync"
- current "github.com/containers/podman/v2/pkg/hooks/1.0.0"
+ current "github.com/containers/podman/v3/pkg/hooks/1.0.0"
rspec "github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
diff --git a/pkg/hooks/hooks_test.go b/pkg/hooks/hooks_test.go
index a2a110cf5..f7b00dd3d 100644
--- a/pkg/hooks/hooks_test.go
+++ b/pkg/hooks/hooks_test.go
@@ -9,7 +9,7 @@ import (
"runtime"
"testing"
- current "github.com/containers/podman/v2/pkg/hooks/1.0.0"
+ current "github.com/containers/podman/v3/pkg/hooks/1.0.0"
rspec "github.com/opencontainers/runtime-spec/specs-go"
"github.com/stretchr/testify/assert"
)
diff --git a/pkg/hooks/monitor.go b/pkg/hooks/monitor.go
index 5fa93c93a..6fa94cd17 100644
--- a/pkg/hooks/monitor.go
+++ b/pkg/hooks/monitor.go
@@ -3,7 +3,7 @@ package hooks
import (
"context"
- current "github.com/containers/podman/v2/pkg/hooks/1.0.0"
+ current "github.com/containers/podman/v3/pkg/hooks/1.0.0"
"github.com/fsnotify/fsnotify"
"github.com/sirupsen/logrus"
)
diff --git a/pkg/hooks/read.go b/pkg/hooks/read.go
index fec37bc6a..e7e5aa66f 100644
--- a/pkg/hooks/read.go
+++ b/pkg/hooks/read.go
@@ -8,8 +8,8 @@ import (
"path/filepath"
"strings"
- old "github.com/containers/podman/v2/pkg/hooks/0.1.0"
- current "github.com/containers/podman/v2/pkg/hooks/1.0.0"
+ old "github.com/containers/podman/v3/pkg/hooks/0.1.0"
+ current "github.com/containers/podman/v3/pkg/hooks/1.0.0"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
diff --git a/pkg/hooks/read_test.go b/pkg/hooks/read_test.go
index ef145f0eb..9f4de049e 100644
--- a/pkg/hooks/read_test.go
+++ b/pkg/hooks/read_test.go
@@ -7,7 +7,7 @@ import (
"path/filepath"
"testing"
- current "github.com/containers/podman/v2/pkg/hooks/1.0.0"
+ current "github.com/containers/podman/v3/pkg/hooks/1.0.0"
rspec "github.com/opencontainers/runtime-spec/specs-go"
"github.com/stretchr/testify/assert"
)
diff --git a/pkg/inspect/inspect.go b/pkg/inspect/inspect.go
index 67c6a5c03..5caeae1f0 100644
--- a/pkg/inspect/inspect.go
+++ b/pkg/inspect/inspect.go
@@ -4,7 +4,7 @@ import (
"time"
"github.com/containers/image/v5/manifest"
- "github.com/containers/podman/v2/libpod/define"
+ "github.com/containers/podman/v3/libpod/define"
"github.com/opencontainers/go-digest"
v1 "github.com/opencontainers/image-spec/specs-go/v1"
)
diff --git a/pkg/kubeutils/resize.go b/pkg/kubeutils/resize.go
index afc697d98..957e10f45 100644
--- a/pkg/kubeutils/resize.go
+++ b/pkg/kubeutils/resize.go
@@ -17,14 +17,14 @@ limitations under the License.
package kubeutils
import (
+ "github.com/containers/podman/v3/libpod/define"
"k8s.io/apimachinery/pkg/util/runtime"
- "k8s.io/client-go/tools/remotecommand"
)
// HandleResizing spawns a goroutine that processes the resize channel, calling resizeFunc for each
// remotecommand.TerminalSize received from the channel. The resize channel must be closed elsewhere to stop the
// goroutine.
-func HandleResizing(resize <-chan remotecommand.TerminalSize, resizeFunc func(size remotecommand.TerminalSize)) {
+func HandleResizing(resize <-chan define.TerminalSize, resizeFunc func(size define.TerminalSize)) {
if resize == nil {
return
}
diff --git a/pkg/lookup/lookup.go b/pkg/lookup/lookup.go
index 8f241edf2..0b22a1974 100644
--- a/pkg/lookup/lookup.go
+++ b/pkg/lookup/lookup.go
@@ -66,7 +66,6 @@ func GetUserGroupInfo(containerMount, containerUser string, override *Overrides)
// Gid: 0,
// Home: "/",
defaultExecUser = nil
-
}
return user.GetExecUserPath(containerUser, defaultExecUser, passwdDest, groupDest)
diff --git a/pkg/netns/netns_linux.go b/pkg/netns/netns_linux.go
index 6817a3abd..0b7d1782c 100644
--- a/pkg/netns/netns_linux.go
+++ b/pkg/netns/netns_linux.go
@@ -29,8 +29,8 @@ import (
"sync"
"github.com/containernetworking/plugins/pkg/ns"
- "github.com/containers/podman/v2/pkg/rootless"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/pkg/rootless"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/sirupsen/logrus"
"golang.org/x/sys/unix"
)
@@ -51,7 +51,6 @@ func getNSRunDir() (string, error) {
// NewNS creates a new persistent (bind-mounted) network namespace and returns
// an object representing that namespace, without switching to it.
func NewNS() (ns.NetNS, error) {
-
nsRunDir, err := getNSRunDir()
if err != nil {
return nil, err
@@ -92,7 +91,6 @@ func NewNS() (ns.NetNS, error) {
if err != nil {
return nil, fmt.Errorf("mount --make-rshared %s failed: %q", nsRunDir, err)
}
-
}
nsName := fmt.Sprintf("cni-%x-%x-%x-%x-%x", b[0:4], b[4:6], b[6:8], b[8:10], b[10:])
diff --git a/pkg/parallel/ctr/ctr.go b/pkg/parallel/ctr/ctr.go
index e8c1292b8..16999fabf 100644
--- a/pkg/parallel/ctr/ctr.go
+++ b/pkg/parallel/ctr/ctr.go
@@ -3,8 +3,8 @@ package ctr
import (
"context"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/parallel"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/parallel"
"github.com/sirupsen/logrus"
)
diff --git a/pkg/ps/ps.go b/pkg/ps/ps.go
index 42f9e1d39..b31978638 100644
--- a/pkg/ps/ps.go
+++ b/pkg/ps/ps.go
@@ -9,11 +9,11 @@ import (
"strings"
"time"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/pkg/domain/filters"
- psdefine "github.com/containers/podman/v2/pkg/ps/define"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/filters"
+ psdefine "github.com/containers/podman/v3/pkg/ps/define"
"github.com/containers/storage"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
diff --git a/pkg/registrar/registrar_test.go b/pkg/registrar/registrar_test.go
index 4b13b9365..dc9942e80 100644
--- a/pkg/registrar/registrar_test.go
+++ b/pkg/registrar/registrar_test.go
@@ -3,8 +3,8 @@ package registrar_test
import (
"testing"
- "github.com/containers/podman/v2/pkg/registrar"
- . "github.com/containers/podman/v2/test/framework"
+ "github.com/containers/podman/v3/pkg/registrar"
+ . "github.com/containers/podman/v3/test/framework"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
diff --git a/pkg/registries/registries.go b/pkg/registries/registries.go
index 949c5d835..bf5dee2ce 100644
--- a/pkg/registries/registries.go
+++ b/pkg/registries/registries.go
@@ -11,7 +11,7 @@ import (
"github.com/containers/image/v5/pkg/sysregistriesv2"
"github.com/containers/image/v5/types"
- "github.com/containers/podman/v2/pkg/rootless"
+ "github.com/containers/podman/v3/pkg/rootless"
"github.com/pkg/errors"
)
diff --git a/pkg/resolvconf/resolvconf.go b/pkg/resolvconf/resolvconf.go
index 27564439e..cfaedc74a 100644
--- a/pkg/resolvconf/resolvconf.go
+++ b/pkg/resolvconf/resolvconf.go
@@ -9,7 +9,7 @@ import (
"strings"
"sync"
- "github.com/containers/podman/v2/pkg/resolvconf/dns"
+ "github.com/containers/podman/v3/pkg/resolvconf/dns"
"github.com/containers/storage/pkg/ioutils"
"github.com/sirupsen/logrus"
)
diff --git a/pkg/rootless/rootless.go b/pkg/rootless/rootless.go
index df35c0d6b..b5538efc3 100644
--- a/pkg/rootless/rootless.go
+++ b/pkg/rootless/rootless.go
@@ -61,9 +61,9 @@ var (
gidMapOnce sync.Once
)
-// GetAvailableUidMap returns the UID mappings in the
+// GetAvailableUIDMap returns the UID mappings in the
// current user namespace.
-func GetAvailableUidMap() ([]user.IDMap, error) {
+func GetAvailableUIDMap() ([]user.IDMap, error) {
uidMapOnce.Do(func() {
var err error
uidMap, err = user.ParseIDMapFile("/proc/self/uid_map")
@@ -75,9 +75,9 @@ func GetAvailableUidMap() ([]user.IDMap, error) {
return uidMap, uidMapError
}
-// GetAvailableGidMap returns the GID mappings in the
+// GetAvailableGIDMap returns the GID mappings in the
// current user namespace.
-func GetAvailableGidMap() ([]user.IDMap, error) {
+func GetAvailableGIDMap() ([]user.IDMap, error) {
gidMapOnce.Do(func() {
var err error
gidMap, err = user.ParseIDMapFile("/proc/self/gid_map")
@@ -92,11 +92,11 @@ func GetAvailableGidMap() ([]user.IDMap, error) {
// GetAvailableIDMaps returns the UID and GID mappings in the
// current user namespace.
func GetAvailableIDMaps() ([]user.IDMap, []user.IDMap, error) {
- u, err := GetAvailableUidMap()
+ u, err := GetAvailableUIDMap()
if err != nil {
return nil, nil, err
}
- g, err := GetAvailableGidMap()
+ g, err := GetAvailableGIDMap()
if err != nil {
return nil, nil, err
}
@@ -114,7 +114,7 @@ func countAvailableIDs(mappings []user.IDMap) int64 {
// GetAvailableUids returns how many UIDs are available in the
// current user namespace.
func GetAvailableUids() (int64, error) {
- uids, err := GetAvailableUidMap()
+ uids, err := GetAvailableUIDMap()
if err != nil {
return -1, err
}
@@ -125,7 +125,7 @@ func GetAvailableUids() (int64, error) {
// GetAvailableGids returns how many GIDs are available in the
// current user namespace.
func GetAvailableGids() (int64, error) {
- gids, err := GetAvailableGidMap()
+ gids, err := GetAvailableGIDMap()
if err != nil {
return -1, err
}
diff --git a/pkg/rootless/rootless_linux.c b/pkg/rootless/rootless_linux.c
index 2e1fddc48..d93e4c10c 100644
--- a/pkg/rootless/rootless_linux.c
+++ b/pkg/rootless/rootless_linux.c
@@ -196,7 +196,11 @@ can_use_shortcut ()
return false;
if (strstr (argv[0], "podman") == NULL)
- return false;
+ {
+ free (argv[0]);
+ free (argv);
+ return false;
+ }
for (argc = 0; argv[argc]; argc++)
{
@@ -394,7 +398,7 @@ static void __attribute__((constructor)) init()
if (chdir (cwd) < 0)
{
- fprintf (stderr, "cannot chdir: %s\n", strerror (errno));
+ fprintf (stderr, "cannot chdir to %s: %s\n", cwd, strerror (errno));
_exit (EXIT_FAILURE);
}
@@ -685,7 +689,7 @@ reexec_userns_join (int pid_to_join, char *pause_pid_file_path)
if (chdir (cwd) < 0)
{
- fprintf (stderr, "cannot chdir: %s\n", strerror (errno));
+ fprintf (stderr, "cannot chdir to %s: %s\n", cwd, strerror (errno));
_exit (EXIT_FAILURE);
}
free (cwd);
@@ -889,7 +893,7 @@ reexec_in_user_namespace (int ready, char *pause_pid_file_path, char *file_to_re
if (chdir (cwd) < 0)
{
- fprintf (stderr, "cannot chdir: %s\n", strerror (errno));
+ fprintf (stderr, "cannot chdir to %s: %s\n", cwd, strerror (errno));
TEMP_FAILURE_RETRY (write (ready, "1", 1));
_exit (EXIT_FAILURE);
}
diff --git a/pkg/rootless/rootless_linux.go b/pkg/rootless/rootless_linux.go
index d4b1a0dfd..dda230dbc 100644
--- a/pkg/rootless/rootless_linux.go
+++ b/pkg/rootless/rootless_linux.go
@@ -16,7 +16,7 @@ import (
"sync"
"unsafe"
- "github.com/containers/podman/v2/pkg/errorhandling"
+ "github.com/containers/podman/v3/pkg/errorhandling"
"github.com/containers/storage/pkg/idtools"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
diff --git a/pkg/rootlessport/rootlessport_linux.go b/pkg/rootlessport/rootlessport_linux.go
index 80e1309a5..7cb54a7c3 100644
--- a/pkg/rootlessport/rootlessport_linux.go
+++ b/pkg/rootlessport/rootlessport_linux.go
@@ -64,7 +64,6 @@ func init() {
os.Exit(1)
}
})
-
}
func loadConfig(r io.Reader) (*Config, io.ReadCloser, io.WriteCloser, error) {
diff --git a/pkg/specgen/config_unsupported.go b/pkg/specgen/config_unsupported.go
index 85ff1e9fd..3d89e49f8 100644
--- a/pkg/specgen/config_unsupported.go
+++ b/pkg/specgen/config_unsupported.go
@@ -3,7 +3,7 @@
package specgen
import (
- "github.com/containers/podman/v2/libpod/image"
+ "github.com/containers/podman/v3/libpod/image"
spec "github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
)
diff --git a/pkg/specgen/container_validate.go b/pkg/specgen/container_validate.go
index 81cb8b78d..caea51ea8 100644
--- a/pkg/specgen/container_validate.go
+++ b/pkg/specgen/container_validate.go
@@ -4,9 +4,9 @@ import (
"strconv"
"strings"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/pkg/rootless"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/pkg/rootless"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
)
@@ -29,7 +29,6 @@ func exclusiveOptions(opt1, opt2 string) error {
// Validate verifies that the given SpecGenerator is valid and satisfies required
// input for creating a container.
func (s *SpecGenerator) Validate() error {
-
if rootless.IsRootless() && len(s.CNINetworks) == 0 {
if s.StaticIP != nil || s.StaticIPv6 != nil {
return ErrNoStaticIPRootless
diff --git a/pkg/specgen/generate/config_linux.go b/pkg/specgen/generate/config_linux.go
index 1290a8eb6..2792d0cb7 100644
--- a/pkg/specgen/generate/config_linux.go
+++ b/pkg/specgen/generate/config_linux.go
@@ -8,8 +8,8 @@ import (
"path/filepath"
"strings"
- "github.com/containers/podman/v2/pkg/rootless"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/pkg/rootless"
+ "github.com/containers/podman/v3/pkg/util"
spec "github.com/opencontainers/runtime-spec/specs-go"
"github.com/opencontainers/runtime-tools/generate"
"github.com/pkg/errors"
@@ -113,7 +113,6 @@ func DevicesFromPath(g *generate.Generator, devicePath string) error {
// mount the internal devices recursively
if err := filepath.Walk(resolvedDevicePath, func(dpath string, f os.FileInfo, e error) error {
-
if f.Mode()&os.ModeDevice == os.ModeDevice {
found = true
device := fmt.Sprintf("%s:%s", dpath, filepath.Join(dest, strings.TrimPrefix(dpath, src)))
diff --git a/pkg/specgen/generate/config_linux_cgo.go b/pkg/specgen/generate/config_linux_cgo.go
index 7a53cb01c..41f03d5b6 100644
--- a/pkg/specgen/generate/config_linux_cgo.go
+++ b/pkg/specgen/generate/config_linux_cgo.go
@@ -7,9 +7,9 @@ import (
"io/ioutil"
goSeccomp "github.com/containers/common/pkg/seccomp"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/seccomp"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/seccomp"
+ "github.com/containers/podman/v3/pkg/specgen"
spec "github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
diff --git a/pkg/specgen/generate/config_linux_nocgo.go b/pkg/specgen/generate/config_linux_nocgo.go
index 184122aeb..0867988b6 100644
--- a/pkg/specgen/generate/config_linux_nocgo.go
+++ b/pkg/specgen/generate/config_linux_nocgo.go
@@ -5,8 +5,8 @@ package generate
import (
"errors"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/specgen"
spec "github.com/opencontainers/runtime-spec/specs-go"
)
diff --git a/pkg/specgen/generate/container.go b/pkg/specgen/generate/container.go
index 31d317bf8..3d20ed8ff 100644
--- a/pkg/specgen/generate/container.go
+++ b/pkg/specgen/generate/container.go
@@ -3,14 +3,15 @@ package generate
import (
"context"
"os"
+ "strings"
"github.com/containers/image/v5/manifest"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/image"
- ann "github.com/containers/podman/v2/pkg/annotations"
- envLib "github.com/containers/podman/v2/pkg/env"
- "github.com/containers/podman/v2/pkg/signal"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/image"
+ ann "github.com/containers/podman/v3/pkg/annotations"
+ envLib "github.com/containers/podman/v3/pkg/env"
+ "github.com/containers/podman/v3/pkg/signal"
+ "github.com/containers/podman/v3/pkg/specgen"
spec "github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
@@ -197,6 +198,15 @@ func CompleteSpec(ctx context.Context, r *libpod.Runtime, s *specgen.SpecGenerat
annotations[ann.ContainerType] = ann.ContainerTypeContainer
}
+ for _, v := range rtc.Containers.Annotations {
+ split := strings.SplitN(v, "=", 2)
+ k := split[0]
+ v := ""
+ if len(split) == 2 {
+ v = split[1]
+ }
+ annotations[k] = v
+ }
// now pass in the values from client
for k, v := range s.Annotations {
annotations[k] = v
diff --git a/pkg/specgen/generate/container_create.go b/pkg/specgen/generate/container_create.go
index 74291325c..03697b353 100644
--- a/pkg/specgen/generate/container_create.go
+++ b/pkg/specgen/generate/container_create.go
@@ -7,10 +7,10 @@ import (
"strings"
"github.com/containers/common/pkg/config"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/specgen"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/specgen"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/containers/storage"
"github.com/opencontainers/selinux/go-selinux/label"
"github.com/pkg/errors"
@@ -247,8 +247,9 @@ func createContainerOptions(ctx context.Context, rt *libpod.Runtime, s *specgen.
var vols []*libpod.ContainerOverlayVolume
for _, v := range overlays {
vols = append(vols, &libpod.ContainerOverlayVolume{
- Dest: v.Destination,
- Source: v.Source,
+ Dest: v.Destination,
+ Source: v.Source,
+ Options: v.Options,
})
}
options = append(options, libpod.WithOverlayVolumes(vols))
diff --git a/pkg/specgen/generate/kube/kube.go b/pkg/specgen/generate/kube/kube.go
index 98ab82259..d61c8bd19 100644
--- a/pkg/specgen/generate/kube/kube.go
+++ b/pkg/specgen/generate/kube/kube.go
@@ -7,10 +7,10 @@ import (
"strings"
"github.com/containers/common/pkg/parse"
- "github.com/containers/podman/v2/libpod/image"
- ann "github.com/containers/podman/v2/pkg/annotations"
- "github.com/containers/podman/v2/pkg/specgen"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod/image"
+ ann "github.com/containers/podman/v3/pkg/annotations"
+ "github.com/containers/podman/v3/pkg/specgen"
+ "github.com/containers/podman/v3/pkg/util"
spec "github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
v1 "k8s.io/api/core/v1"
@@ -384,7 +384,6 @@ func getPodPorts(containers []v1.Container) []specgen.PortMapping {
if p.HostPort != 0 {
infraPorts = append(infraPorts, portBinding)
}
-
}
}
return infraPorts
diff --git a/pkg/specgen/generate/kube/seccomp.go b/pkg/specgen/generate/kube/seccomp.go
index 4cbdf6e2e..da15cf519 100644
--- a/pkg/specgen/generate/kube/seccomp.go
+++ b/pkg/specgen/generate/kube/seccomp.go
@@ -4,13 +4,14 @@ import (
"path/filepath"
"strings"
- "github.com/containers/podman/v2/libpod"
+ "github.com/containers/podman/v3/libpod"
"github.com/pkg/errors"
v1 "k8s.io/api/core/v1"
)
// KubeSeccompPaths holds information about a pod YAML's seccomp configuration
// it holds both container and pod seccomp paths
+// nolint:golint
type KubeSeccompPaths struct {
containerPaths map[string]string
podPath string
diff --git a/pkg/specgen/generate/kube/volume.go b/pkg/specgen/generate/kube/volume.go
index f5687f60d..e4f3eb196 100644
--- a/pkg/specgen/generate/kube/volume.go
+++ b/pkg/specgen/generate/kube/volume.go
@@ -4,7 +4,7 @@ import (
"os"
"github.com/containers/common/pkg/parse"
- "github.com/containers/podman/v2/libpod"
+ "github.com/containers/podman/v3/libpod"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
v1 "k8s.io/api/core/v1"
@@ -17,6 +17,7 @@ const (
kubeFilePermission = 0644
)
+// nolint:golint
type KubeVolumeType int
const (
@@ -24,6 +25,7 @@ const (
KubeVolumeTypeNamed KubeVolumeType = iota
)
+// nolint:golint
type KubeVolume struct {
// Type of volume to create
Type KubeVolumeType
diff --git a/pkg/specgen/generate/namespaces.go b/pkg/specgen/generate/namespaces.go
index f66ad6101..b87375a92 100644
--- a/pkg/specgen/generate/namespaces.go
+++ b/pkg/specgen/generate/namespaces.go
@@ -7,12 +7,12 @@ import (
"strings"
"github.com/containers/common/pkg/config"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/rootless"
- "github.com/containers/podman/v2/pkg/specgen"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/rootless"
+ "github.com/containers/podman/v3/pkg/specgen"
+ "github.com/containers/podman/v3/pkg/util"
spec "github.com/opencontainers/runtime-spec/specs-go"
"github.com/opencontainers/runtime-tools/generate"
"github.com/pkg/errors"
diff --git a/pkg/specgen/generate/oci.go b/pkg/specgen/generate/oci.go
index e62131244..23a9ce831 100644
--- a/pkg/specgen/generate/oci.go
+++ b/pkg/specgen/generate/oci.go
@@ -5,11 +5,11 @@ import (
"strings"
"github.com/containers/common/pkg/config"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/rootless"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/rootless"
+ "github.com/containers/podman/v3/pkg/specgen"
spec "github.com/opencontainers/runtime-spec/specs-go"
"github.com/opencontainers/runtime-tools/generate"
"github.com/pkg/errors"
@@ -105,7 +105,10 @@ func makeCommand(ctx context.Context, s *specgen.SpecGenerator, img *image.Image
entrypoint = newEntry
}
- finalCommand = append(finalCommand, entrypoint...)
+ // Don't append the entrypoint if it is [""]
+ if len(entrypoint) != 1 || entrypoint[0] != "" {
+ finalCommand = append(finalCommand, entrypoint...)
+ }
// Only use image command if the user did not manually set an
// entrypoint.
@@ -219,7 +222,6 @@ func SpecGenToOCI(ctx context.Context, s *specgen.SpecGenerator, rt *libpod.Runt
if !mappingFound {
gid5Available = false
}
-
}
if !gid5Available {
// If we have no GID mappings, the gid=5 default option would fail, so drop it.
diff --git a/pkg/specgen/generate/pod_create.go b/pkg/specgen/generate/pod_create.go
index 645bf7a47..5d7bf1930 100644
--- a/pkg/specgen/generate/pod_create.go
+++ b/pkg/specgen/generate/pod_create.go
@@ -3,8 +3,8 @@ package generate
import (
"context"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/specgen"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
diff --git a/pkg/specgen/generate/ports.go b/pkg/specgen/generate/ports.go
index 83ded059f..6cf83ed81 100644
--- a/pkg/specgen/generate/ports.go
+++ b/pkg/specgen/generate/ports.go
@@ -6,8 +6,8 @@ import (
"strconv"
"strings"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/specgen"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/specgen"
"github.com/cri-o/ocicni/pkg/ocicni"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
diff --git a/pkg/specgen/generate/security.go b/pkg/specgen/generate/security.go
index 390b19beb..56aac8bfd 100644
--- a/pkg/specgen/generate/security.go
+++ b/pkg/specgen/generate/security.go
@@ -6,11 +6,11 @@ import (
"github.com/containers/common/pkg/apparmor"
"github.com/containers/common/pkg/capabilities"
"github.com/containers/common/pkg/config"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/define"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/specgen"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/define"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/specgen"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/opencontainers/runtime-tools/generate"
"github.com/opencontainers/selinux/go-selinux/label"
"github.com/pkg/errors"
@@ -109,17 +109,15 @@ func securityConfigureGenerator(s *specgen.SpecGenerator, g *generate.Generator,
}
}
if !s.Privileged && len(capsRequiredRequested) > 0 {
-
// Pass capRequiredRequested in CapAdd field to normalize capabilities names
capsRequired, err := capabilities.MergeCapabilities(nil, capsRequiredRequested, nil)
if err != nil {
return errors.Wrapf(err, "capabilities requested by user or image are not valid: %q", strings.Join(capsRequired, ","))
- } else {
- // Verify all capRequired are in the capList
- for _, cap := range capsRequired {
- if !util.StringInSlice(cap, caplist) {
- privCapsRequired = append(privCapsRequired, cap)
- }
+ }
+ // Verify all capRequired are in the capList
+ for _, cap := range capsRequired {
+ if !util.StringInSlice(cap, caplist) {
+ privCapsRequired = append(privCapsRequired, cap)
}
}
if len(privCapsRequired) == 0 {
@@ -189,7 +187,6 @@ func securityConfigureGenerator(s *specgen.SpecGenerator, g *generate.Generator,
return err
}
for sysctlKey, sysctlVal := range defaultSysctls {
-
// Ignore mqueue sysctls if --ipc=host
if noUseIPC && strings.HasPrefix(sysctlKey, "fs.mqueue.") {
logrus.Infof("Sysctl %s=%s ignored in containers.conf, since IPC Namespace set to host", sysctlKey, sysctlVal)
@@ -213,7 +210,6 @@ func securityConfigureGenerator(s *specgen.SpecGenerator, g *generate.Generator,
}
for sysctlKey, sysctlVal := range s.Sysctl {
-
if s.IpcNS.IsHost() && strings.HasPrefix(sysctlKey, "fs.mqueue.") {
return errors.Wrapf(define.ErrInvalidArg, "sysctl %s=%s can't be set since IPC Namespace set to host", sysctlKey, sysctlVal)
}
diff --git a/pkg/specgen/generate/storage.go b/pkg/specgen/generate/storage.go
index 63713726e..0bb1421f6 100644
--- a/pkg/specgen/generate/storage.go
+++ b/pkg/specgen/generate/storage.go
@@ -9,10 +9,10 @@ import (
"strings"
"github.com/containers/common/pkg/config"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/libpod/image"
- "github.com/containers/podman/v2/pkg/specgen"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/libpod/image"
+ "github.com/containers/podman/v3/pkg/specgen"
+ "github.com/containers/podman/v3/pkg/util"
spec "github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
diff --git a/pkg/specgen/generate/validate.go b/pkg/specgen/generate/validate.go
index 77cccad3e..50efe7fa3 100644
--- a/pkg/specgen/generate/validate.go
+++ b/pkg/specgen/generate/validate.go
@@ -5,9 +5,9 @@ import (
"path/filepath"
"github.com/containers/common/pkg/sysinfo"
- "github.com/containers/podman/v2/pkg/cgroups"
- "github.com/containers/podman/v2/pkg/specgen"
- "github.com/containers/podman/v2/utils"
+ "github.com/containers/podman/v3/pkg/cgroups"
+ "github.com/containers/podman/v3/pkg/specgen"
+ "github.com/containers/podman/v3/utils"
"github.com/pkg/errors"
)
diff --git a/pkg/specgen/namespaces.go b/pkg/specgen/namespaces.go
index 9d78a0210..fb7d65da4 100644
--- a/pkg/specgen/namespaces.go
+++ b/pkg/specgen/namespaces.go
@@ -3,8 +3,8 @@ package specgen
import (
"strings"
- "github.com/containers/podman/v2/pkg/cgroups"
- "github.com/containers/podman/v2/pkg/rootless"
+ "github.com/containers/podman/v3/pkg/cgroups"
+ "github.com/containers/podman/v3/pkg/rootless"
"github.com/pkg/errors"
)
diff --git a/pkg/specgen/pod_validate.go b/pkg/specgen/pod_validate.go
index 518adb32f..c746bcd1a 100644
--- a/pkg/specgen/pod_validate.go
+++ b/pkg/specgen/pod_validate.go
@@ -1,8 +1,8 @@
package specgen
import (
- "github.com/containers/podman/v2/pkg/rootless"
- "github.com/containers/podman/v2/pkg/util"
+ "github.com/containers/podman/v3/pkg/rootless"
+ "github.com/containers/podman/v3/pkg/util"
"github.com/pkg/errors"
)
@@ -19,7 +19,6 @@ func exclusivePodOptions(opt1, opt2 string) error {
// Validate verifies the input is valid
func (p *PodSpecGenerator) Validate() error {
-
if rootless.IsRootless() && len(p.CNINetworks) == 0 {
if p.StaticIP != nil {
return ErrNoStaticIPRootless
diff --git a/pkg/specgen/volumes.go b/pkg/specgen/volumes.go
index 83634b4ef..d85d2bdd1 100644
--- a/pkg/specgen/volumes.go
+++ b/pkg/specgen/volumes.go
@@ -31,6 +31,8 @@ type OverlayVolume struct {
Destination string `json:"destination"`
// Source specifies the source path of the mount.
Source string `json:"source,omitempty"`
+ // Options holds overlay volume options.
+ Options []string `json:"options,omitempty"`
}
// ImageVolume is a volume based on a container image. The container image is
@@ -100,10 +102,17 @@ func GenVolumeMounts(volumeFlag []string) (map[string]spec.Mount, map[string]*Na
if strings.HasPrefix(src, "/") || strings.HasPrefix(src, ".") {
// This is not a named volume
overlayFlag := false
+ chownFlag := false
for _, o := range options {
if o == "O" {
overlayFlag = true
- if len(options) > 1 {
+
+ joinedOpts := strings.Join(options, "")
+ if strings.Contains(joinedOpts, "U") {
+ chownFlag = true
+ }
+
+ if len(options) > 2 || (len(options) == 2 && !chownFlag) {
return nil, nil, nil, errors.New("can't use 'O' with other options")
}
}
@@ -113,6 +122,8 @@ func GenVolumeMounts(volumeFlag []string) (map[string]spec.Mount, map[string]*Na
newOverlayVol := new(OverlayVolume)
newOverlayVol.Destination = cleanDest
newOverlayVol.Source = src
+ newOverlayVol.Options = options
+
if _, ok := overlayVolumes[newOverlayVol.Destination]; ok {
return nil, nil, nil, errors.Wrapf(errDuplicateDest, newOverlayVol.Destination)
}
diff --git a/pkg/systemd/dbus.go b/pkg/systemd/dbus.go
index 60712bd6f..718082526 100644
--- a/pkg/systemd/dbus.go
+++ b/pkg/systemd/dbus.go
@@ -6,7 +6,7 @@ import (
"path/filepath"
"strconv"
- "github.com/containers/podman/v2/pkg/rootless"
+ "github.com/containers/podman/v3/pkg/rootless"
"github.com/coreos/go-systemd/v22/dbus"
godbus "github.com/godbus/dbus/v5"
)
diff --git a/pkg/systemd/generate/common.go b/pkg/systemd/generate/common.go
index e9902319c..bbd1a5f92 100644
--- a/pkg/systemd/generate/common.go
+++ b/pkg/systemd/generate/common.go
@@ -31,10 +31,12 @@ func validateRestartPolicy(restart string) error {
}
const headerTemplate = `# {{{{.ServiceName}}}}.service
+{{{{- if (eq .GenerateNoHeader false) }}}}
# autogenerated by Podman {{{{.PodmanVersion}}}}
{{{{- if .TimeStamp}}}}
# {{{{.TimeStamp}}}}
{{{{- end}}}}
+{{{{- end}}}}
[Unit]
Description=Podman {{{{.ServiceName}}}}.service
diff --git a/pkg/systemd/generate/common_test.go b/pkg/systemd/generate/common_test.go
index a0691d1ad..3787e461e 100644
--- a/pkg/systemd/generate/common_test.go
+++ b/pkg/systemd/generate/common_test.go
@@ -8,7 +8,6 @@ import (
)
func TestFilterPodFlags(t *testing.T) {
-
tests := []struct {
input []string
}{
diff --git a/pkg/systemd/generate/containers.go b/pkg/systemd/generate/containers.go
index abe159812..92c6d8865 100644
--- a/pkg/systemd/generate/containers.go
+++ b/pkg/systemd/generate/containers.go
@@ -9,9 +9,9 @@ import (
"text/template"
"time"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/version"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/version"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"github.com/spf13/pflag"
@@ -65,10 +65,11 @@ type containerInfo struct {
ExecStop string
// ExecStopPost of the unit.
ExecStopPost string
-
+ // Removes autogenerated by Podman and timestamp if set to true
+ GenerateNoHeader bool
// If not nil, the container is part of the pod. We can use the
// podInfo to extract the relevant data.
- pod *podInfo
+ Pod *podInfo
}
const containerTemplate = headerTemplate + `
@@ -215,8 +216,8 @@ func executeContainerTemplate(info *containerInfo, options entities.GenerateSyst
)
// If the container is in a pod, make sure that the
// --pod-id-file is set correctly.
- if info.pod != nil {
- podFlags := []string{"--pod-id-file", info.pod.PodIDFile}
+ if info.Pod != nil {
+ podFlags := []string{"--pod-id-file", "{{{{.Pod.PodIDFile}}}}"}
startCommand = append(startCommand, podFlags...)
info.CreateCommand = filterPodFlags(info.CreateCommand)
}
@@ -292,10 +293,15 @@ func executeContainerTemplate(info *containerInfo, options entities.GenerateSyst
if info.PodmanVersion == "" {
info.PodmanVersion = version.Version.String()
}
+
+ if options.NoHeader {
+ info.GenerateNoHeader = true
+ info.GenerateTimestamp = false
+ }
+
if info.GenerateTimestamp {
info.TimeStamp = fmt.Sprintf("%v", time.Now().Format(time.UnixDate))
}
-
// Sort the slices to assure a deterministic output.
sort.Strings(info.BoundToServices)
diff --git a/pkg/systemd/generate/containers_test.go b/pkg/systemd/generate/containers_test.go
index be14e4c28..747c54699 100644
--- a/pkg/systemd/generate/containers_test.go
+++ b/pkg/systemd/generate/containers_test.go
@@ -3,7 +3,7 @@ package generate
import (
"testing"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/stretchr/testify/assert"
)
@@ -37,9 +37,11 @@ func TestValidateRestartPolicyContainer(t *testing.T) {
}
func TestCreateContainerSystemdUnit(t *testing.T) {
- goodID := `# container-639c53578af4d84b8800b4635fa4e680ee80fd67e0e6a2d4eea48d1e3230f401.service
-# autogenerated by Podman CI
-
+ serviceInfo := `# container-639c53578af4d84b8800b4635fa4e680ee80fd67e0e6a2d4eea48d1e3230f401.service
+`
+ headerInfo := `# autogenerated by Podman CI
+`
+ goodIDContent := `
[Unit]
Description=Podman container-639c53578af4d84b8800b4635fa4e680ee80fd67e0e6a2d4eea48d1e3230f401.service
Documentation=man:podman-generate-systemd(1)
@@ -59,6 +61,8 @@ Type=forking
[Install]
WantedBy=multi-user.target default.target
`
+ goodID := serviceInfo + headerInfo + goodIDContent
+ goodIDNoHeaderInfo := serviceInfo + goodIDContent
goodName := `# container-foobar.service
# autogenerated by Podman CI
@@ -170,7 +174,7 @@ Environment=PODMAN_SYSTEMD_UNIT=%n
Restart=always
TimeoutStopSec=70
ExecStartPre=/bin/rm -f %t/jadda-jadda.pid %t/jadda-jadda.ctr-id
-ExecStart=/usr/bin/podman run --conmon-pidfile %t/jadda-jadda.pid --cidfile %t/jadda-jadda.ctr-id --cgroups=no-conmon --pod-id-file /tmp/pod-foobar.pod-id-file --replace -d --name jadda-jadda --hostname hello-world awesome-image:latest command arg1 ... argN
+ExecStart=/usr/bin/podman run --conmon-pidfile %t/jadda-jadda.pid --cidfile %t/jadda-jadda.ctr-id --cgroups=no-conmon --pod-id-file %t/pod-foobar.pod-id-file --replace -d --name jadda-jadda --hostname hello-world awesome-image:latest command arg1 ... argN
ExecStop=/usr/bin/podman stop --ignore --cidfile %t/jadda-jadda.ctr-id -t 10
ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/jadda-jadda.ctr-id
PIDFile=%t/jadda-jadda.pid
@@ -377,11 +381,12 @@ Type=forking
WantedBy=multi-user.target default.target
`
tests := []struct {
- name string
- info containerInfo
- want string
- new bool
- wantErr bool
+ name string
+ info containerInfo
+ want string
+ new bool
+ noHeader bool
+ wantErr bool
}{
{"good with id",
@@ -398,6 +403,23 @@ WantedBy=multi-user.target default.target
goodID,
false,
false,
+ false,
+ },
+ {"good with noHeader",
+ containerInfo{
+ Executable: "/usr/bin/podman",
+ ServiceName: "container-639c53578af4d84b8800b4635fa4e680ee80fd67e0e6a2d4eea48d1e3230f401",
+ ContainerNameOrID: "639c53578af4d84b8800b4635fa4e680ee80fd67e0e6a2d4eea48d1e3230f401",
+ RestartPolicy: "always",
+ PIDFile: "/run/containers/storage/overlay-containers/639c53578af4d84b8800b4635fa4e680ee80fd67e0e6a2d4eea48d1e3230f401/userdata/conmon.pid",
+ StopTimeout: 22,
+ PodmanVersion: "CI",
+ EnvVariable: EnvVariable,
+ },
+ goodIDNoHeaderInfo,
+ false,
+ true,
+ false,
},
{"good with name",
containerInfo{
@@ -413,6 +435,7 @@ WantedBy=multi-user.target default.target
goodName,
false,
false,
+ false,
},
{"good with name and bound to",
containerInfo{
@@ -429,6 +452,7 @@ WantedBy=multi-user.target default.target
goodNameBoundTo,
false,
false,
+ false,
},
{"bad restart policy",
containerInfo{
@@ -442,6 +466,7 @@ WantedBy=multi-user.target default.target
},
"",
false,
+ false,
true,
},
{"good with name and generic",
@@ -459,6 +484,7 @@ WantedBy=multi-user.target default.target
goodWithNameAndGeneric,
true,
false,
+ false,
},
{"good with explicit short detach param",
containerInfo{
@@ -475,6 +501,7 @@ WantedBy=multi-user.target default.target
goodWithExplicitShortDetachParam,
true,
false,
+ false,
},
{"good with explicit short detach param and podInfo",
containerInfo{
@@ -487,13 +514,14 @@ WantedBy=multi-user.target default.target
PodmanVersion: "CI",
CreateCommand: []string{"I'll get stripped", "run", "-d", "--name", "jadda-jadda", "--hostname", "hello-world", "awesome-image:latest", "command", "arg1", "...", "argN"},
EnvVariable: EnvVariable,
- pod: &podInfo{
- PodIDFile: "/tmp/pod-foobar.pod-id-file",
+ Pod: &podInfo{
+ PodIDFile: "%t/pod-foobar.pod-id-file",
},
},
goodNameNewWithPodFile,
true,
false,
+ false,
},
{"good with explicit full detach param",
containerInfo{
@@ -510,6 +538,7 @@ WantedBy=multi-user.target default.target
goodNameNewDetach,
true,
false,
+ false,
},
{"good with id and no param",
containerInfo{
@@ -526,6 +555,7 @@ WantedBy=multi-user.target default.target
goodIDNew,
true,
false,
+ false,
},
{"good with explicit detach=true param",
containerInfo{
@@ -542,6 +572,7 @@ WantedBy=multi-user.target default.target
genGoodNewDetach("--detach=true"),
true,
false,
+ false,
},
{"good with explicit detach=false param",
containerInfo{
@@ -558,6 +589,7 @@ WantedBy=multi-user.target default.target
genGoodNewDetach("-d"),
true,
false,
+ false,
},
{"good with explicit detach=false param",
containerInfo{
@@ -574,6 +606,7 @@ WantedBy=multi-user.target default.target
goodNameNewDetachFalseWithCmd,
true,
false,
+ false,
},
{"good with multiple detach=false params",
containerInfo{
@@ -590,6 +623,7 @@ WantedBy=multi-user.target default.target
goodNameNewDetachFalseWithCmd,
true,
false,
+ false,
},
{"good with multiple shorthand params detach first",
containerInfo{
@@ -606,6 +640,7 @@ WantedBy=multi-user.target default.target
genGoodNewDetach("-dti"),
true,
false,
+ false,
},
{"good with multiple shorthand params detach last",
containerInfo{
@@ -622,6 +657,7 @@ WantedBy=multi-user.target default.target
genGoodNewDetach("-tid"),
true,
false,
+ false,
},
{"good with root flags",
containerInfo{
@@ -638,6 +674,7 @@ WantedBy=multi-user.target default.target
goodNewRootFlags,
true,
false,
+ false,
},
{"good with container create",
containerInfo{
@@ -654,6 +691,7 @@ WantedBy=multi-user.target default.target
goodContainerCreate,
true,
false,
+ false,
},
{"good with journald log tag (see #9034)",
containerInfo{
@@ -670,6 +708,7 @@ WantedBy=multi-user.target default.target
goodNewWithJournaldTag,
true,
false,
+ false,
},
{"good with special chars",
containerInfo{
@@ -686,13 +725,15 @@ WantedBy=multi-user.target default.target
goodNewWithSpecialChars,
true,
false,
+ false,
},
}
for _, tt := range tests {
test := tt
t.Run(tt.name, func(t *testing.T) {
opts := entities.GenerateSystemdOptions{
- New: test.new,
+ New: test.new,
+ NoHeader: test.noHeader,
}
got, err := executeContainerTemplate(&test.info, opts)
if (err != nil) != test.wantErr {
diff --git a/pkg/systemd/generate/pods.go b/pkg/systemd/generate/pods.go
index d6ede19af..8c0401278 100644
--- a/pkg/systemd/generate/pods.go
+++ b/pkg/systemd/generate/pods.go
@@ -9,9 +9,9 @@ import (
"text/template"
"time"
- "github.com/containers/podman/v2/libpod"
- "github.com/containers/podman/v2/pkg/domain/entities"
- "github.com/containers/podman/v2/version"
+ "github.com/containers/podman/v3/libpod"
+ "github.com/containers/podman/v3/pkg/domain/entities"
+ "github.com/containers/podman/v3/version"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"github.com/spf13/pflag"
@@ -70,6 +70,8 @@ type podInfo struct {
ExecStop string
// ExecStopPost of the unit.
ExecStopPost string
+ // Removes autogenerated by Podman and timestamp if set to true
+ GenerateNoHeader bool
}
const podTemplate = headerTemplate + `Requires={{{{- range $index, $value := .RequiredServices -}}}}{{{{if $index}}}} {{{{end}}}}{{{{ $value }}}}.service{{{{end}}}}
@@ -162,7 +164,7 @@ func PodUnits(pod *libpod.Pod, options entities.GenerateSystemdOptions) (map[str
}
units[podInfo.ServiceName] = out
for _, info := range containerInfos {
- info.pod = podInfo
+ info.Pod = podInfo
out, err := executeContainerTemplate(info, options)
if err != nil {
return nil, err
@@ -319,6 +321,12 @@ func executePodTemplate(info *podInfo, options entities.GenerateSystemdOptions)
if info.PodmanVersion == "" {
info.PodmanVersion = version.Version.String()
}
+
+ if options.NoHeader {
+ info.GenerateNoHeader = true
+ info.GenerateTimestamp = false
+ }
+
if info.GenerateTimestamp {
info.TimeStamp = fmt.Sprintf("%v", time.Now().Format(time.UnixDate))
}
diff --git a/pkg/systemd/generate/pods_test.go b/pkg/systemd/generate/pods_test.go
index 2b430226b..50c8d4556 100644
--- a/pkg/systemd/generate/pods_test.go
+++ b/pkg/systemd/generate/pods_test.go
@@ -3,7 +3,7 @@ package generate
import (
"testing"
- "github.com/containers/podman/v2/pkg/domain/entities"
+ "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/stretchr/testify/assert"
)
@@ -37,9 +37,11 @@ func TestValidateRestartPolicyPod(t *testing.T) {
}
func TestCreatePodSystemdUnit(t *testing.T) {
- podGood := `# pod-123abc.service
-# autogenerated by Podman CI
-
+ serviceInfo := `# pod-123abc.service
+`
+ headerInfo := `# autogenerated by Podman CI
+`
+ podContent := `
[Unit]
Description=Podman pod-123abc.service
Documentation=man:podman-generate-systemd(1)
@@ -61,6 +63,8 @@ Type=forking
[Install]
WantedBy=multi-user.target default.target
`
+ podGood := serviceInfo + headerInfo + podContent
+ podGoodNoHeaderInfo := serviceInfo + podContent
podGoodNamedNew := `# pod-123abc.service
# autogenerated by Podman CI
@@ -171,11 +175,12 @@ WantedBy=multi-user.target default.target
`
tests := []struct {
- name string
- info podInfo
- want string
- new bool
- wantErr bool
+ name string
+ info podInfo
+ want string
+ new bool
+ noHeader bool
+ wantErr bool
}{
{"pod",
podInfo{
@@ -192,6 +197,24 @@ WantedBy=multi-user.target default.target
podGood,
false,
false,
+ false,
+ },
+ {"pod noHeader",
+ podInfo{
+ Executable: "/usr/bin/podman",
+ ServiceName: "pod-123abc",
+ InfraNameOrID: "jadda-jadda-infra",
+ RestartPolicy: "always",
+ PIDFile: "/run/containers/storage/overlay-containers/639c53578af4d84b8800b4635fa4e680ee80fd67e0e6a2d4eea48d1e3230f401/userdata/conmon.pid",
+ StopTimeout: 42,
+ PodmanVersion: "CI",
+ RequiredServices: []string{"container-1", "container-2"},
+ CreateCommand: []string{"podman", "pod", "create", "--name", "foo", "bar=arg with space"},
+ },
+ podGoodNoHeaderInfo,
+ false,
+ true,
+ false,
},
{"pod with root args",
podInfo{
@@ -208,6 +231,7 @@ WantedBy=multi-user.target default.target
podGood,
false,
false,
+ false,
},
{"pod --new",
podInfo{
@@ -224,6 +248,7 @@ WantedBy=multi-user.target default.target
podGoodNamedNew,
true,
false,
+ false,
},
{"pod --new with root args",
podInfo{
@@ -240,6 +265,7 @@ WantedBy=multi-user.target default.target
podGoodNamedNewWithRootArgs,
true,
false,
+ false,
},
{"pod --new with --replace=false",
podInfo{
@@ -256,6 +282,7 @@ WantedBy=multi-user.target default.target
podGoodNamedNewWithReplaceFalse,
true,
false,
+ false,
},
{"pod --new with double curly braces",
podInfo{
@@ -272,6 +299,7 @@ WantedBy=multi-user.target default.target
podNewLabelWithCurlyBraces,
true,
false,
+ false,
},
}
@@ -279,7 +307,8 @@ WantedBy=multi-user.target default.target
test := tt
t.Run(tt.name, func(t *testing.T) {
opts := entities.GenerateSystemdOptions{
- New: test.new,
+ New: test.new,
+ NoHeader: test.noHeader,
}
got, err := executePodTemplate(&test.info, opts)
if (err != nil) != test.wantErr {
diff --git a/pkg/trust/trust.go b/pkg/trust/trust.go
index a30611b74..18a6a1717 100644
--- a/pkg/trust/trust.go
+++ b/pkg/trust/trust.go
@@ -179,7 +179,6 @@ func CreateTmpFile(dir, pattern string, content []byte) (string, error) {
if _, err := tmpfile.Write(content); err != nil {
return "", err
-
}
return tmpfile.Name(), nil
}
diff --git a/pkg/util/mountOpts.go b/pkg/util/mountOpts.go
index b3a38f286..f13dc94ec 100644
--- a/pkg/util/mountOpts.go
+++ b/pkg/util/mountOpts.go
@@ -25,7 +25,7 @@ type defaultMountOptions struct {
// The sourcePath variable, if not empty, contains a bind mount source.
func ProcessOptions(options []string, isTmpfs bool, sourcePath string) ([]string, error) {
var (
- foundWrite, foundSize, foundProp, foundMode, foundExec, foundSuid, foundDev, foundCopyUp, foundBind, foundZ bool
+ foundWrite, foundSize, foundProp, foundMode, foundExec, foundSuid, foundDev, foundCopyUp, foundBind, foundZ, foundU bool
)
newOptions := make([]string, 0, len(options))
@@ -116,6 +116,11 @@ func ProcessOptions(options []string, isTmpfs bool, sourcePath string) ([]string
return nil, errors.Wrapf(ErrDupeMntOption, "only one of 'z' and 'Z' can be used")
}
foundZ = true
+ case "U":
+ if foundU {
+ return nil, errors.Wrapf(ErrDupeMntOption, "the 'U' option can only be set once")
+ }
+ foundU = true
default:
return nil, errors.Wrapf(ErrBadMntOption, "unknown mount option %q", opt)
}
diff --git a/pkg/util/utils.go b/pkg/util/utils.go
index e0f631eb4..a4c8f3a64 100644
--- a/pkg/util/utils.go
+++ b/pkg/util/utils.go
@@ -16,13 +16,14 @@ import (
"github.com/BurntSushi/toml"
"github.com/containers/common/pkg/config"
"github.com/containers/image/v5/types"
- "github.com/containers/podman/v2/pkg/errorhandling"
- "github.com/containers/podman/v2/pkg/namespaces"
- "github.com/containers/podman/v2/pkg/rootless"
- "github.com/containers/podman/v2/pkg/signal"
+ "github.com/containers/podman/v3/pkg/errorhandling"
+ "github.com/containers/podman/v3/pkg/namespaces"
+ "github.com/containers/podman/v3/pkg/rootless"
+ "github.com/containers/podman/v3/pkg/signal"
"github.com/containers/storage"
"github.com/containers/storage/pkg/idtools"
v1 "github.com/opencontainers/image-spec/specs-go/v1"
+ "github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"golang.org/x/crypto/ssh/terminal"
@@ -388,7 +389,6 @@ func GetKeepIDMapping() (*storage.IDMappingOptions, int, int, error) {
options.HostUIDMapping = false
options.HostGIDMapping = false
-
}
// Simply ignore the setting and do not setup an inner namespace for root as it is a no-op
return &options, uid, gid, nil
@@ -530,9 +530,9 @@ func ParseInputTime(inputTime string) (time.Time, error) {
}
}
- unix_timestamp, err := strconv.ParseInt(inputTime, 10, 64)
+ unixTimestamp, err := strconv.ParseInt(inputTime, 10, 64)
if err == nil {
- return time.Unix(unix_timestamp, 0), nil
+ return time.Unix(unixTimestamp, 0), nil
}
// input might be a duration
@@ -693,3 +693,16 @@ func CoresToPeriodAndQuota(cores float64) (uint64, int64) {
func PeriodAndQuotaToCores(period uint64, quota int64) float64 {
return float64(quota) / float64(period)
}
+
+// IDtoolsToRuntimeSpec converts idtools ID mapping to the one of the runtime spec.
+func IDtoolsToRuntimeSpec(idMaps []idtools.IDMap) (convertedIDMap []specs.LinuxIDMapping) {
+ for _, idmap := range idMaps {
+ tempIDMap := specs.LinuxIDMapping{
+ ContainerID: uint32(idmap.ContainerID),
+ HostID: uint32(idmap.HostID),
+ Size: uint32(idmap.Size),
+ }
+ convertedIDMap = append(convertedIDMap, tempIDMap)
+ }
+ return convertedIDMap
+}
diff --git a/pkg/util/utils_supported.go b/pkg/util/utils_supported.go
index 21022eb7c..cb992d8b6 100644
--- a/pkg/util/utils_supported.go
+++ b/pkg/util/utils_supported.go
@@ -11,7 +11,7 @@ import (
"path/filepath"
"syscall"
- "github.com/containers/podman/v2/pkg/rootless"
+ "github.com/containers/podman/v3/pkg/rootless"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)