Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filter does not work for /networks REST API #9526

Closed
linggao opened this issue Feb 25, 2021 · 5 comments · Fixed by #9531
Closed

Filter does not work for /networks REST API #9526

linggao opened this issue Feb 25, 2021 · 5 comments · Fixed by #9531
Labels
kind/bug Categorizes issue or PR as related to a bug. locked - please file new issue/PR Assist humans wanting to comment on an old issue or PR with locked comments.

Comments

@linggao
Copy link

linggao commented Feb 25, 2021

Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)

/kind bug

Description
Filtering networks by name using REST API always returns an empty array. It works for docker.

Steps to reproduce the issue:

  1. podman network create foo-a

  2. curl -gG -sSLw "%{http_code}" --unix-socket /var/run/podman/podman.sock http://localhost/networks --data-urlencode 'filters={"name":{"foo-a":true}}'

Describe the results you received:

[]
200

Describe the results you expected:

[
  {
    "Name": "foo-a",
    "Id": "57e0f0d53a7862bb79cc1b3c81fef66672df059e38e763395faa79a33568447f",
    "Created": "2021-02-25T17:05:09.084706711-06:00",
    "Scope": "local",
    "Driver": "bridge",
    "EnableIPv6": false,
    "IPAM": {
      "Driver": "default",
      "Options": {},
      "Config": [
        {
          "Subnet": "192.168.16.0/20",
          "Gateway": "192.168.16.1"
        }
      ]
    },
    "Internal": false,
    "Attachable": false,
    "Ingress": false,
    "ConfigFrom": {
      "Network": ""
    },
    "ConfigOnly": false,
    "Containers": {},
    "Options": {},
    "Labels": {}
  }
]
200

Additional information you deem important (e.g. issue happens only occasionally):
CLI works:
podman network ls -f 'name=foo-a'

Output of podman version:

(Version:      3.1.0-dev
API Version:  3.0.0
Go Version:   go1.14.12
Git Commit:   1702cbc6917f431bcc65d6c5bdc6fcf99231977a-dirty
Built:        Wed Feb 24 09:13:30 2021
OS/Arch:      linux/amd64

Output of podman info --debug:

host:
  arch: amd64
  buildahVersion: 1.19.6
  cgroupManager: systemd
  cgroupVersion: v1
  conmon:
    package: Unknown
    path: /usr/local/libexec/podman/conmon
    version: 'conmon version 2.0.27-dev, commit: 7310bf13319ee8ed50799b202509bedc27b36cf8'
  cpus: 2
  distribution:
    distribution: '"rhel"'
    version: "8.3"
  eventLogger: file
  hostname: lingvs4.dev.edge-fabric.com
  idMappings:
    gidmap: null
    uidmap: null
  kernel: 4.18.0-240.15.1.el8_3.x86_64
  linkmode: dynamic
  memFree: 3036823552
  memTotal: 8342470656
  ociRuntime:
    name: runc
    package: Unknown
    path: /usr/bin/runc
    version: |-
      runc version 1.0.0-rc93+dev
      commit: f245a1d1edbf545549e5a16106cf1aec356a3c7d
      spec: 1.0.2-dev
      go: go1.14.12
      libseccomp: 2.4.3
  os: linux
  remoteSocket:
    exists: true
    path: /run/podman/podman.sock
  security:
    apparmorEnabled: false
    capabilities: CAP_AUDIT_WRITE,CAP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_MKNOD,CAP_NET_BIND_SERVICE,CAP_NET_RAW,CAP_SETFCAP,CAP_SETGID,CAP_SETPCAP,CAP_SETUID,CAP_SYS_CHROOT
    rootless: false
    seccompEnabled: true
    selinuxEnabled: true
  slirp4netns:
    executable: ""
    package: ""
    version: ""
  swapFree: 2146758656
  swapTotal: 2146758656
  uptime: 176h 1m 59.52s (Approximately 7.33 days)
registries:
  search:
  - registry.access.redhat.com
  - registry.redhat.io
  - docker.io
store:
  configFile: /etc/containers/storage.conf
  containerStore:
    number: 3
    paused: 0
    running: 3
    stopped: 0
  graphDriverName: overlay
  graphOptions:
    overlay.mountopt: nodev,metacopy=on
  graphRoot: /var/lib/containers/storage
  graphStatus:
    Backing Filesystem: extfs
    Native Overlay Diff: "false"
    Supports d_type: "true"
    Using metacopy: "true"
  imageStore:
    number: 9
  runRoot: /var/run/containers/storage
  volumePath: /var/lib/containers/storage/volumes
version:
  APIVersion: 3.0.0
  Built: 1614179610
  BuiltTime: Wed Feb 24 09:13:30 2021
  GitCommit: 1702cbc6917f431bcc65d6c5bdc6fcf99231977a-dirty
  GoVersion: go1.14.12
  OsArch: linux/amd64
  Version: 3.1.0-dev

Package info (e.g. output of rpm -q podman or apt list podman):

podman is built locally.

Have you tested with the latest version of Podman and have you checked the Podman Troubleshooting Guide?

Yes

Additional environment details (AWS, VirtualBox, physical, etc.):

@openshift-ci-robot openshift-ci-robot added the kind/bug Categorizes issue or PR as related to a bug. label Feb 25, 2021
@Luap99
Copy link
Member

Luap99 commented Feb 26, 2021

The filters have to be a map[string][]string so you should use {"name":["foo-a"]}. https://docs.docker.com/engine/api/v1.41/#operation/NetworkList

@linggao
Copy link
Author

linggao commented Feb 26, 2021

@Luap99 thanks for pointing out. We are using go-dockerclient, it sends the wrong structure. https://github.com/fsouza/go-dockerclient/blob/main/network.go#L65. It must be old format. Docker REST APIs supports both map[string]map[string]bool and map[string][]string), I guess for backward compatibility.
Please close this issue. We have to handle it on our side somehow. Thanks again.

@Luap99
Copy link
Member

Luap99 commented Feb 26, 2021

I think this is a valid issue if docker still accept the old format we should allow this too.

@linggao
Copy link
Author

linggao commented Feb 26, 2021

@Luap99 it will be great if podman can add this support.

Luap99 pushed a commit to Luap99/libpod that referenced this issue Feb 26, 2021
Docker allows both the old `map[string]map[string]bool`
and the newer `map[string][]string` for the filter param
so we should too.

Fixes containers#9526

Signed-off-by: Paul Holzinger <[email protected]>
@Luap99
Copy link
Member

Luap99 commented Feb 26, 2021

PR #9531

@github-actions github-actions bot added the locked - please file new issue/PR Assist humans wanting to comment on an old issue or PR with locked comments. label Sep 22, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 22, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
kind/bug Categorizes issue or PR as related to a bug. locked - please file new issue/PR Assist humans wanting to comment on an old issue or PR with locked comments.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants