Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
CIRCLE
/
cloud
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
94
Merge Requests
10
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
A prog2-höz tartozó friss repo anyagok itt elérhetőek:
https://git.iit.bme.hu/
Commit
26220312
authored
Aug 24, 2013
by
Kálmán Viktor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
network: object deletion
parent
3f4f880d
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
281 additions
and
50 deletions
+281
-50
network/templates/network/base.html
+16
-9
network/templates/network/blacklist-edit.html
+1
-0
network/templates/network/confirm/base_delete.html
+43
-0
network/templates/network/confirm/remove_host_group.html
+1
-1
network/templates/network/confirm/rule_delete.html
+0
-16
network/templates/network/domain-edit.html
+2
-1
network/templates/network/group-edit.html
+2
-1
network/templates/network/host-edit.html
+2
-2
network/templates/network/record-edit.html
+1
-0
network/templates/network/rule-edit.html
+1
-0
network/templates/network/vlan-edit.html
+2
-1
network/templates/network/vlan-group-edit.html
+2
-1
network/urls.py
+21
-7
network/views.py
+187
-11
No files found.
network/templates/network/base.html
View file @
26220312
...
...
@@ -25,6 +25,10 @@
footer
{
margin-top
:
40px
;
}
.messagelist
{
margin-top
:
25px
;
}
</style>
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
...
...
@@ -50,16 +54,19 @@
</ul>
</div>
</div>
{% block messages %}
{% if messages %}
<ul
class=
"messagelist"
>
{% for message in messages %}
<li
{%
if
message
.
tags
%}
class=
"{{ message.tags }}"
{%
endif
%}
>
{{ message }}
</li>
{% endfor %}
</ul>
{% endif %}
{% endblock messages %}
<div
class=
"container"
>
{% block messages %}
{% if messages %}
<div
class=
"messagelist"
>
{% for message in messages %}
<div
class=
"alert
{% if message.tags %} alert-{% if message.tags == "
error
"
%}
danger
{%
else
%}{{
message
.
tags
}}{%
endif
%}{%
endif
%}"
>
{{ message }}
</div>
{% endfor %}
</div>
{% endif %}
{% endblock messages %}
{% block content %}
<div
class=
"alert-block"
>
This is an abstract base template.
</div>
{% endblock %}
...
...
network/templates/network/blacklist-edit.html
View file @
26220312
...
...
@@ -7,6 +7,7 @@
{% block content %}
<div
class=
"page-header"
>
<a
href=
"{% url network.blacklist_delete pk=blacklist_pk %}"
class=
"btn btn-danger pull-right"
><i
class=
"icon-remove-sign"
></i>
Delete this blaclist
</a>
<h1>
{{ form.ipv4.value }}
<small>
{{ form.type.value }}
</small></h1>
</div>
<div
class=
"row"
>
...
...
network/templates/network/confirm/base_delete.html
0 → 100644
View file @
26220312
{% extends "network/base.html" %}
{% load i18n %}
{% load l10n %}
{% block content %}
<div
class=
"page-header"
>
<h2>
Are you sure you want to delete
<strong>
"{% if to_delete %}{{ to_delete }}{% else %}{{ object }}{% endif %}"
</strong>
?
</h2>
</div>
<form
action=
""
method=
"post"
>
{% csrf_token %}
{% if deps %}
<div
class=
"alert alert-warning"
>
This action also
<strong>
removes
</strong>
the following
{% for dep in deps %}
<div
class=
"alert"
>
<strong>
{{ dep.name }}
</strong>
<ul
class=
""
>
{{ dep.data|unordered_list }}
</ul>
</div>
{% endfor %}
</div>
{% else %}
<div
class=
"alert alert-success"
>
No dependencies, safe to delete!
</div>
{% endif %}
<form
action=
""
method=
"post"
>
{% csrf_token %}
<input
type=
"hidden"
value=
"{{ request.GET.from }}"
name=
"next"
/>
{% if confirmation %}
<label><p>
If you are really sure, type in the object's name!
<input
type=
"text"
name=
"confirm"
class=
"form-control"
placeholder=
"{{ object }}"
/>
</p></label>
{% else %}
{% endif %}
<input
type=
"submit"
class=
"btn btn-danger btn-lg pull-right"
value=
"Yes delete it!"
/>
</form>
{% endblock %}
network/templates/network/confirm/remove_host_group.html
View file @
26220312
...
...
@@ -3,7 +3,7 @@
{% load l10n %}
{% block content %}
<div
class=
"page-head
ing"
>
<div
class=
"page-head
er"
>
<h1>
Remove
<small></small></h1>
</div>
<form
action=
""
method=
"post"
>
{% csrf_token %}
...
...
network/templates/network/confirm/rule_delete.html
deleted
100644 → 0
View file @
3f4f880d
{% extends "network/base.html" %}
{% load i18n %}
{% load l10n %}
{% block content %}
<div
class=
"page-heading"
>
<h1>
Delete
<small>
delete this rule
</small></h1>
</div>
<form
action=
""
method=
"post"
>
{% csrf_token %}
<p>
Are you sure you want to delete
<strong>
"{{ object }}"
</strong>
?
</p>
<input
type=
"hidden"
value=
"{{ request.GET.from }}"
name=
"next"
/>
<a
href=
"{{ request.GET.from }}"
class=
"btn btn-info"
>
Back
</a>
<input
type=
"submit"
class=
"btn btn-danger"
value=
"Confirm"
/>
</form>
{% endblock %}
network/templates/network/domain-edit.html
View file @
26220312
...
...
@@ -7,7 +7,8 @@
{% block content %}
<div
class=
"page-header"
>
<h1>
{{ form.name.value }}
<small></small></h1>
<a
href=
"{% url network.domain_delete pk=domain_pk %}"
class=
"btn btn-danger pull-right"
><i
class=
"icon-remove-sign"
></i>
Delete this domain
</a>
<h1>
{{ form.name.value }}
<small></small></h1>
</div>
<div
class=
"row"
>
...
...
network/templates/network/group-edit.html
View file @
26220312
...
...
@@ -7,7 +7,8 @@
{% block content %}
<div
class=
"page-header"
>
<h1>
{{ form.name.value }}
<small>
details of group
</small></h1>
<a
href=
"{% url network.group_delete pk=group.pk %}"
class=
"btn btn-danger pull-right"
><i
class=
"icon-remove-sign"
></i>
Delete this group
</a>
<h1>
{{ form.name.value }}
<small>
details of group
</small></h1>
</div>
<div
class=
"row"
>
...
...
network/templates/network/host-edit.html
View file @
26220312
...
...
@@ -7,10 +7,10 @@
{% block content %}
<div
class=
"page-header"
>
<h1>
{{ form.hostname.value }}
<small>
details of host
</small></h1>
<a
href=
"{% url network.host_delete pk=host_pk%}"
class=
"btn btn-danger pull-right"
><i
class=
"icon-remove-sign"
></i>
Delete this host
</a>
<h1>
{{ form.hostname.value }}
<small>
details of host
</small></h1>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-8"
>
{% crispy form %}
...
...
network/templates/network/record-edit.html
View file @
26220312
...
...
@@ -7,6 +7,7 @@
{% block content %}
<div
class=
"page-header"
>
<a
href=
"{% url network.record_delete pk=record_pk %}"
class=
"btn btn-danger pull-right"
><i
class=
"icon-remove-sign"
></i>
Delete this record
</a>
<h1>
{{ fqdn }}
<small>
details of record
</small></h1>
</div>
...
...
network/templates/network/rule-edit.html
View file @
26220312
...
...
@@ -7,6 +7,7 @@
{% block content %}
<div
class=
"page-header"
>
<a
href=
"{% url network.rule_delete pk=rule.pk %}"
class=
"btn btn-danger pull-right"
><i
class=
"icon-remove-sign"
></i>
Delete this rule
</a>
<h3>
{% with rule as record %}
{% include "network/columns/host-rule.html" %}
...
...
network/templates/network/vlan-edit.html
View file @
26220312
...
...
@@ -7,7 +7,8 @@
{% block content %}
<div
class=
"page-header"
>
<h1>
{{ form.name.value }}
<small>
details of vlan
</small></h1>
<a
href=
"{% url network.vlan_delete vid=vlan_vid %}"
class=
"btn btn-danger pull-right"
><i
class=
"icon-remove-sign"
></i>
Delete this vlan
</a>
<h1>
{{ form.name.value }}
<small>
details of vlan
</small></h1>
</div>
<div
class=
"row"
>
...
...
network/templates/network/vlan-group-edit.html
View file @
26220312
...
...
@@ -7,7 +7,8 @@
{% block content %}
<div
class=
"page-header"
>
<h1>
{{ form.name.value }}
<small>
details of vlan group
</small></h1>
<a
href=
"{% url network.vlangroup_delete pk=vlangroup_pk %}"
class=
"btn btn-danger pull-right"
><i
class=
"icon-remove-sign"
></i>
Delete this group
</a>
<h1>
{{ form.name.value }}
<small>
details of vlan group
</small></h1>
</div>
<div
class=
"row"
>
...
...
network/urls.py
View file @
26220312
from
django.conf.urls
import
patterns
,
url
from
.views
import
(
IndexView
,
HostList
,
HostDetail
,
HostCreate
,
VlanList
,
VlanDetail
,
DomainList
,
DomainDetail
,
GroupList
,
GroupDetail
,
RecordList
,
RecordDetail
,
RecordCreate
,
BlacklistList
,
BlacklistDetail
,
HostList
,
HostDetail
,
HostCreate
,
HostDelete
,
VlanList
,
VlanDetail
,
VlanDelete
,
DomainList
,
DomainDetail
,
DomainDelete
,
GroupList
,
GroupDetail
,
GroupDelete
,
RecordList
,
RecordDetail
,
RecordCreate
,
RecordDelete
,
BlacklistList
,
BlacklistDetail
,
BlacklistDelete
,
RuleList
,
RuleDetail
,
RuleDelete
,
VlanGroupList
,
VlanGroupDetail
,
VlanGroupList
,
VlanGroupDetail
,
VlanGroupDelete
,
remove_host_group
,
add_host_group
)
js_info_dict
=
{
...
...
@@ -22,28 +22,42 @@ urlpatterns = patterns(
name
=
'network.blacklist_list'
),
url
(
'^blacklists/(?P<pk>
\
d+)/$'
,
BlacklistDetail
.
as_view
(),
name
=
'network.blacklist'
),
url
(
'^blacklists/delete/(?P<pk>
\
d+)/$'
,
BlacklistDelete
.
as_view
(),
name
=
"network.blacklist_delete"
),
url
(
'^domains/$'
,
DomainList
.
as_view
(),
name
=
'network.domain_list'
),
url
(
'^domains/(?P<pk>
\
d+)/$'
,
DomainDetail
.
as_view
(),
name
=
'network.domain'
),
url
(
'^domains/delete/(?P<pk>
\
d+)/$'
,
DomainDelete
.
as_view
(),
name
=
"network.domain_delete"
),
url
(
'^groups/$'
,
GroupList
.
as_view
(),
name
=
'network.group_list'
),
url
(
'^groups/(?P<pk>
\
d+)/$'
,
GroupDetail
.
as_view
(),
name
=
'network.group'
),
url
(
'^groups/delete/(?P<pk>
\
d+)/$'
,
GroupDelete
.
as_view
(),
name
=
"network.group_delete"
),
url
(
'^hosts/$'
,
HostList
.
as_view
(),
name
=
'network.host_list'
),
url
(
'^hosts/create$'
,
HostCreate
.
as_view
(),
name
=
'network.host_create'
),
url
(
'^hosts/(?P<pk>
\
d+)/$'
,
HostDetail
.
as_view
(),
name
=
'network.host'
),
url
(
'^hosts/delete/(?P<pk>
\
d+)/$'
,
HostDelete
.
as_view
(),
name
=
"network.host_delete"
),
url
(
'^records/$'
,
RecordList
.
as_view
(),
name
=
'network.record_list'
),
url
(
'^records/create$'
,
RecordCreate
.
as_view
(),
name
=
'network.record_create'
),
url
(
'^records/(?P<pk>
\
d+)/$'
,
RecordDetail
.
as_view
(),
name
=
'network.record'
),
url
(
'^records/delete/(?P<pk>
\
d+)/$'
,
RecordDelete
.
as_view
(),
name
=
"network.record_delete"
),
url
(
'^rules/$'
,
RuleList
.
as_view
(),
name
=
'network.rule_list'
),
url
(
'^rules/(?P<pk>
\
d+)/$'
,
RuleDetail
.
as_view
(),
name
=
'network.rule'
),
url
(
'^vlans/$'
,
VlanList
.
as_view
(),
name
=
'network.vlan_list'
),
url
(
'^vlans/(?P<vid>
\
d+)/$'
,
VlanDetail
.
as_view
(),
name
=
'network.vlan'
),
url
(
'^vlans/delete/(?P<vid>
\
d+)/$'
,
VlanDelete
.
as_view
(),
name
=
"network.vlan_delete"
),
url
(
'^vlangroups/$'
,
VlanGroupList
.
as_view
(),
name
=
'network.vlan_group_list'
),
url
(
'^vlangroups/(?P<pk>
\
d+)/$'
,
VlanGroupDetail
.
as_view
(),
name
=
'network.vlan_group'
),
url
(
'^vlangroups/delete/(?P<pk>
\
d+)/$'
,
VlanGroupDelete
.
as_view
(),
name
=
"network.vlangroup_delete"
),
url
(
'^rules/delete/(?P<pk>
\
d+)/$'
,
RuleDelete
.
as_view
(),
name
=
"network.rule_delete"
),
url
(
'^hosts/(?P<pk>
\
d+)/remove/(?P<group_pk>
\
d+)/$'
,
remove_host_group
,
...
...
network/views.py
View file @
26220312
...
...
@@ -14,6 +14,8 @@ from .tables import (HostTable, VlanTable, SmallHostTable, DomainTable,
from
.forms
import
(
HostForm
,
VlanForm
,
DomainForm
,
GroupForm
,
RecordForm
,
BlacklistForm
,
RuleForm
,
VlanGroupForm
)
from
django.contrib
import
messages
from
django.utils.translation
import
ugettext_lazy
as
_
from
itertools
import
chain
import
json
...
...
@@ -66,6 +68,33 @@ class BlacklistDetail(UpdateView):
if
'pk'
in
self
.
kwargs
:
return
reverse_lazy
(
'network.blacklist'
,
kwargs
=
self
.
kwargs
)
def
get_context_data
(
self
,
**
kwargs
):
context
=
super
(
BlacklistDetail
,
self
)
.
get_context_data
(
**
kwargs
)
context
[
'blacklist_pk'
]
=
self
.
object
.
pk
return
context
class
BlacklistDelete
(
DeleteView
):
model
=
Blacklist
template_name
=
"network/confirm/base_delete.html"
def
get_context_data
(
self
,
**
kwargs
):
""" display more information about the object """
context
=
super
(
BlacklistDelete
,
self
)
.
get_context_data
(
**
kwargs
)
if
'pk'
in
self
.
kwargs
:
to_delete
=
Blacklist
.
objects
.
get
(
pk
=
self
.
kwargs
[
'pk'
])
context
[
'to_delete'
]
=
"
%
s -
%
s -
%
s"
%
(
to_delete
.
ipv4
,
to_delete
.
reason
,
to_delete
.
type
)
return
context
def
get_success_url
(
self
):
next
=
self
.
request
.
POST
.
get
(
'next'
)
if
next
:
return
self
.
request
.
POST
[
'next'
]
else
:
return
reverse_lazy
(
'network.blacklist_list'
)
class
DomainList
(
SingleTableView
):
model
=
Domain
...
...
@@ -83,6 +112,23 @@ class DomainDetail(UpdateView):
if
'pk'
in
self
.
kwargs
:
return
reverse_lazy
(
'network.domain'
,
kwargs
=
self
.
kwargs
)
def
get_context_data
(
self
,
*
args
,
**
kwargs
):
context
=
super
(
DomainDetail
,
self
)
.
get_context_data
(
**
kwargs
)
context
[
'domain_pk'
]
=
self
.
get_object
()
.
pk
return
context
class
DomainDelete
(
DeleteView
):
model
=
Domain
template_name
=
"network/confirm/base_delete.html"
def
get_success_url
(
self
):
next
=
self
.
request
.
POST
.
get
(
'next'
)
if
next
:
return
self
.
request
.
POST
[
'next'
]
else
:
return
reverse_lazy
(
'network.domain_list'
)
class
GroupList
(
SingleTableView
):
model
=
Group
...
...
@@ -101,6 +147,23 @@ class GroupDetail(UpdateView):
return
reverse_lazy
(
'network.group'
,
kwargs
=
self
.
kwargs
)
class
GroupDelete
(
DeleteView
):
model
=
Group
template_name
=
"network/confirm/base_delete.html"
def
get_success_url
(
self
):
next
=
self
.
request
.
POST
.
get
(
'next'
)
if
next
:
return
self
.
request
.
POST
[
'next'
]
else
:
return
reverse_lazy
(
'network.group_list'
)
def
get_context_data
(
self
,
*
args
,
**
kwargs
):
context
=
super
(
GroupDelete
,
self
)
.
get_context_data
(
**
kwargs
)
context
[
'group_pk'
]
=
self
.
object
.
pk
return
context
class
HostList
(
SingleTableView
):
model
=
Host
table_class
=
HostTable
...
...
@@ -192,6 +255,43 @@ class HostCreate(CreateView):
form_class
=
HostForm
class
HostDelete
(
DeleteView
):
model
=
Host
template_name
=
"network/confirm/base_delete.html"
def
get_success_url
(
self
):
next
=
self
.
request
.
POST
.
get
(
'next'
)
if
next
:
return
self
.
request
.
POST
[
'next'
]
else
:
return
reverse_lazy
(
'network.host_list'
)
def
get_context_data
(
self
,
*
args
,
**
kwargs
):
context
=
super
(
HostDelete
,
self
)
.
get_context_data
(
**
kwargs
)
deps
=
[]
records
=
Record
.
objects
.
filter
(
host
=
self
.
object
)
.
all
()
if
records
:
deps
.
append
({
'name'
:
'Records'
,
'data'
:
records
})
context
[
'deps'
]
=
deps
context
[
'confirmation'
]
=
True
return
context
def
delete
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
object
=
self
.
get_object
()
if
unicode
(
self
.
object
)
!=
request
.
POST
.
get
(
'confirm'
):
messages
.
error
(
request
,
_
(
"Object name does not match!"
))
return
self
.
get
(
request
,
*
args
,
**
kwargs
)
response
=
super
(
HostDelete
,
self
)
.
delete
(
request
,
*
args
,
**
kwargs
)
messages
.
success
(
request
,
"Deletion successful!"
)
return
response
class
RecordList
(
SingleTableView
):
model
=
Record
table_class
=
RecordTable
...
...
@@ -206,8 +306,8 @@ class RecordDetail(UpdateView):
def
get_context_data
(
self
,
**
kwargs
):
context
=
super
(
RecordDetail
,
self
)
.
get_context_data
(
**
kwargs
)
q
=
Record
.
objects
.
get
(
pk
=
self
.
object
.
pk
)
.
fqdn
context
[
'
fqdn'
]
=
q
context
[
'fqdn'
]
=
self
.
object
.
fqdn
context
[
'
record_pk'
]
=
self
.
object
.
pk
return
context
def
get_success_url
(
self
):
...
...
@@ -221,6 +321,18 @@ class RecordCreate(CreateView):
form_class
=
RecordForm
class
RecordDelete
(
DeleteView
):
model
=
Record
template_name
=
"network/confirm/base_delete.html"
def
get_success_url
(
self
):
next
=
self
.
request
.
POST
.
get
(
'next'
)
if
next
:
return
self
.
request
.
POST
[
'next'
]
else
:
return
reverse_lazy
(
'network.record_list'
)
class
RuleList
(
SingleTableView
):
model
=
Rule
table_class
=
RuleTable
...
...
@@ -240,8 +352,7 @@ class RuleDetail(UpdateView):
def
get_context_data
(
self
,
**
kwargs
):
context
=
super
(
RuleDetail
,
self
)
.
get_context_data
(
**
kwargs
)
pk
=
self
.
kwargs
.
get
(
'pk'
)
rule
=
Rule
.
objects
.
get
(
pk
=
pk
)
rule
=
self
.
get_object
()
context
[
'rule'
]
=
rule
return
context
...
...
@@ -249,11 +360,12 @@ class RuleDetail(UpdateView):
class
RuleDelete
(
DeleteView
):
model
=
Rule
template_name
=
"network/confirm/
rul
e_delete.html"
template_name
=
"network/confirm/
bas
e_delete.html"
def
get_success_url
(
self
):
if
'next'
in
self
.
request
.
POST
:
return
self
.
request
.
POST
[
'next'
]
next
=
self
.
request
.
POST
.
get
(
'next'
)
if
next
:
return
next
else
:
return
reverse_lazy
(
'network.rule_list'
)
...
...
@@ -276,11 +388,62 @@ class VlanDetail(UpdateView):
context
=
super
(
VlanDetail
,
self
)
.
get_context_data
(
**
kwargs
)
q
=
Host
.
objects
.
filter
(
vlan
=
self
.
object
)
.
all
()
context
[
'host_list'
]
=
SmallHostTable
(
q
)
context
[
'vlan_vid'
]
=
self
.
kwargs
.
get
(
'vid'
)
return
context
success_url
=
reverse_lazy
(
'network.vlan_list'
)
class
VlanDelete
(
DeleteView
):
model
=
Vlan
template_name
=
"network/confirm/base_delete.html"
def
get_success_url
(
self
):
next
=
self
.
request
.
POST
.
get
(
'next'
)
if
next
:
return
next
else
:
return
reverse_lazy
(
'network.vlan_list'
)
def
get_object
(
self
,
queryset
=
None
):
""" we identify vlans by vid and not pk """
return
Vlan
.
objects
.
get
(
vid
=
self
.
kwargs
[
'vid'
])
def
delete
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
object
=
self
.
get_object
()
if
unicode
(
self
.
object
)
!=
request
.
POST
.
get
(
'confirm'
):
messages
.
error
(
request
,
_
(
"Object name does not match!"
))
return
self
.
get
(
request
,
*
args
,
**
kwargs
)
response
=
super
(
VlanDelete
,
self
)
.
delete
(
request
,
*
args
,
**
kwargs
)
messages
.
success
(
request
,
"Deletion successful!"
)
return
response
def
get_context_data
(
self
,
**
kwargs
):
context
=
super
(
VlanDelete
,
self
)
.
get_context_data
(
**
kwargs
)
deps
=
[]
# hosts
hosts
=
Host
.
objects
.
filter
(
vlan
=
self
.
get_object
)
.
all
()
if
len
(
hosts
)
>
0
:
deps
.
append
({
'name'
:
'Hosts'
,
'data'
:
hosts
})
# records
records
=
Record
.
objects
.
filter
(
host__in
=
deps
[
0
][
'data'
])
if
len
(
records
)
>
0
:
deps
.
append
({
'name'
:
'Records'
,
'data'
:
records
})
context
[
'deps'
]
=
deps
context
[
'confirmation'
]
=
True
return
context
class
VlanGroupList
(
SingleTableView
):
model
=
VlanGroup
table_class
=
VlanGroupTable
...
...
@@ -295,6 +458,23 @@ class VlanGroupDetail(UpdateView):
success_url
=
reverse_lazy
(
'network.vlan_group_list'
)
def
get_context_data
(
self
,
*
args
,
**
kwargs
):
context
=
super
(
VlanGroupDetail
,
self
)
.
get_context_data
(
**
kwargs
)
context
[
'vlangroup_pk'
]
=
self
.
object
.
pk
return
context
class
VlanGroupDelete
(
DeleteView
):
model
=
VlanGroup
template_name
=
"network/confirm/base_delete.html"
def
get_success_url
(
self
):
next
=
self
.
request
.
POST
.
get
(
'next'
)
if
next
:
return
next
else
:
return
reverse_lazy
(
'network.vlan_group_list'
)
def
remove_host_group
(
request
,
**
kwargs
):
host
=
Host
.
objects
.
get
(
pk
=
kwargs
[
'pk'
])
...
...
@@ -323,7 +503,3 @@ def add_host_group(request, **kwargs):
group
=
Group
.
objects
.
get
(
pk
=
group_pk
)
host
.
groups
.
add
(
group
)
return
redirect
(
reverse_lazy
(
'network.host'
,
kwargs
=
kwargs
))
def
get_host_as_json
(
request
,
**
kwargs
):
pass
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment