Skip to content

Commit cb9dfbc

Browse files
author
Laura
authored
Merge pull request #122 from globocom/develop
Develop
2 parents f4549e4 + 082014a commit cb9dfbc

File tree

5 files changed

+334
-184
lines changed

5 files changed

+334
-184
lines changed

CadVlan/Environment/templates/v3/cidr.html

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,18 @@
126126
</option>
127127
</select>
128128

129+
<label for="maskv4"
130+
style="margin-left: 10px;">
131+
Máscara da rede:
132+
</label>
133+
<input name="maskv4"
134+
data-form-field="maskv4"
135+
style="width: 26px;"
136+
id="maskv4">
137+
129138
<label for="prefixv4"
130139
style="margin-left: 10px;">
131-
Máscara da subnet:
140+
Máscara da subrede:
132141
</label>
133142
<input name="prefixv4"
134143
data-form-field="prefixv4"
@@ -150,14 +159,24 @@
150159
</option>
151160
</select>
152161

162+
<label for="maskv6"
163+
style="margin-left: 10px;">
164+
Máscara da rede:
165+
</label>
166+
<input name="maskv6"
167+
data-form-field="maskv6"
168+
style="width: 26px;"
169+
id="maskv6">
170+
153171
<label for="prefixv6"
154172
style="margin-left: 10px;">
155-
Máscara da subnet:
173+
Máscara da subrede:
156174
</label>
157175
<input name="prefixv6"
158176
data-form-field="prefixv6"
159177
style="width: 26px;"
160178
id="prefixv6">
179+
161180
</div>
162181

163182
<div id="prefix"

CadVlan/Environment/views_v3.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ def ajax_autocomplete_environment_vlan(request):
6868
}
6969

7070
envs = client.create_api_environment().search(
71-
fields=["id", "name", "min_num_vlan_1", "max_num_vlan_1"],
71+
fields=["id", "name", "min_num_vlan_1", "max_num_vlan_1", "min_num_vlan_2", "max_num_vlan_2"],
7272
search=data)
7373
env_list = cache_environment_list(envs.get('environments'))
7474

@@ -365,6 +365,11 @@ def allocate_cidr(request, id_environment):
365365
v4 = request.POST.get('v4_auto')
366366
v6 = request.POST.get('v6_auto')
367367
network_type = request.POST.get('net_type')
368+
network_mask4 = request.POST.get('maskv4') \
369+
if request.POST.get('maskv4') else None
370+
network_mask6 = request.POST.get('maskv6') \
371+
if request.POST.get('maskv6') else None
372+
368373
cidr = list()
369374

370375
if int(v4):
@@ -375,7 +380,8 @@ def allocate_cidr(request, id_environment):
375380
cidrv4 = dict(ip_version='v4',
376381
network_type=network_type,
377382
subnet_mask=prefix_v4,
378-
environment=int(id_environment))
383+
environment=int(id_environment),
384+
network_mask=network_mask4)
379385
cidr.append(cidrv4)
380386
if int(v6):
381387
prefix_v6 = request.POST.get('prefixv6')
@@ -384,7 +390,8 @@ def allocate_cidr(request, id_environment):
384390
cidrv6 = dict(ip_version='v6',
385391
network_type=network_type,
386392
subnet_mask=str(prefix_v6),
387-
environment=int(id_environment))
393+
environment=int(id_environment),
394+
network_mask=network_mask6)
388395
cidr.append(cidrv6)
389396

390397
if not cidr:

CadVlan/EquipInterface/views_v3.py

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -802,16 +802,16 @@ def add_channel_(request):
802802
envs = client.create_api_environment().search(
803803
fields=["name", "id"], search=data)
804804

805-
env_id = None
806805
envs_vlans = list()
806+
807807
for e, v in zip(request.POST.getlist('environment'), request.POST.getlist('rangevlan')):
808-
for obj in envs.get('environments'):
809-
if obj.get('name') == e:
810-
env_id = obj.get('id')
811-
if env_id:
808+
try:
809+
env_id = int(e.split(" ")[0])
812810
group = dict(env=env_id, vlans=v)
813811
envs_vlans.append(group)
814-
812+
except:
813+
messages.add_message(request, messages.WARNING,
814+
"Os ambientes não foram associados ao channel.")
815815
channel = {
816816
'name': request.POST.get('channelnumber'),
817817
'lacp': True if int(request.POST.get('lacp_yes')) else False,
@@ -1080,9 +1080,7 @@ def dissociate_channel_interface(request, channel_id, interface_id):
10801080
sw_ids = list()
10811081
interfaces = client.create_api_interface_request().search(
10821082
search=data, fields=fields_get).get('interfaces')
1083-
interface_obj = interfaces[0]
1084-
for i in interfaces:
1085-
sw_ids.append(int(i.get('id')))
1083+
10861084
except NetworkAPIClientError as e:
10871085
logger.error(e)
10881086
messages.add_message(request, messages.WARNING,
@@ -1091,6 +1089,15 @@ def dissociate_channel_interface(request, channel_id, interface_id):
10911089
'HTTP_REFERER') else reverse('interface.list')
10921090
return HttpResponseRedirect(url)
10931091

1092+
# Channel must be deleted if has only one interface
1093+
if len(interfaces) <= 1:
1094+
client.create_api_interface_request().remove_channel([channel_id])
1095+
return HttpResponseRedirect(reverse("interface.edit", args=[interface_id]))
1096+
1097+
interface_obj = interfaces[0]
1098+
for i in interfaces:
1099+
sw_ids.append(int(i.get('id')))
1100+
10941101
sw_ids.remove(int(interface_id))
10951102

10961103
data["asorting_cols"] = ["id"]

0 commit comments

Comments
 (0)