Merge pull request #8601 from jwhonce/jira/RUN-1106-networks

Jira RUN-1106 Network handlers updates
This commit is contained in:
OpenShift Merge Robot
2020-12-04 17:45:58 -05:00
committed by GitHub
2 changed files with 48 additions and 4 deletions

View File

@ -271,11 +271,16 @@ func CreateNetwork(w http.ResponseWriter, r *http.Request) {
return return
} }
net, err := getNetworkResourceByNameOrID(name, runtime, nil)
if err != nil {
utils.InternalServerError(w, err)
return
}
body := struct { body := struct {
Id string Id string
Warning []string Warning []string
}{ }{
Id: name, Id: net.ID,
} }
utils.WriteResponse(w, http.StatusCreated, body) utils.WriteResponse(w, http.StatusCreated, body)
} }
@ -320,7 +325,7 @@ func RemoveNetwork(w http.ResponseWriter, r *http.Request) {
return return
} }
utils.WriteResponse(w, http.StatusNoContent, "") utils.WriteResponse(w, http.StatusNoContent, nil)
} }
// Connect adds a container to a network // Connect adds a container to a network

View File

@ -1,11 +1,13 @@
import json import json
import random
import string
import subprocess import subprocess
import sys
import time
import unittest import unittest
from multiprocessing import Process from multiprocessing import Process
import requests import requests
import sys
import time
from dateutil.parser import parse from dateutil.parser import parse
from test.apiv2.rest_api import Podman from test.apiv2.rest_api import Podman
@ -384,6 +386,43 @@ class TestApi(unittest.TestCase):
for k in required_keys: for k in required_keys:
self.assertIn(k, o) self.assertIn(k, o)
def test_network_compat(self):
name = "Network_" + "".join(random.choice(string.ascii_letters) for i in range(10))
# Cannot test for 0 existing networks because default "podman" network always exists
create = requests.post(PODMAN_URL + "/v1.40/networks/create", json={"Name": name})
self.assertEqual(create.status_code, 201, create.content)
obj = json.loads(create.content)
self.assertIn(type(obj), (dict,))
self.assertIn("Id", obj)
ident = obj["Id"]
self.assertNotEqual(name, ident)
ls = requests.get(PODMAN_URL + "/v1.40/networks")
self.assertEqual(ls.status_code, 200, ls.content)
objs = json.loads(ls.content)
self.assertIn(type(objs), (list,))
found = False
for network in objs:
if network["Name"] == name:
found = True
self.assertTrue(found, f"Network {name} not found")
inspect = requests.get(PODMAN_URL + f"/v1.40/networks/{ident}")
self.assertEqual(inspect.status_code, 200, inspect.content)
obj = json.loads(create.content)
self.assertIn(type(obj), (dict,))
inspect = requests.delete(PODMAN_URL + f"/v1.40/networks/{ident}")
self.assertEqual(inspect.status_code, 204, inspect.content)
inspect = requests.get(PODMAN_URL + f"/v1.40/networks/{ident}")
self.assertEqual(inspect.status_code, 404, inspect.content)
prune = requests.post(PODMAN_URL + "/v1.40/networks/prune")
self.assertEqual(prune.status_code, 405, prune.content)
if __name__ == "__main__": if __name__ == "__main__":
unittest.main() unittest.main()