Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Gelencsér Szabolcs
/
cloud
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
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
ef431d40
authored
Feb 05, 2014
by
Bach Dániel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dashboard: Display real graphs for vms #44
parent
937cd1ee
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
51 additions
and
5 deletions
+51
-5
circle/dashboard/templates/dashboard/vm-detail/home.html
+3
-4
circle/dashboard/templates/dashboard/vm-detail/resources.html
+1
-1
circle/dashboard/urls.py
+5
-0
circle/dashboard/views.py
+42
-0
No files found.
circle/dashboard/templates/dashboard/vm-detail/home.html
View file @
ef431d40
...
@@ -37,9 +37,8 @@
...
@@ -37,9 +37,8 @@
</div>
<!-- id:vm-details-tags -->
</div>
<!-- id:vm-details-tags -->
</div>
</div>
<div
class=
"col-md-8"
>
<div
class=
"col-md-8"
>
<img
src=
"/static/grafikon.png"
style=
"width:45%"
/>
<img
src=
"{% url "
dashboard
.
views
.
vm-graph
"
instance
.
pk
"
cpu
"
"
6h
"
%}"
style=
"width:100%"
/>
<img
src=
"/static/grafikon.png"
style=
"width:45%"
/>
<img
src=
"{% url "
dashboard
.
views
.
vm-graph
"
instance
.
pk
"
memory
"
"
6h
"
%}"
style=
"width:100%"
/>
<img
src=
"/static/grafikon.png"
style=
"width:45%"
/>
<img
src=
"{% url "
dashboard
.
views
.
vm-graph
"
instance
.
pk
"
network
"
"
6h
"
%}"
style=
"width:100%"
/>
<img
src=
"/static/grafikon.png"
style=
"width:45%"
/>
</div>
</div>
</div>
</div>
circle/dashboard/templates/dashboard/vm-detail/resources.html
View file @
ef431d40
...
@@ -57,7 +57,7 @@
...
@@ -57,7 +57,7 @@
</div>
</div>
{% for d in instance.disks.all %}
{% for d in instance.disks.all %}
<h4
class=
"list-group-item-heading dashboard-vm-details-network-h3"
>
<h4
class=
"list-group-item-heading dashboard-vm-details-network-h3"
>
<i
class=
"icon-file"
></i>
{{ d.name }} - {{ d.size|filesize }}
<i
class=
"icon-file"
></i>
{{ d.name }}
(#{{ d.id }})
- {{ d.size|filesize }}
</h4>
</h4>
{% endfor %}
{% endfor %}
</div>
</div>
...
...
circle/dashboard/urls.py
View file @
ef431d40
...
@@ -7,6 +7,7 @@ from .views import (
...
@@ -7,6 +7,7 @@ from .views import (
TransferOwnershipView
,
TransferOwnershipConfirmView
,
NodeDelete
,
TransferOwnershipView
,
TransferOwnershipConfirmView
,
NodeDelete
,
TemplateList
,
LeaseDetail
,
NodeCreate
,
LeaseCreate
,
TemplateCreate
,
TemplateList
,
LeaseDetail
,
NodeCreate
,
LeaseCreate
,
TemplateCreate
,
FavouriteView
,
NodeStatus
,
GroupList
,
TemplateDelete
,
LeaseDelete
,
FavouriteView
,
NodeStatus
,
GroupList
,
TemplateDelete
,
LeaseDelete
,
VmGraphView
,
)
)
urlpatterns
=
patterns
(
urlpatterns
=
patterns
(
...
@@ -57,4 +58,8 @@ urlpatterns = patterns(
...
@@ -57,4 +58,8 @@ urlpatterns = patterns(
name
=
'dashboard.views.favourite'
),
name
=
'dashboard.views.favourite'
),
url
(
r'^group/list/$'
,
GroupList
.
as_view
(),
url
(
r'^group/list/$'
,
GroupList
.
as_view
(),
name
=
'dashboard.views.group-list'
),
name
=
'dashboard.views.group-list'
),
url
((
r'^vm/(?P<pk>\d+)/graph/(?P<metric>cpu|memory|network)/'
r'(?P<time>[0-9]+[hdwy])$'
),
VmGraphView
.
as_view
(),
name
=
'dashboard.views.vm-graph'
),
)
)
circle/dashboard/views.py
View file @
ef431d40
...
@@ -1224,3 +1224,45 @@ class TransferOwnershipConfirmView(LoginRequiredMixin, View):
...
@@ -1224,3 +1224,45 @@ class TransferOwnershipConfirmView(LoginRequiredMixin, View):
unicode
(
user
),
user
.
pk
,
new_owner
,
key
)
unicode
(
user
),
user
.
pk
,
new_owner
,
key
)
raise
PermissionDenied
()
raise
PermissionDenied
()
return
(
instance
,
new_owner
)
return
(
instance
,
new_owner
)
class
VmGraphView
(
LoginRequiredMixin
,
View
):
def
get
(
self
,
request
,
pk
,
metric
,
time
,
*
args
,
**
kwargs
):
from
urllib
import
urlencode
import
urllib2
if
metric
not
in
[
'cpu'
,
'memory'
,
'network'
]:
raise
SuspiciousOperation
()
try
:
instance
=
Instance
.
objects
.
get
(
id
=
pk
)
except
Instance
.
DoesNotExist
:
raise
Http404
()
if
not
instance
.
has_level
(
request
.
user
,
'user'
):
raise
PermissionDenied
()
prefix
=
'vm.
%
s'
%
instance
.
vm_name
if
metric
==
'cpu'
:
target
=
(
'cactiStyle(alias(derivative(
%
s.cpu.usage),'
'"cpu usage (
%%
)"))'
)
%
prefix
elif
metric
==
'memory'
:
target
=
(
'cactiStyle(alias(
%
s.memory.usage,'
'"memory usage (
%%
)"))'
)
%
prefix
elif
metric
==
'network'
:
target
=
(
'cactiStyle(aliasByMetric('
'derivative(
%
s.network.bytes_*)))'
)
%
prefix
else
:
raise
SuspiciousOperation
()
title
=
'
%
s (
%
s) -
%
s'
%
(
instance
.
name
,
instance
.
vm_name
,
metric
)
params
=
urlencode
({
'target'
:
target
,
'from'
:
'-
%
s'
%
time
,
'title'
:
title
.
encode
(
'UTF-8'
)})
url
=
(
'http://
%
s:
%
s/render/?width=500&height=200&
%
s'
%
(
getenv
(
"GRAPHITE_HOST"
),
getenv
(
"GRAPHITE_PORT"
),
params
))
print
url
response
=
urllib2
.
urlopen
(
urllib2
.
Request
(
url
))
return
HttpResponse
(
response
.
read
(),
mimetype
=
"image/png"
)
print
pk
,
metric
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