Revision a3d99af0 snf-cyclades-app/synnefo/api/test/floating_ips.py
b/snf-cyclades-app/synnefo/api/test/floating_ips.py | ||
---|---|---|
108 | 108 |
response = self.post(URL, "test_user", json.dumps(request), "json") |
109 | 109 |
self.assertEqual(response.status_code, 413) |
110 | 110 |
|
111 |
def test_reserve_with_address(self): |
|
112 |
net = NetworkFactory(userid="test_user", subnet="192.168.2.0/24", |
|
113 |
gateway=None, public=True) |
|
114 |
request = {'pool': net.id, "address": "192.168.2.10"} |
|
115 |
with mocked_quotaholder(): |
|
116 |
response = self.post(URL, "test_user", json.dumps(request), "json") |
|
117 |
self.assertSuccess(response) |
|
118 |
self.assertEqual(json.loads(response.content)["floating_ip"], |
|
119 |
{"instance_id": None, "ip": "192.168.2.10", |
|
120 |
"fixed_ip": None, "id": "1", "pool": "1"}) |
|
121 |
|
|
122 |
# Already reserved |
|
123 |
FloatingIPFactory(network=net, ipv4="192.168.2.3") |
|
124 |
request = {'pool': net.id, "address": "192.168.2.3"} |
|
125 |
with mocked_quotaholder(): |
|
126 |
response = self.post(URL, "test_user", json.dumps(request), "json") |
|
127 |
self.assertFault(response, 409, "conflict") |
|
128 |
|
|
129 |
# Already used |
|
130 |
pool = net.get_pool() |
|
131 |
pool.reserve("192.168.2.5") |
|
132 |
pool.save() |
|
133 |
# ..by another_user |
|
134 |
nic = NetworkInterfaceFactory(network=net, ipv4="192.168.2.5", |
|
135 |
machine__userid="test2") |
|
136 |
request = {'pool': net.id, "address": "192.168.2.5"} |
|
137 |
with mocked_quotaholder(): |
|
138 |
response = self.post(URL, "test_user", json.dumps(request), "json") |
|
139 |
self.assertFault(response, 409, "conflict") |
|
140 |
# ..and by him |
|
141 |
nic.delete() |
|
142 |
NetworkInterfaceFactory(network=net, ipv4="192.168.2.5", |
|
143 |
machine__userid="test_user") |
|
144 |
request = {'pool': net.id, "address": "192.168.2.5"} |
|
145 |
with mocked_quotaholder(): |
|
146 |
response = self.post(URL, "test_user", json.dumps(request), "json") |
|
147 |
self.assertSuccess(response) |
|
148 |
|
|
149 |
# Address out of pool |
|
150 |
request = {'pool': net.id, "address": "192.168.3.5"} |
|
151 |
with mocked_quotaholder(): |
|
152 |
response = self.post(URL, "test_user", json.dumps(request), "json") |
|
153 |
self.assertBadRequest(response) |
|
154 |
|
|
111 | 155 |
def test_release_in_use(self): |
112 | 156 |
ip = FloatingIPFactory() |
113 | 157 |
vm = ip.machine |
Also available in: Unified diff