Revision b0cda6f9
b/snf-cyclades-app/synnefo/neutron/models_factory.py | ||
---|---|---|
1 |
import factory |
|
2 |
import models |
|
3 |
|
|
4 |
def prefix_seq(x): |
|
5 |
return lambda n: x + '-{0}'.format(n) |
|
6 |
|
|
7 |
def user_seq(): |
|
8 |
return lambda n: 'user-{0}.example.com'.format(n) |
|
9 |
|
|
10 |
|
|
11 |
def round_seq(x): |
|
12 |
size = len(x) |
|
13 |
return lambda n: x[int(n) % size] |
|
14 |
|
|
15 |
|
|
16 |
def round_seq_first(x): |
|
17 |
size = len(x) |
|
18 |
return lambda n: x[int(n) % size][0] |
|
19 |
|
|
20 |
|
|
21 |
|
|
22 |
|
|
23 |
|
|
24 |
class NetworkFactory(factory.DjangoModelFactory): |
|
25 |
FACTORY_FOR = models.Network |
|
26 |
|
|
27 |
name = factory.Sequence(prefix_seq('network')) |
|
28 |
userid = factory.Sequence(user_seq()) |
|
29 |
flavor = factory.Sequence(round_seq(models.Network.FLAVORS.keys())) |
|
30 |
mode = factory.LazyAttribute(lambda a: |
|
31 |
models.Network.FLAVORS[a.flavor]['mode']) |
|
32 |
link = factory.Sequence(prefix_seq('link')) |
|
33 |
mac_prefix = 'aa:00:0' |
|
34 |
tags = factory.LazyAttribute(lambda a: |
|
35 |
models.Network.FLAVORS[a.flavor]['tags']) |
|
36 |
public = False |
|
37 |
deleted = False |
|
38 |
state = factory.Sequence(round_seq_first(models.Network.OPER_STATES)) |
|
39 |
|
|
40 |
|
b/snf-cyclades-app/synnefo/neutron/network_views.py | ||
---|---|---|
24 | 24 |
#return HttpResponse("in network get") |
25 | 25 |
return list_networks(request) |
26 | 26 |
elif request.method == 'POST': |
27 |
#return create_network(request)
|
|
28 |
return HttpResponse("in network post") |
|
27 |
return create_network(request) |
|
28 |
#return HttpResponse("in network post")
|
|
29 | 29 |
else: |
30 | 30 |
return api.api_method_not_allowed(request) |
31 | 31 |
|
... | ... | |
38 | 38 |
return delete_network(request,offset) |
39 | 39 |
#return HttpResponse("in network det delete") |
40 | 40 |
elif request.method == 'PUT': |
41 |
#return update_network(request,offset)
|
|
42 |
return HttpResponse("in network det put") |
|
41 |
return update_network(request,offset) |
|
42 |
#return HttpResponse("in network det put")
|
|
43 | 43 |
else: |
44 | 44 |
return api.api_method_not_allowed(request) |
45 | 45 |
|
... | ... | |
77 | 77 |
|
78 | 78 |
2 more attirbutes for administrative users (not supported) |
79 | 79 |
''' |
80 |
|
|
81 | 80 |
try: |
82 | 81 |
user_id = request.user_uniq |
83 | 82 |
if request.raw_post_data: |
... | ... | |
109 | 108 |
flavor = "MAC_FILTERED" # this is the default FIX ME |
110 | 109 |
|
111 | 110 |
try: |
112 |
mode, link, mac_prefix, tags = util.values_from_flavor(flavor) |
|
113 |
validate_mac(mac_prefix + "0:00:00:00") |
|
111 |
#mode, link, mac_prefix, tags = util.values_from_flavor(flavor) |
|
112 |
|
|
113 |
#validate_mac(mac_prefix + "0:00:00:00") |
|
114 | 114 |
network = Network.objects.create( |
115 | 115 |
name=name, |
116 | 116 |
userid=user_id, |
117 | 117 |
flavor=flavor, |
118 |
mode=mode, |
|
119 |
link=link, |
|
120 |
mac_prefix=mac_prefix, |
|
121 |
tags=tags, |
|
118 |
# mode=mode,
|
|
119 |
# link=link,
|
|
120 |
# mac_prefix=mac_prefix,
|
|
121 |
# tags=tags,
|
|
122 | 122 |
action='CREATE', |
123 | 123 |
state='ACTIVE') |
124 | 124 |
except EmptyPool: |
b/snf-cyclades-app/synnefo/neutron/tests/api.py | ||
---|---|---|
4 | 4 |
from synnefo.lib.services import get_service_path |
5 | 5 |
from synnefo.lib import join_urls |
6 | 6 |
|
7 |
import synnefo.neutron.models_factory as mf |
|
7 | 8 |
|
8 | 9 |
NEUTRON_URL = get_service_path(cyclades_services, "neutron", "v2.0") |
9 | 10 |
NETWORKS_URL = join_urls(NEUTRON_URL, "networks/") |
... | ... | |
11 | 12 |
|
12 | 13 |
|
13 | 14 |
class NetworkTest(BaseAPITest): |
15 |
|
|
14 | 16 |
def test_list_networks(self): |
15 | 17 |
response = self.get(NETWORKS_URL) |
16 | 18 |
self.assertSuccess(response) |
... | ... | |
18 | 20 |
self.assertEqual(networks, {'networks': []}) |
19 | 21 |
|
20 | 22 |
def test_create_network(self): |
21 |
request = {} |
|
22 |
response = self.post(NETWORKS_URL, json.dumps(request), "json") |
|
23 |
request = {"network": |
|
24 |
{"name": "sample_network"} |
|
25 |
} |
|
26 |
response = self.post(NETWORKS_URL, params=json.dumps(request)) |
|
23 | 27 |
code = response.status_code |
24 |
self.assertEqual(code, 501) |
|
28 |
self.assertEqual(code, 201) |
|
29 |
|
|
25 | 30 |
|
26 | 31 |
def test_get_unfound_network(self): |
27 |
url = join_urls(NETWORKS_URL, "123")
|
|
32 |
url = join_urls(NETWORKS_URL,"123") |
|
28 | 33 |
response = self.get(url) |
29 | 34 |
self.assertItemNotFound(response) |
30 | 35 |
|
36 |
def test_get_network(self): |
|
37 |
test_net = mf.NetworkFactory.create() |
|
38 |
url = join_urls(NETWORKS_URL,str(test_net.id)) |
|
39 |
response = self.get(url, user=test_net.userid) |
|
40 |
self.assertEqual(response.status_code, 200) |
|
41 |
|
|
31 | 42 |
def test_delete_unfound_network(self): |
32 |
url = join_urls(NETWORKS_URL, "123") |
|
43 |
url = join_urls(NETWORKS_URL,"123") |
|
44 |
response = self.delete(url) |
|
45 |
self.assertItemNotFound(response) |
|
46 |
|
|
47 |
def test_delete_network(self): |
|
48 |
test_net = mf.NetworkFactory.create() |
|
49 |
url = join_urls(NETWORKS_URL,str(test_net.id)) |
|
50 |
response = self.delete(url, user=test_net.userid) |
|
51 |
self.assertEqual(response.status_code, 204) |
|
52 |
|
|
53 |
def test_put_unfound_network(self): |
|
54 |
url = join_urls(NETWORKS_URL,"123") |
|
33 | 55 |
response = self.delete(url) |
34 | 56 |
self.assertItemNotFound(response) |
35 | 57 |
|
36 |
def marios(self): |
|
37 |
print "hello world" |
|
58 |
def test_put_network(self): |
|
59 |
test_net = mf.NetworkFactory.create() |
|
60 |
url = join_urls(NETWORKS_URL,str(test_net.id)) |
|
61 |
request = {"network": |
|
62 |
{"name": "new_name"} |
|
63 |
} |
|
64 |
response = self.put(url,params=json.dumps(request),user=test_net.userid) |
|
65 |
self.assertEqual(response.status_code, 200) |
|
38 | 66 |
|
67 |
def test_put_network_wrong(self): |
|
68 |
test_net = mf.NetworkFactory.create() |
|
69 |
url = join_urls(NETWORKS_URL,str(test_net.id)) |
|
70 |
request = {"network": |
|
71 |
{"wronng_field": "new_name"} |
|
72 |
} |
|
73 |
response = self.put(url,params=json.dumps(request),user=test_net.userid) |
|
74 |
self.assertEqual(response.status_code, 400) |
|
39 | 75 |
|
40 | 76 |
class SubnetTest(BaseAPITest): |
41 | 77 |
def test_list_subnets(self): |
Also available in: Unified diff