Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Fukász Rómeó Ervin
/
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
82dccc14
authored
Feb 11, 2013
by
tarokkk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
one: add create vm by share
parent
a7bcad7d
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
24 additions
and
12 deletions
+24
-12
cloud/urls.py
+1
-0
one/templates/home.html
+11
-10
one/views.py
+8
-2
school/models.py
+4
-0
No files found.
cloud/urls.py
View file @
82dccc14
...
...
@@ -18,6 +18,7 @@ urlpatterns = patterns('',
url
(
r'^login/$'
,
'school.views.login'
,
name
=
'login'
),
url
(
r'^logout/$'
,
'school.views.logout'
,
name
=
'logout'
),
url
(
r'^vm/new/(?P<template>\d+)/$'
,
'one.views.vm_new'
,
name
=
'vm_new'
),
url
(
r'^vm/new/s(?P<share>\d+)/$'
,
'one.views.vm_new'
,
name
=
'vm_new'
),
url
(
r'^vm/show/(?P<iid>\d+)/$'
,
'one.views.vm_show'
,
name
=
'vm_show'
),
url
(
r'^vm/delete/(?P<iid>\d+)/$'
,
'one.views.vm_delete'
,
name
=
'vm_delete'
),
url
(
r'^vm/stop/(?P<iid>\d+)/$'
,
'one.views.vm_stop'
,
name
=
'vm_stop'
),
...
...
one/templates/home.html
View file @
82dccc14
...
...
@@ -16,19 +16,19 @@
</div>
</li>
<li
id=
"new-wm"
style=
"display: none"
>
<h2>
{% trans "Available
templat
es" %}
</h2>
<h2>
{% trans "Available
shar
es" %}
</h2>
<p>
{% trans "Choose one of the following templates to launch." %}
{% trans "Choose one of the following
shared
templates to launch." %}
</p>
<div
class=
"container"
>
<ul
class=
"wm-list modal"
>
{% for
m in templat
es %}
{% for
s in shar
es %}
<li
class=
"wm"
>
<div
class=
"summary"
>
<div
class=
"quota"
>
<div
class=
"used"
style=
"width: 40%"
></div>
</div>
<div
class=
"name wm-on"
>
{{
m
.name}}
</div>
<div
class=
"name wm-on"
>
{{
s
.name}}
</div>
<div
class=
"status"
>
3/10
</div>
...
...
@@ -37,16 +37,17 @@
<div
class=
"details"
>
<div
class=
"details-container"
>
<ul>
<li
class=
"os-{{m.os_type}}"
>
{% trans "System" %}:
<span
class=
"value"
>
{{m.system}}
</span><div
class=
"clear"
></div></li>
<li
class=
"type"
>
{% trans "Size" %}:
<span
class=
"value"
>
{{m.instance_type.name}}
</span></li>
<li
class=
"os-{{s.template.os_type}}"
>
{% trans "System" %}:
<span
class=
"value"
>
{{s.template.system}}
</span><div
class=
"clear"
></div></li>
<li
class=
"type"
>
{% trans "Size" %}:
<span
class=
"value"
>
{{s.template.instance_type.name}}
</span></li>
<li
class=
"share-type"
>
{% trans "Type" %}:
<span
class=
"value"
>
{{s.type }}
</span></li>
<li
class=
"memory"
>
{% trans "Memory" %}:
<span
class=
"value"
>
{% blocktrans with m=
m
.instance_type.RAM %}{{m}} MiB{% endblocktrans %}
</span></li>
<li
class=
"cpu"
>
{% trans "CPU cores" %}:
<span
class=
"value"
>
{{
m
.instance_type.CPU}}
</span></li>
<li
class=
"description"
>
{% trans "Description" %}:
<span
class=
"value"
>
{{
m
.description}}
</span><div
class=
"clear"
></div></li>
<span
class=
"value"
>
{% blocktrans with m=
s.template
.instance_type.RAM %}{{m}} MiB{% endblocktrans %}
</span></li>
<li
class=
"cpu"
>
{% trans "CPU cores" %}:
<span
class=
"value"
>
{{
s.template
.instance_type.CPU}}
</span></li>
<li
class=
"description"
>
{% trans "Description" %}:
<span
class=
"value"
>
{{
s
.description}}
</span><div
class=
"clear"
></div></li>
<li>
<span
class=
"value"
>
<form
method=
"POST"
action=
"/vm/new/
{{m
.pk}}/"
>
{% csrf_token %}
<form
method=
"POST"
action=
"/vm/new/
s{{s
.pk}}/"
>
{% csrf_token %}
<input
type=
"submit"
value=
"{% trans "
Launch
"
%}"
/>
</form>
</span>
...
...
one/views.py
View file @
82dccc14
...
...
@@ -74,6 +74,7 @@ def _list_instances(request):
@login_required
def
home
(
request
):
return
render_to_response
(
"home.html"
,
RequestContext
(
request
,
{
'shares'
:
request
.
user
.
person_set
.
all
()[
0
]
.
get_shares
(),
'templates'
:
Template
.
objects
.
filter
(
state
=
'READY'
),
'mytemplates'
:
Template
.
objects
.
filter
(
owner
=
request
.
user
),
'publictemplates'
:
Template
.
objects
.
filter
(
public
=
True
,
state
=
'READY'
),
...
...
@@ -191,13 +192,18 @@ def vm_saveas(request, vmid):
@require_POST
@login_required
def
vm_new
(
request
,
template
):
def
vm_new
(
request
,
template
=
None
,
share
=
None
):
base
=
None
if
template
:
base
=
get_object_or_404
(
Template
,
pk
=
template
)
else
:
share
=
get_object_or_404
(
Share
,
pk
=
share
)
base
=
share
.
template
if
"name"
in
request
.
POST
:
if
base
.
owner
!=
request
.
user
and
not
base
.
public
and
not
request
.
user
.
is_superuser
:
raise
PermissionDenied
()
name
=
request
.
POST
[
'name'
]
t
=
Template
.
objects
.
create
(
name
=
name
,
disk
=
base
.
disk
,
instance_type_id
=
request
.
POST
[
'size'
],
network
=
base
.
network
,
owner
=
request
.
user
)
t
=
Template
.
objects
.
create
(
name
=
name
,
disk
=
base
.
disk
,
instance_type_id
=
request
.
POST
[
'size'
],
network
=
base
.
network
,
owner
=
request
.
user
,
share
=
share
)
t
.
access_type
=
base
.
access_type
t
.
description
=
request
.
POST
[
'description'
]
t
.
system
=
base
.
system
...
...
school/models.py
View file @
82dccc14
...
...
@@ -5,6 +5,7 @@ from django.db.models.signals import post_save
from
django.core.exceptions
import
ValidationError
from
datetime
import
datetime
from
django.conf
import
settings
import
one.models
LANGUAGE_CODE
=
settings
.
LANGUAGE_CODE
...
...
@@ -28,6 +29,9 @@ class Person(models.Model):
choices
=
LANGUAGE_CHOICES
,
default
=
LANGUAGE_CODE
)
code
=
models
.
CharField
(
_
(
'code'
),
max_length
=
30
,
unique
=
True
)
def
get_shares
(
self
):
return
one
.
models
.
Share
.
objects
.
filter
(
group__in
=
self
.
course_groups
.
all
())
def
short_name
(
self
):
if
self
.
user
.
last_name
:
return
self
.
user
.
last_name
...
...
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