Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Gutyán Gábor
/
circlestack
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
fddee865
authored
Apr 20, 2015
by
Kálmán Viktor
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into feature-gitlabheader
parents
919a6b13
ff91b0ff
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
330 additions
and
231 deletions
+330
-231
circle/circle/settings/base.py
+5
-1
circle/circle/urls.py
+1
-0
circle/common/backends.py
+49
-0
circle/common/operations.py
+2
-2
circle/common/views.py
+21
-11
circle/dashboard/models.py
+2
-2
circle/dashboard/templates/dashboard/_vm-renew.html
+2
-0
circle/dashboard/templates/dashboard/vm-detail/resources.html
+2
-2
circle/dashboard/views/group.py
+1
-1
circle/dashboard/views/util.py
+1
-1
circle/dashboard/views/vm.py
+6
-1
circle/locale/hu/LC_MESSAGES/django.po
+186
-199
circle/request/views.py
+14
-6
circle/templates/403.html
+23
-0
circle/templates/404.html
+10
-1
circle/templates/500.html
+1
-1
circle/vm/models/instance.py
+1
-2
requirements/base.txt
+3
-1
No files found.
circle/circle/settings/base.py
View file @
fddee865
...
...
@@ -450,7 +450,7 @@ if get_env_variable('DJANGO_SAML', 'FALSE') == 'TRUE':
)
AUTHENTICATION_BACKENDS
=
(
'django.contrib.auth.backends.ModelBackend'
,
'
djangosaml2
.backends.Saml2Backend'
,
'
common
.backends.Saml2Backend'
,
)
remote_metadata
=
join
(
SITE_ROOT
,
'remote_metadata.xml'
)
...
...
@@ -528,6 +528,10 @@ except:
LOCALE_PATHS
=
(
join
(
SITE_ROOT
,
'locale'
),
)
COMPANY_NAME
=
get_env_variable
(
"COMPANY_NAME"
,
"BME IK 2015"
)
first
,
last
=
get_env_variable
(
'VNC_PORT_RANGE'
,
'20000, 65536'
)
.
replace
(
' '
,
''
)
.
split
(
','
)
VNC_PORT_RANGE
=
(
int
(
first
),
int
(
last
))
# inclusive start, exclusive end
graphite_host
=
environ
.
get
(
"GRAPHITE_HOST"
,
None
)
graphite_port
=
environ
.
get
(
"GRAPHITE_PORT"
,
None
)
if
graphite_host
and
graphite_port
:
...
...
circle/circle/urls.py
View file @
fddee865
...
...
@@ -88,3 +88,4 @@ if get_env_variable('DJANGO_SAML', 'FALSE') == 'TRUE':
)
handler500
=
'common.views.handler500'
handler403
=
'common.views.handler403'
circle/common/backends.py
0 → 100644
View file @
fddee865
# -*- coding: utf-8 -*-
# Copyright 2014 Budapest University of Technology and Economics (BME IK)
#
# This file is part of CIRCLE Cloud.
#
# CIRCLE is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# CIRCLE is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along
# with CIRCLE. If not, see <http://www.gnu.org/licenses/>.
import
re
from
djangosaml2.backends
import
Saml2Backend
as
Saml2BackendBase
class
Saml2Backend
(
Saml2BackendBase
):
u"""
>>> b = Saml2Backend()
>>> b.clean_user_main_attribute(u'Ékezetes Enikő')
u'+00c9kezetes+0020Enik+0151'
>>> b.clean_user_main_attribute(u'Cé++')
u'C+00e9+002b+002b'
>>> b.clean_user_main_attribute(u'test')
u'test'
>>> b.clean_user_main_attribute(u'3+4')
u'3+002b4'
"""
def
clean_user_main_attribute
(
self
,
main_attribute
):
def
replace
(
match
):
match
=
match
.
group
()
return
'+
%04
x'
%
ord
(
match
)
if
isinstance
(
main_attribute
,
str
):
main_attribute
=
main_attribute
.
decode
(
'UTF-8'
)
assert
isinstance
(
main_attribute
,
unicode
)
return
re
.
sub
(
r'[^\w.@-]'
,
replace
,
main_attribute
)
def
_set_attribute
(
self
,
obj
,
attr
,
value
):
if
attr
==
'username'
:
value
=
self
.
clean_user_main_attribute
(
value
)
return
super
(
Saml2Backend
,
self
)
.
_set_attribute
(
obj
,
attr
,
value
)
circle/common/operations.py
View file @
fddee865
...
...
@@ -170,8 +170,8 @@ class Operation(object):
raise
ImproperlyConfigured
(
"Set required_perms to () if none needed."
)
if
not
user
.
has_perms
(
cls
.
required_perms
):
raise
PermissionDenied
(
"
%
s doesn't have the required permissions."
%
user
)
raise
PermissionDenied
(
u"
%
s doesn't have the required permissions."
%
user
)
if
cls
.
superuser_required
and
not
user
.
is_superuser
:
raise
humanize_exception
(
ugettext_noop
(
"Superuser privileges are required."
),
PermissionDenied
())
...
...
circle/common/views.py
View file @
fddee865
...
...
@@ -19,32 +19,42 @@ from sys import exc_info
import
logging
from
django.template
import
RequestContext
from
django.shortcuts
import
render_to_response
from
django.template
import
RequestContext
from
.models
import
HumanReadableException
logger
=
logging
.
getLogger
(
__name__
)
def
handler500
(
request
):
cls
,
exception
,
traceback
=
exc_info
()
logger
.
exception
(
"unhandled exception"
)
def
get_context
(
request
,
exception
):
ctx
=
{}
if
is
instance
(
exception
,
HumanReadableException
):
if
is
subclass
(
exception
.
__class__
,
HumanReadableException
):
try
:
ctx
[
'error'
]
=
exception
.
get_user_text
()
except
:
pass
else
:
try
:
if
request
.
user
.
is_superuser
():
if
request
.
user
.
is_superuser
:
ctx
[
'error'
]
=
exception
.
get_admin_text
()
else
:
ctx
[
'error'
]
=
exception
.
get_user_text
()
except
:
pass
return
ctx
def
handler500
(
request
):
cls
,
exception
,
traceback
=
exc_info
()
logger
.
exception
(
"unhandled exception"
)
ctx
=
get_context
(
request
,
exception
)
try
:
resp
=
render_to_response
(
"500.html"
,
ctx
,
RequestContext
(
request
))
except
:
resp
=
render_to_response
(
"500.html"
,
ctx
)
resp
.
status_code
=
500
return
resp
def
handler403
(
request
):
cls
,
exception
,
traceback
=
exc_info
()
ctx
=
get_context
(
request
,
exception
)
resp
=
render_to_response
(
"403.html"
,
ctx
)
resp
.
status_code
=
403
return
resp
circle/dashboard/models.py
View file @
fddee865
...
...
@@ -309,7 +309,7 @@ if hasattr(settings, 'SAML_ORG_ID_ATTRIBUTE'):
attributes
=
kwargs
.
pop
(
'attributes'
)
atr
=
settings
.
SAML_ORG_ID_ATTRIBUTE
try
:
value
=
attributes
[
atr
][
0
]
value
=
attributes
[
atr
][
0
]
.
upper
()
except
Exception
as
e
:
value
=
None
logger
.
info
(
"save_org_id couldn't find attribute.
%
s"
,
unicode
(
e
))
...
...
@@ -339,7 +339,7 @@ if hasattr(settings, 'SAML_ORG_ID_ATTRIBUTE'):
group
,
unicode
(
g
))
g
.
user_set
.
add
(
sender
)
for
i
in
FutureMember
.
objects
.
filter
(
org_id
=
value
):
for
i
in
FutureMember
.
objects
.
filter
(
org_id
__iexact
=
value
):
i
.
group
.
user_set
.
add
(
sender
)
i
.
delete
()
...
...
circle/dashboard/templates/dashboard/_vm-renew.html
View file @
fddee865
...
...
@@ -8,11 +8,13 @@
<a
class=
"btn btn-default"
href=
"{{object.get_absolute_url}}"
data-dismiss=
"modal"
>
{% trans "Cancel" %}
</a>
{% if lease_types %}
<a
class=
"btn btn-primary"
id=
"vm-renew-request-lease-button"
href=
"{% url "
request
.
views
.
request-lease
"
vm_pk=
object.pk
%}"
>
<i
class=
"fa fa-forward"
></i>
{% trans "Request longer lease" %}
</a>
{% endif %}
<button
class=
"btn btn-{{ opview.effect }} btn-op-form-send"
type=
"submit"
id=
"op-form-send"
>
{% if opview.icon %}
<i
class=
"fa fa-fw fa-{{opview.icon}}"
></i>
{% endif %}{{ op.name|capfirst }}
</button>
...
...
circle/dashboard/templates/dashboard/vm-detail/resources.html
View file @
fddee865
...
...
@@ -13,11 +13,11 @@
{% if op.resources_change %}
<button
type=
"submit"
class=
"btn btn-success btn-sm change-resources-button"
id=
"vm-details-resources-save"
data-vm=
"{{ instance.pk }}"
{%
if
op
.
resources_change
.
dis
abled
%}
disabled
{%
endif
%}
>
{%
if
not
save_resources_en
abled
%}
disabled
{%
endif
%}
>
<i
class=
"fa fa-floppy-o"
></i>
{% trans "Save resources" %}
</button>
<span
class=
"change-resources-help"
{%
if
not
op
.
resources_change
.
dis
abled
%}
style=
"display: none;"
{%
endif
%}
>
{%
if
save_resources_en
abled
%}
style=
"display: none;"
{%
endif
%}
>
{% trans "Stop your VM to change resources." %}
</span>
{% else %}
...
...
circle/dashboard/views/group.py
View file @
fddee865
...
...
@@ -146,7 +146,7 @@ class GroupDetailView(CheckedDetailView):
self
.
object
.
user_set
.
add
(
entity
)
except
User
.
DoesNotExist
:
if
saml_available
:
FutureMember
.
objects
.
get_or_create
(
org_id
=
name
,
FutureMember
.
objects
.
get_or_create
(
org_id
=
name
.
upper
()
,
group
=
self
.
object
)
else
:
messages
.
warning
(
request
,
_
(
'User "
%
s" not found.'
)
%
name
)
...
...
circle/dashboard/views/util.py
View file @
fddee865
...
...
@@ -70,7 +70,7 @@ def search_user(keyword):
return
User
.
objects
.
get
(
username
=
keyword
)
except
User
.
DoesNotExist
:
try
:
return
User
.
objects
.
get
(
profile__org_id
=
keyword
)
return
User
.
objects
.
get
(
profile__org_id
__iexact
=
keyword
)
except
User
.
DoesNotExist
:
return
User
.
objects
.
get
(
email
=
keyword
)
...
...
circle/dashboard/views/vm.py
View file @
fddee865
...
...
@@ -66,7 +66,7 @@ from ..forms import (
VmPortRemoveForm
,
VmPortAddForm
,
VmRemoveInterfaceForm
,
)
from
request.models
import
TemplateAccessType
from
request.models
import
TemplateAccessType
,
LeaseType
from
request.forms
import
LeaseRequestForm
,
TemplateRequestForm
from
..models
import
Favourite
from
manager.scheduler
import
has_traits
...
...
@@ -173,6 +173,10 @@ class VmDetailView(GraphMixin, CheckedDetailView):
context
[
'is_operator'
]
=
is_operator
context
[
'is_owner'
]
=
is_owner
# operation also allows RUNNING (if with_shutdown is present)
context
[
'save_resources_enabled'
]
=
instance
.
status
not
in
(
"RUNNING"
,
"PENDING"
)
return
context
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
...
...
@@ -681,6 +685,7 @@ class VmRenewView(FormOperationMixin, TokenOperationView, VmOperationView):
def
get_context_data
(
self
,
**
kwargs
):
context
=
super
(
VmRenewView
,
self
)
.
get_context_data
(
**
kwargs
)
context
[
'lease_request_form'
]
=
LeaseRequestForm
(
request
=
self
.
request
)
context
[
'lease_types'
]
=
LeaseType
.
objects
.
exists
()
return
context
...
...
circle/locale/hu/LC_MESSAGES/django.po
View file @
fddee865
...
...
@@ -6,9 +6,9 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-0
3-30 10:4
6+0200\n"
"PO-Revision-Date: 2015-0
3-30 12:58
+0116\n"
"Last-Translator:
Elek Elekebb EEeee <viktorvector@gmail.com
>\n"
"POT-Creation-Date: 2015-0
4-20 13:1
6+0200\n"
"PO-Revision-Date: 2015-0
4-20 13:31
+0116\n"
"Last-Translator:
Test Viktor <kviktor@cloud.bme.hu
>\n"
"Language-Team: Hungarian <cloud@ik.bme.hu>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
...
...
@@ -32,7 +32,6 @@ msgstr "Hiba."
#: common/models.py:72
#, python-format
#| msgid "Unhandled exception: %(error)s"
msgid "Unhandled exception: %(e)s: %(error)s"
msgstr "Kezeletlen kivétel: %(e)s: %(error)s"
...
...
@@ -59,7 +58,7 @@ msgstr "feladat uuid"
#: common/models.py:158
#: dashboard/templates/dashboard/instanceactivity_detail.html:37
#: firewall/models.py:284 request/models.py:22
3
vm/models/common.py:84
#: firewall/models.py:284 request/models.py:22
6
vm/models/common.py:84
#: vm/models/instance.py:130 vm/models/instance.py:211
msgid "user"
msgstr "felhasználó"
...
...
@@ -139,8 +138,8 @@ msgstr "szerver"
msgid "realtime"
msgstr "valós idejű"
#: dashboard/forms.py:93 dashboard/forms.py:81
0 dashboard/forms.py:900
#: dashboard/forms.py:135
1
dashboard/tables.py:270
#: dashboard/forms.py:93 dashboard/forms.py:81
1 dashboard/forms.py:901
#: dashboard/forms.py:135
2
dashboard/tables.py:270
#: dashboard/templates/dashboard/_vm-create-2.html:20
#: dashboard/templates/dashboard/vm-detail/home.html:9
#: dashboard/templates/dashboard/vm-list.html:62 firewall/models.py:296
...
...
@@ -201,10 +200,10 @@ msgstr ""
msgid "Create"
msgstr "Létrehozás"
#: dashboard/forms.py:282 dashboard/forms.py:123
1 dashboard/forms.py:1248
#: dashboard/forms.py:128
3 dashboard/forms.py:1321 dashboard/forms.py:1364
#: dashboard/forms.py:140
5 dashboard/forms.py:1425 dashboard/forms.py:1488
#: dashboard/forms.py:160
0
#: dashboard/forms.py:282 dashboard/forms.py:123
2 dashboard/forms.py:1249
#: dashboard/forms.py:128
4 dashboard/forms.py:1322 dashboard/forms.py:1365
#: dashboard/forms.py:140
6 dashboard/forms.py:1426 dashboard/forms.py:1489
#: dashboard/forms.py:160
1
#: dashboard/templates/dashboard/_manage_access.html:73
#: dashboard/templates/dashboard/connect-command-create.html:37
#: dashboard/templates/dashboard/connect-command-edit.html:37
...
...
@@ -212,20 +211,20 @@ msgstr "Létrehozás"
#: dashboard/templates/dashboard/lease-edit.html:96
#: dashboard/templates/dashboard/template-tx-owner.html:12
#: dashboard/templates/dashboard/vm-detail/tx-owner.html:12
#: network/forms.py:8
6 network/forms.py:100 network/forms.py:122
#: network/forms.py:16
2 network/forms.py:187 network/forms.py:22
6
#: network/forms.py:2
47 network/forms.py:298 network/forms.py:323
#: network/forms.py:8
8 network/forms.py:103 network/forms.py:126
#: network/forms.py:16
7 network/forms.py:195 network/forms.py:23
6
#: network/forms.py:2
61 network/forms.py:313 network/forms.py:342
#: request/forms.py:38 request/forms.py:54
msgid "Save"
msgstr "Mentés"
#: dashboard/forms.py:312 dashboard/forms.py:102
8
#: dashboard/forms.py:312 dashboard/forms.py:102
9
#: dashboard/templates/dashboard/_vm-remove-port.html:15
#: dashboard/templates/dashboard/vm-detail.html:102 network/views.py:659
msgid "Host"
msgstr "Gép"
#: dashboard/forms.py:383 dashboard/forms.py:78
1 dashboard/forms.py:991
#: dashboard/forms.py:383 dashboard/forms.py:78
2 dashboard/forms.py:992
#: dashboard/templates/dashboard/node-detail.html:5
#: dashboard/templates/dashboard/vm-detail/home.html:118
#: dashboard/templates/dashboard/vm-list.html:87
...
...
@@ -265,24 +264,24 @@ msgstr "Törlés ideje"
msgid "Save changes"
msgstr "Változások mentése"
#: dashboard/forms.py:74
7
#: dashboard/forms.py:74
8
msgid "Set expiration times even if they are shorter than the current value."
msgstr ""
"Akkor is állítsa át a lejárati időket, ha rövidebbek lesznek a jelenleginél."
#: dashboard/forms.py:75
0
#: dashboard/forms.py:75
1
msgid "Save selected lease."
msgstr "Kiválasztott bérlet mentése."
#: dashboard/forms.py:7
59
#: dashboard/forms.py:7
60
msgid "Length"
msgstr "Hossz"
#: dashboard/forms.py:76
7
#: dashboard/forms.py:76
8
msgid "Live migration"
msgstr "Live migration"
#: dashboard/forms.py:7
69
#: dashboard/forms.py:7
70
msgid ""
"Live migration is a way of moving virtual machines between hosts with a "
"service interruption of at most some seconds. Please note that it can take "
...
...
@@ -293,195 +292,195 @@ msgstr ""
"hogy ez terhelt gépek esetén sokáig tarthat és nagy hálózati forgalommal "
"jár."
#: dashboard/forms.py:78
7
#: dashboard/forms.py:78
8
msgid "Forcibly interrupt all running activities."
msgstr "Futó tevékenységek erőltetett befejezése."
#: dashboard/forms.py:78
8
#: dashboard/forms.py:78
9
msgid "Set all activities to finished state, but don't interrupt any tasks."
msgstr ""
"Minden tevékenység befejezettre állítása (a feladatok megszakítása nélkül)."
#: dashboard/forms.py:79
1
#: dashboard/forms.py:79
2
msgid "New status"
msgstr "Új állapot"
#: dashboard/forms.py:79
2
#: dashboard/forms.py:79
3
msgid "Reset node"
msgstr "Csomópont visszaállítása"
#: dashboard/forms.py:80
6
#: dashboard/forms.py:80
7
msgid "use emergency state change"
msgstr "vész-állapotváltás használata"
#: dashboard/forms.py:81
2 dashboard/forms.py:832
#: dashboard/forms.py:81
3 dashboard/forms.py:833
#: dashboard/templates/dashboard/store/_list-box.html:117
msgid "Size"
msgstr "Méret"
#: dashboard/forms.py:81
3
#: dashboard/forms.py:81
4
msgid "Size of disk to create in bytes or with units like MB or GB."
msgstr "Létrehozandó lemez mérete byte-okban vagy mértékegységgel (MB, GB)."
#: dashboard/forms.py:82
5 dashboard/forms.py:854
#: dashboard/forms.py:82
6 dashboard/forms.py:855
msgid "Invalid format, you can use GB or MB!"
msgstr "Érvénytelen formátum. „GB” és „MB” is használható."
#: dashboard/forms.py:83
3
#: dashboard/forms.py:83
4
msgid "Size to resize the disk in bytes or with units like MB or GB."
msgstr "A lemez kívánt mérete byte-okban vagy mértékegységgel (MB, GB)."
#: dashboard/forms.py:84
4 dashboard/forms.py:880
#: dashboard/forms.py:84
5 dashboard/forms.py:881
#: dashboard/templates/dashboard/storage/disk.html:7
#: dashboard/templates/dashboard/storage/disk.html:24
msgid "Disk"
msgstr "Lemez"
#: dashboard/forms.py:85
7
#: dashboard/forms.py:85
8
msgid "Disk size must be greater than the actual size."
msgstr "A lemez mérete nagyobb kell legyen a jelenleginél."
#: dashboard/forms.py:86
6 dashboard/forms.py:891
#: dashboard/forms.py:86
7 dashboard/forms.py:892
#, python-format
msgid "<label>Disk:</label> %s"
msgstr "<label>Lemez:</label> %s"
#: dashboard/forms.py:90
1
#: dashboard/forms.py:90
2
msgid "URL"
msgstr "URL"
#: dashboard/forms.py:91
1
#: dashboard/forms.py:91
2
msgid "Could not find filename in URL, please specify a name explicitly."
msgstr "Az URL-ben nem található fájlnév. Kérem adja meg explicite."
#: dashboard/forms.py:92
5
#: dashboard/forms.py:92
6
msgid "Interface"
msgstr "Interfészek"
#: dashboard/forms.py:93
7
#: dashboard/forms.py:93
8
#, python-brace-format
msgid "<label>Vlan:</label> {0}"
msgstr "<label>Vlan:</label> {0}"
#: dashboard/forms.py:95
2
#: dashboard/forms.py:95
3
#: dashboard/templates/dashboard/_vm-remove-port.html:17
#: dashboard/templates/dashboard/node-detail/resources.html:28
#: network/views.py:658
msgid "Vlan"
msgstr "Vlan"
#: dashboard/forms.py:95
5
#: dashboard/forms.py:95
6
msgid "No more networks."
msgstr "Nincs több hálózat."
#: dashboard/forms.py:97
6
#: dashboard/forms.py:97
7
#, python-format
msgid " (missing_traits: %s)"
msgstr "(hiányzó jellemzők: %s)"
#: dashboard/forms.py:99
2
#: dashboard/forms.py:99
3
msgid ""
"Deploy virtual machine to this node (blank allows scheduling automatically)."
msgstr ""
"A virtuális gép elindítása ezen a csomóponton (üresen hagyva automatikus "
"ütemezés)."
#: dashboard/forms.py:10
09 dashboard/forms.py:1015
#: dashboard/forms.py:10
10 dashboard/forms.py:1016
#: dashboard/templates/dashboard/_vm-remove-port.html:13
msgid "Port"
msgstr "Port"
#: dashboard/forms.py:101
8
dashboard/templates/dashboard/vm-detail.html:100
#: dashboard/forms.py:101
9
dashboard/templates/dashboard/vm-detail.html:100
msgid "Protocol"
msgstr "Protokoll"
#: dashboard/forms.py:104
0
#: dashboard/forms.py:104
1
#, python-brace-format
msgid "<label>Host:</label> {0}"
msgstr "<label>Gép:</label> {0}"
#: dashboard/forms.py:106
8 dashboard/templates/dashboard/profile.html:36
#: dashboard/forms.py:106
9 dashboard/templates/dashboard/profile.html:37
#: dashboard/templates/dashboard/vm-detail.html:118
msgid "Username"
msgstr "Felhasználónév"
#: dashboard/forms.py:108
2
dashboard/templates/dashboard/vm-detail.html:120
#: dashboard/forms.py:108
3
dashboard/templates/dashboard/vm-detail.html:120
msgid "Password"
msgstr "Jelszó"
#: dashboard/forms.py:108
7
#: dashboard/forms.py:108
8
msgid "Sign in"
msgstr "Bejelentkezés"
#: dashboard/forms.py:111
0 dashboard/templates/dashboard/profile.html:42
#: dashboard/forms.py:111
1 dashboard/templates/dashboard/profile.html:43
msgid "Email address"
msgstr "E-mail cím"
#: dashboard/forms.py:111
5
#: dashboard/forms.py:111
6
msgid "Reset password"
msgstr "Új jelszó"
#: dashboard/forms.py:113
1 dashboard/forms.py:1257
#: dashboard/forms.py:113
2 dashboard/forms.py:1258
msgid "Change password"
msgstr "Jelszóváltoztatás"
#: dashboard/forms.py:120
3
#: dashboard/forms.py:120
4
msgid "Add trait"
msgstr "Jellemző hozzáadása"
#: dashboard/forms.py:122
0
#: dashboard/forms.py:122
1
msgid "Preferred language"
msgstr "Választott nyelv"
#: dashboard/forms.py:127
2
dashboard/templates/dashboard/group-list.html:14
#: dashboard/forms.py:127
3
dashboard/templates/dashboard/group-list.html:14
#: dashboard/templates/dashboard/index-groups.html:7
#: dashboard/templates/dashboard/profile.html:6
0
#: dashboard/templates/dashboard/profile.html:6
2
#: dashboard/templates/dashboard/vm-detail/network.html:40
#: network/templates/network/host-edit.html:32 templates/info/help.html:192
msgid "Groups"
msgstr "Csoportok"
#: dashboard/forms.py:129
8
#: dashboard/forms.py:129
9
msgid "Instance limit"
msgstr "Példány limit"
#: dashboard/forms.py:132
8
dashboard/templates/dashboard/lease-edit.html:86
#: dashboard/forms.py:132
9
dashboard/templates/dashboard/lease-edit.html:86
msgid "Name of group or user"
msgstr "Csoport vagy felhasználó neve"
#: dashboard/forms.py:133
6 dashboard/forms.py:1345
#: dashboard/forms.py:133
7 dashboard/forms.py:1346
msgid "Name of user"
msgstr "Felhasználó neve"
#: dashboard/forms.py:133
8 dashboard/forms.py:1347
#: dashboard/forms.py:133
9 dashboard/forms.py:1348
msgid "E-mail address or identifier of user"
msgstr "A felhasználó e-mail címe vagy azonosítója"
#: dashboard/forms.py:135
3
#: dashboard/forms.py:135
4
msgid "Key"
msgstr "Kulcs"
#: dashboard/forms.py:135
4
#: dashboard/forms.py:135
5
msgid "For example: ssh-rsa AAAAB3NzaC1yc2ED..."
msgstr "Például: ssh-rsa AAAAB3NzaC1yc2ED…"
#: dashboard/forms.py:143
4
#: dashboard/forms.py:143
5
msgid "permissions"
msgstr "jogosultságok"
#: dashboard/forms.py:153
1
#: dashboard/forms.py:153
2
msgid "owned"
msgstr "saját"
#: dashboard/forms.py:153
2
#: dashboard/forms.py:153
3
msgid "shared"
msgstr "osztott"
#: dashboard/forms.py:153
3
#: dashboard/forms.py:153
4
msgid "all"
msgstr "összes"
#: dashboard/forms.py:154
0 dashboard/forms.py:1564 dashboard/forms.py:1583
#: dashboard/forms.py:154
1 dashboard/forms.py:1565 dashboard/forms.py:1584
#: dashboard/templates/dashboard/index-groups.html:23
#: dashboard/templates/dashboard/index-nodes.html:40
#: dashboard/templates/dashboard/index-templates.html:40
...
...
@@ -594,7 +593,7 @@ msgstr "Lemezkvóta mebibyte-okban."
msgid "Can use autocomplete."
msgstr "Használhat automatikus kiegészítést."
#: dashboard/models.py:245 firewall/models.py:285 request/models.py:22
4
#: dashboard/models.py:245 firewall/models.py:285 request/models.py:22
7
#: vm/models/common.py:85 vm/models/instance.py:131 vm/models/instance.py:212
msgid "operator"
msgstr "operátor"
...
...
@@ -665,7 +664,7 @@ msgstr "Adminisztráció"
msgid "Actions"
msgstr "Műveletek"
#: dashboard/tables.py:164 dashboard/templates/dashboard/profile.html:3
7
#: dashboard/tables.py:164 dashboard/templates/dashboard/profile.html:3
8
msgid "Organization ID"
msgstr "Címtári azonosító"
...
...
@@ -975,7 +974,7 @@ msgstr "Lemezek"
#: dashboard/templates/dashboard/base.html:40
#: dashboard/templates/dashboard/vm-detail.html:214
#: dashboard/views/graph.py:198 dashboard/views/graph.py:221
#: network/forms.py:14
2
network/templates/network/base.html:7
#: network/forms.py:14
7
network/templates/network/base.html:7
msgid "Network"
msgstr "Hálózat"
...
...
@@ -1002,7 +1001,6 @@ msgstr ""
"Még nem tud virtuális gépet indítani, mivel egy sablonhoz sincs hozzáférése."
#: dashboard/templates/dashboard/_vm-create-1.html:85
#| msgid " new virtual machines because no templates are shared with ."
msgid ""
"You can't start new virtual machines because no templates are shared with "
"you however you can request them via the form below."
...
...
@@ -1012,7 +1010,6 @@ msgstr ""
#: dashboard/templates/dashboard/_vm-create-1.html:96
#, python-format
#| msgid " owner of this template is <a href=\"%(url)s\">ame)s er)s)</a>.\n"
msgid ""
"\n"
" Need other templates? Submit a new <a href=\"%(url)s\">request</a>.\n"
...
...
@@ -1083,7 +1080,7 @@ msgstr "Csomópontjellemzők"
msgid "Required traits"
msgstr "Elvárt jellemzők"
#: dashboard/templates/dashboard/_vm-renew.html:1
4
#: dashboard/templates/dashboard/_vm-renew.html:1
5
msgid "Request longer lease"
msgstr "Hosszabb bérlet igénylése"
...
...
@@ -1108,7 +1105,6 @@ msgstr "Tárhely"
#: dashboard/templates/dashboard/base.html:46
#: request/templates/request/list.html:6
#: request/templates/request/list.html:17
#| msgid "Required traits"
msgid "Requests"
msgstr "Igénylések"
...
...
@@ -1242,13 +1238,13 @@ msgstr "Parancssablon létrehozása"
#: dashboard/templates/dashboard/connect-command-edit.html:13
#: dashboard/templates/dashboard/lease-create.html:13
#: dashboard/templates/dashboard/lease-edit.html:12
#: dashboard/templates/dashboard/profile.html:2
3
#: dashboard/templates/dashboard/profile.html:2
4
#: dashboard/templates/dashboard/template-edit.html:16
#: dashboard/templates/dashboard/userkey-create.html:13
#: dashboard/templates/dashboard/userkey-edit.html:14 network/forms.py:65
#: network/forms.py:8
7 network/forms.py:101 network/forms.py:123
#: network/forms.py:16
3 network/forms.py:188 network/forms.py:22
7
#: network/forms.py:2
48 network/forms.py:299 network/forms.py:324
#: network/forms.py:8
9 network/forms.py:104 network/forms.py:127
#: network/forms.py:16
8 network/forms.py:196 network/forms.py:23
7
#: network/forms.py:2
62 network/forms.py:314 network/forms.py:343
#: request/templates/request/detail.html:17
#: request/templates/request/lease-type-form.html:25
#: request/templates/request/template-type-form.html:25
...
...
@@ -1792,61 +1788,66 @@ msgstr ""
"Biztosan végrehajtja a(z) <strong>%(op)s</strong> műveletet\n"
"a következőn: <a data-dismiss=\"modal\" href=\"%(url)s\">%(obj)s</a>?\n"
#: dashboard/templates/dashboard/profile.html:
6
#: dashboard/templates/dashboard/profile.html:
7
#: dashboard/templates/dashboard/profile_form.html:6
msgid "Profile"
msgstr "Profil"
#: dashboard/templates/dashboard/profile.html:1
7
#: dashboard/templates/dashboard/profile.html:1
8
msgid "Log in as this user. Recommended to open in an incognito window."
msgstr ""
"Bejelentkezés a felhasználó nevében. Ajánlott inkognitóablakban megnyitni."
#: dashboard/templates/dashboard/profile.html:
19
#: dashboard/templates/dashboard/profile.html:
20
msgid "Login as this user"
msgstr "Bejelentkezés a felhasználó nevében"
#: dashboard/templates/dashboard/profile.html:3
8
#: dashboard/templates/dashboard/profile.html:3
9
msgid "First name"
msgstr "Keresztnév"
#: dashboard/templates/dashboard/profile.html:
39
#: dashboard/templates/dashboard/profile.html:
40
msgid "Last name"
msgstr "Vezetéknév"
#: dashboard/templates/dashboard/profile.html:47
#: dashboard/templates/dashboard/profile.html:46
#| msgid "Back to login"
msgid "Last login"
msgstr "Utolsó belépés"
#: dashboard/templates/dashboard/profile.html:49
msgid "Use email address as Gravatar profile image"
msgstr "E-mail cím használata a Gravatar profilkép betöltésére"
#: dashboard/templates/dashboard/profile.html:5
0
#: dashboard/templates/dashboard/profile.html:5
2
msgid "What's Gravatar?"
msgstr "Mi az a Gravatar?"
#: dashboard/templates/dashboard/profile.html:5
2
#: dashboard/templates/dashboard/profile.html:5
4
msgid "Change my preferences"
msgstr "Személyes beállítások"
#: dashboard/templates/dashboard/profile.html:6
6
#: dashboard/templates/dashboard/profile.html:6
8
msgid "This user is not in any group."
msgstr "A felhasználó nem tagja csoportnak."
#: dashboard/templates/dashboard/profile.html:7
5
#: dashboard/templates/dashboard/profile.html:7
7
msgid "Virtual machines owned by the user"
msgstr "A felhasználó virtuális gépei"
#: dashboard/templates/dashboard/profile.html:8
7
#: dashboard/templates/dashboard/profile.html:8
9
msgid "This user have no virtual machines."
msgstr "A felhasználónak nincs virtuális gépe."
#: dashboard/templates/dashboard/profile.html:9
6
#: dashboard/templates/dashboard/profile.html:9
8
msgid "Virtual machines with access"
msgstr "Elérhető virtuális gépek"
#: dashboard/templates/dashboard/profile.html:1
08
#: dashboard/templates/dashboard/profile.html:1
10
msgid "This user have no access to any virtual machine."
msgstr "A felhasználónak egy géphez sincs hozzáférése."
#: dashboard/templates/dashboard/profile.html:12
2
#: dashboard/templates/dashboard/profile.html:12
4
msgid "Edit user"
msgstr "Felhasználó szerkesztése"
...
...
@@ -2500,12 +2501,12 @@ msgid "DNS name"
msgstr "DNS név"
#: dashboard/templates/dashboard/vm-detail/network.html:52
#: network/forms.py:2
69
#: network/forms.py:2
84
msgid "IPv4"
msgstr "IPv4"
#: dashboard/templates/dashboard/vm-detail/network.html:53
#: network/forms.py:2
76
#: network/forms.py:2
91
msgid "IPv6"
msgstr "IPv6"
...
...
@@ -2523,7 +2524,6 @@ msgid "Edit raw data"
msgstr "Nyers adat szerkesztése"
#: dashboard/templates/dashboard/vm-detail/resources.html:7
#| msgid "Change resources"
msgid "Modify the resources"
msgstr "Módosítsa az erőforrásokat"
...
...
@@ -2543,16 +2543,14 @@ msgid ""
msgstr ""
"Erőforrás módosítás csak LEÁLLÍTVA állapotú gépen lehetséges. A virtuális "
"gépet ajánlott leállítani a kérés beküldése után másképpen valamikor a "
"jövőben, a kérés elfogadásakor
a
lesz automatikusan leállítva."
"jövőben, a kérés elfogadásakor lesz automatikusan leállítva."
#: dashboard/templates/dashboard/vm-detail/resources.html:29
#: request/forms.py:79 request/models.py:82
#| msgid "RAM usage"
msgid "Message"
msgstr "Üzenet"
#: dashboard/templates/dashboard/vm-detail/resources.html:38
#| msgid "Save resources"
msgid "Request resources"
msgstr "Erőforrások igénylése"
...
...
@@ -2634,36 +2632,36 @@ msgstr "példányok száma"
msgid "Allocated memory (bytes)"
msgstr "Foglalt memória (byte)"
#: dashboard/views/group.py:15
0
#: dashboard/views/group.py:15
2
#, python-format
msgid "User \"%s\" not found."
msgstr "Nem található „%s” felhasználó."
#: dashboard/views/group.py:16
4
#: dashboard/views/group.py:16
6
msgid "Group successfully renamed."
msgstr "A csoport átnevezésre került."
#: dashboard/views/group.py:23
3
#: dashboard/views/group.py:23
5
msgid "Member successfully removed from group."
msgstr "A csoporttag eltávolításra került."
#: dashboard/views/group.py:26
6
#: dashboard/views/group.py:26
8
msgid "Future user successfully removed from group."
msgstr "A leendő csoporttag eltávolításra került."
#: dashboard/views/group.py:2
88
#: dashboard/views/group.py:2
90
msgid "Group successfully deleted."
msgstr "A csoport törlésre került."
#: dashboard/views/group.py:31
7
#: dashboard/views/group.py:31
9
msgid "Create a Group"
msgstr "Csoport létrehozása"
#: dashboard/views/group.py:33
3
#: dashboard/views/group.py:33
5
msgid "Group successfully created."
msgstr "A csoport létrehozásra került."
#: dashboard/views/group.py:34
7
#: dashboard/views/group.py:34
9
msgid "Group is successfully updated."
msgstr "A csoport frissítésre került."
...
...
@@ -2692,7 +2690,6 @@ msgid "The DataStore is offline."
msgstr "Az adattár nem elérhető."
#: dashboard/views/storage.py:57
#| msgid "Virtual machine"
msgid "virtual machine"
msgstr "virtuális gép"
...
...
@@ -2964,7 +2961,8 @@ msgstr "Átruházás elfogadva"
#: dashboard/views/util.py:667
#, python-format
msgid "Your ownership offer of %(instance)s has been accepted by %(owner)s."
msgstr "%(instance)s gépre vonatkozó átruházási ajánlatát elfogadta %(owner)s."
msgstr ""
"%(instance)s gépre vonatkozó átruházási ajánlatát elfogadta %(owner)s."
#: dashboard/views/util.py:716
msgid "Only the owners can delete the selected object."
...
...
@@ -2974,65 +2972,65 @@ msgstr "Csak a tulajdonos törölheti a kiválasztott objektumot."
msgid "console access"
msgstr "konzolhozzáférés"
#: dashboard/views/vm.py:
199
#: dashboard/views/vm.py:
203
msgid "VM successfully renamed."
msgstr "A virtuális gép átnevezésre került."
#: dashboard/views/vm.py:22
3
#: dashboard/views/vm.py:22
7
msgid "VM description successfully updated."
msgstr "A VM leírása megváltoztatásra került."
#: dashboard/views/vm.py:61
1
#: dashboard/views/vm.py:61
5
msgid "The token has expired."
msgstr "A token lejárt."
#: dashboard/views/vm.py:8
36
#: dashboard/views/vm.py:8
41
#, python-format
msgid "Failed to execute %(op)s operation on instance %(instance)s."
msgstr "%(op)s végrehajtása meghiúsult a következőn: %(instance)s."
#: dashboard/views/vm.py:85
2
#: dashboard/views/vm.py:85
7
#, python-format
msgid "You are not permitted to execute %(op)s on instance %(instance)s."
msgstr "Nem engedélyezett a(z) %(op)s végrehajtása a(z) %(instance)s gépen."
#: dashboard/views/vm.py:104
4
#: dashboard/views/vm.py:104
9
msgid "Customize VM"
msgstr "VM testreszabása"
#: dashboard/views/vm.py:105
2
#: dashboard/views/vm.py:105
7
msgid "Create a VM"
msgstr "VM létrehozása"
#: dashboard/views/vm.py:11
07
#: dashboard/views/vm.py:11
12
#, python-format
msgid "Successfully created %(count)d VM."
msgid_plural "Successfully created %(count)d VMs."
msgstr[0] "%(count)d VM létrehozásra került."
msgstr[1] "%(count)d VM létrehozásra került."
#: dashboard/views/vm.py:111
2
#: dashboard/views/vm.py:111
7
msgid "VM successfully created."
msgstr "VM létrehozásra került."
#: dashboard/views/vm.py:114
3
#: dashboard/views/vm.py:114
8
#, python-format
msgid "Instance limit (%d) exceeded."
msgstr "A példányok létrehozási korlátját (%d) túllépte."
#: dashboard/views/vm.py:121
1
#: dashboard/views/vm.py:121
6
msgid "About CIRCLE Client"
msgstr "A CIRCLE kliensről"
#: dashboard/views/vm.py:130
1
#: dashboard/views/vm.py:130
6
msgid "transfer ownership"
msgstr "tulajdon átruházása"
#: dashboard/views/vm.py:131
1
#: dashboard/views/vm.py:131
6
#, python-format
msgid ""
"%(owner)s offered you to take the ownership of his/her virtual machine
called
"
" %(instance)s. <a href=\"%(token)s\" class=\"btn btn-success btn-"
"%(owner)s offered you to take the ownership of his/her virtual machine "
"
called
%(instance)s. <a href=\"%(token)s\" class=\"btn btn-success btn-"
"small\">Accept</a>"
msgstr ""
"%(owner)s át kívánja ruházni %(instance)s nevű virtuális gépét Önre. <a "
...
...
@@ -3494,12 +3492,10 @@ msgid "Description of the group."
msgstr "A csoport leírása."
#: firewall/models.py:550
#| msgid "vlan group"
msgid "vlan groups"
msgstr "vlan-csoportok"
#: firewall/models.py:577
#| msgid "host group"
msgid "host groups"
msgstr "gépcsoportok"
...
...
@@ -3611,7 +3607,6 @@ msgid "Port %(proto)s %(public)s is already in use."
msgstr "A(z) %(public)s %(proto)s port használatban van."
#: firewall/models.py:955
#| msgid "firewall"
msgid "firewalls"
msgstr "tűzfalak"
...
...
@@ -3636,7 +3631,6 @@ msgid "domain"
msgstr "tartomány"
#: firewall/models.py:1006
#| msgid "domain"
msgid "domains"
msgstr "tartományok"
...
...
@@ -3658,7 +3652,6 @@ msgid "record"
msgstr "rekord"
#: firewall/models.py:1087
#| msgid "record"
msgid "records"
msgstr "rekordok"
...
...
@@ -3677,7 +3670,6 @@ msgid "switch port"
msgstr "switch port"
#: firewall/models.py:1109
#| msgid "switch port"
msgid "switch ports"
msgstr "switch portok"
...
...
@@ -3726,7 +3718,6 @@ msgid "blacklist item"
msgstr "tiltólista eleme"
#: firewall/models.py:1176
#| msgid "blacklist item"
msgid "blacklist items"
msgstr "tiltólista elemek"
...
...
@@ -3762,31 +3753,31 @@ msgstr ""
"Egy csomópont sem biztosítja a virtuális gép indításához szükséges "
"jellemzőket."
#: network/forms.py:1
46
#: network/forms.py:1
51
msgid "Generate random address."
msgstr "Véletlenszerű cím generálása."
#: network/forms.py:1
49
#: network/forms.py:1
54
msgid "Generate IPv6 pair of IPv4 address."
msgstr "IPv4-es cím IPv6-os párjának generálása."
#: network/forms.py:15
4
#: network/forms.py:15
9
msgid "Information"
msgstr "Információ"
#: network/forms.py:2
1
7
#: network/forms.py:2
2
7
msgid "External"
msgstr "Külső"
#: network/forms.py:2
80
#: network/forms.py:2
95
msgid "Generate sensible template."
msgstr "Ésszerű sablon generálása."
#: network/forms.py:2
84
#: network/forms.py:2
99
msgid "Domain name service"
msgstr "DNS szolgáltatás"
#: network/forms.py:
289
#: network/forms.py:
304
msgid "Info"
msgstr "Infó"
...
...
@@ -4325,7 +4316,6 @@ msgid "There is already an ethernet device with that name."
msgstr "Már létezik a megadott nevű ethernet-eszköz."
#: request/forms.py:76
#| msgid "Templates"
msgid "Template share"
msgstr "Sablon megosztás"
...
...
@@ -4334,7 +4324,6 @@ msgid "pending"
msgstr "függő"
#: request/models.py:69
#| msgid "accept"
msgid "accepted"
msgstr "elfogadott"
...
...
@@ -4343,7 +4332,6 @@ msgid "declined"
msgstr "elutasított"
#: request/models.py:77
#| msgid "source port"
msgid "resource request"
msgstr "erőforrás igénylés"
...
...
@@ -4352,12 +4340,10 @@ msgid "lease request"
msgstr "bérlet igénylés"
#: request/models.py:79
#| msgid "Template successfully deleted."
msgid "template access request"
msgstr "sablon hozzáférés igénylés"
#: request/models.py:126
#| msgid "Ownership accepted"
msgid "Request accepted"
msgstr "Kérés elfogadva"
...
...
@@ -4399,7 +4385,7 @@ msgstr "prioritás"
msgid "CPU priority."
msgstr "CPU prioritás."
#: request/models.py:1
88
#: request/models.py:1
91
#, python-format
msgid ""
"The resources of <a href=\"%(url)s\">%(name)s</a> were changed. Number of "
...
...
@@ -4410,7 +4396,7 @@ msgstr ""
"%(num_cores)d, RAM-mennyiség: <span class=\"nowrap\">%(ram_size)d "
"MiB</span>, CPU prioritás: %(priority)d/100."
#: request/models.py:21
2
#: request/models.py:21
5
#, python-format
msgid ""
"The lease of <a href=\"%(url)s\">%(name)s</a> got extended. (suspend: "
...
...
@@ -4419,14 +4405,14 @@ msgstr ""
"<a href=\"%(url)s\">%(name)s</a> bérlete meghosszabbítva. (felfüggesztés: "
"%(suspend)s, törlés: %(remove)s)"
#: request/models.py:24
0
#: request/models.py:24
3
#, python-format
msgid "You got access to the following template: %s"
msgid_plural "You got access to the following templates: %s"
msgstr[0] "Az alábbi sablonhoz szerzett hozzáférést: %s"
msgstr[1] "Az alábbi sablonokhoz szerzett hozzáférést: %s"
#: request/models.py:25
1
#: request/models.py:25
4
#, python-format
msgid ""
"A new <a href=\"%(request_url)s\">%(request_type)s</a> was submitted by <a "
...
...
@@ -4435,16 +4421,16 @@ msgstr ""
"Egy új <a href=\"%(request_url)s\">%(request_type)s</a> lett beküldve <a "
"href=\"%(user_url)s\">%(display_name)s</a> által."
#: request/models.py:26
2
#: request/models.py:26
5
#, python-format
msgid "New %(request_type)s"
msgstr "Új %(request_type)s"
#: request/models.py:26
6
#: request/models.py:26
9
msgid "Request submitted"
msgstr "Igénylés beküldve"
#: request/models.py:2
67
#: request/models.py:2
70
#, python-format
msgid ""
"You can view the request's status at this <a "
...
...
@@ -4454,7 +4440,6 @@ msgstr ""
"href=\"%(request_url)s\">linken</a>."
#: request/tables.py:53
#| msgid "No more networks."
msgid "No more requests."
msgstr "Nincs több igénylés."
...
...
@@ -4469,39 +4454,32 @@ msgstr ""
"Azon felhasználók számára akik a sablonokat meg szeretnék osztani másokkal."
#: request/templates/request/_request-template-form.html:18
#| msgid "This user have no access to any virtual machine."
msgid "For users who want to start a virtual machine."
msgstr "Azon felhasználók számára akik virtuális gépet akarnak indítani."
#: request/templates/request/detail.html:7
#| msgid "requested IP"
msgid "Request"
msgstr "Igénylés"
#: request/templates/request/detail.html:42
#: request/templates/request/detail.html:69
#| msgid "name"
msgid "VM name"
msgstr "Virtuális gép neve"
#: request/templates/request/detail.html:44
#: request/templates/request/detail.html:76
#| msgid "description"
msgid "VM description"
msgstr "Virtuális gép leírása"
#: request/templates/request/detail.html:46
#| msgid "Create lease"
msgid "Current lease"
msgstr "Jelenlegi bérlet"
#: request/templates/request/detail.html:48
#| msgid "requested IP"
msgid "Requested lease"
msgstr "Igényelt bérlet"
#: request/templates/request/detail.html:54
#| msgid "Template"
msgid "Template type"
msgstr "Sablon típus"
...
...
@@ -4510,12 +4488,10 @@ msgid "(old values in parentheses)"
msgstr "(régi értékek zárójelben)"
#: request/templates/request/detail.html:83
#| msgid "number of cores"
msgid "Number of cores"
msgstr "Magok száma"
#: request/templates/request/detail.html:85
#| msgid "RAM size"
msgid "Ram size"
msgstr "RAM-méret"
...
...
@@ -4524,7 +4500,6 @@ msgid "Reason (sent to the user if the request is declined)"
msgstr "Indok (elutasítás esetén a felhasználó megkapja)"
#: request/templates/request/detail.html:103
#| msgid "Online"
msgid "Decline"
msgstr "Elutasít"
...
...
@@ -4538,7 +4513,6 @@ msgstr "Elfogadás"
#: request/templates/request/detail.html:122
#, python-format
#| msgid " subactivity of <a href=\"%(url)s\">%(name)s</a>\n"
msgid ""
"\n"
" Closed %(closed)s by <a href=\"%(user.profile.get_absolute_url)s\">%(user)s</a>\n"
...
...
@@ -4552,7 +4526,6 @@ msgid "lease type"
msgstr "bérlet típus"
#: request/templates/request/lease-type-form.html:33
#| msgid "new lease"
msgid "New lease type"
msgstr "Új bérlet típus"
...
...
@@ -4563,43 +4536,35 @@ msgid "Request types"
msgstr "Kérés típusok"
#: request/templates/request/list.html:21
#| msgid "Filter by vlans"
msgid "Filter by status"
msgstr "Állapot szerinti szűrés"
#: request/templates/request/request-lease.html:12
#| msgid "new lease"
msgid "Request new lease"
msgstr "Új bérlet igénylése"
#: request/templates/request/request-resource.html:13
#: request/templates/request/request-resource.html:29
#| msgid "Change resources"
msgid "Request new resources"
msgstr "Új erőforrások igénylése"
#: request/templates/request/request-template.html:12
#| msgid "Delete template"
msgid "Request template access"
msgstr "Sablon hozzáférés igénylése"
#: request/templates/request/template-type-form.html:8
#| msgid "Template successfully deleted."
msgid "template access type"
msgstr "sablon hozzáférés típus"
#: request/templates/request/template-type-form.html:33
#| msgid "Template successfully deleted."
msgid "New Template Access type"
msgstr "Új sablon hozzáférés típus"
#: request/templates/request/type-list.html:17
#| msgid "new lease"
msgid "new lease type"
msgstr "új bérlet típus"
#: request/templates/request/type-list.html:21
#| msgid "new template"
msgid "new template access type"
msgstr "új sablon hozzáférés típus"
...
...
@@ -4621,6 +4586,26 @@ msgid ""
" "
msgstr ""
#: request/views.py:106
#| msgid "Template successfully deleted."
msgid "Template access type successfully updated."
msgstr "A sablon hozzáférés típus frissítésre került."
#: request/views.py:114
#| msgid "Interface successfully created."
msgid "New template access type successfully created."
msgstr "A sablon hozzáférés típus létrehozásra került."
#: request/views.py:131
#| msgid "Lease successfully deleted."
msgid "Lease type successfully updated."
msgstr "A bérlet típus frissítésre kerül."
#: request/views.py:139
#| msgid "Node successfully created."
msgid "New lease type successfully created."
msgstr "A bérlet típus létrehozása került."
#: storage/models.py:50
msgid "path"
msgstr "útvonal"
...
...
@@ -4739,18 +4724,22 @@ msgstr ""
msgid "Operation aborted by user."
msgstr "A műveletet a felhasználó megszakította."
#: templates/403.html:6 templates/500.html:6
msgid ":("
msgstr ":("
#: templates/403.html:18
msgid "Forbidden"
msgstr ""
#: templates/404.html:4 templates/404.html.py:6
msgid "Page not found"
msgstr "Az oldal nem található"
#: templates/404.html:
9
#: templates/404.html:
15
msgid "This page does not exist."
msgstr "Az oldal nem létezik."
#: templates/500.html:6
msgid ":("
msgstr ":("
#: templates/500.html:18
msgid "Internal Server Error... Please leave the server alone..."
msgstr "Kiszolgálóoldali hiba. Ne bántsa a szervert."
...
...
@@ -6343,7 +6332,7 @@ msgstr "erőforrások módosítása"
msgid "Change resources of a stopped virtual machine."
msgstr "Leállított virtuális gép erőforrásainak változtatása."
#: vm/operations.py:13
50
#: vm/operations.py:13
61
#, python-format
msgid ""
"Priority: %(priority)s, Num cores: %(num_cores)s, Ram size: %(ram_size)s"
...
...
@@ -6351,16 +6340,11 @@ msgstr ""
"Prioritás: %(priority)s, magok száma: %(num_cores)s, memória mérete: "
"%(ram_size)s"
#: vm/operations.py:1359
#| msgid "resources change"
msgid "resources request"
msgstr "erőforrás igénylés"
#: vm/operations.py:1385
#: vm/operations.py:1370
msgid "password reset"
msgstr "jelszó visszaállítása"
#: vm/operations.py:13
86
#: vm/operations.py:13
71
msgid ""
"Generate and set a new login password on the virtual machine. This operation"
" requires the agent running. Resetting the password is not warranted to "
...
...
@@ -6370,52 +6354,52 @@ msgstr ""
"művelet megköveteli az ügynök futását. A jelszó átállítása nem garantálja a "
"sikeres belépést, mivel más beállítások is megakadályozhatják ezt."
#: vm/operations.py:1
410
#: vm/operations.py:1
395
msgid "agent"
msgstr "ügynök"
#: vm/operations.py:14
51
#: vm/operations.py:14
36
msgid "starting"
msgstr "indítás"
#: vm/operations.py:14
69
#: vm/operations.py:14
54
msgid "wait agent restarting"
msgstr "várakozás az ügynök újraindulására"
#: vm/operations.py:14
86
#: vm/operations.py:14
71
msgid "cleanup"
msgstr "takarítás"
#: vm/operations.py:14
92
#: vm/operations.py:14
77
msgid "set time"
msgstr "óra beállítása"
#: vm/operations.py:1
503
#: vm/operations.py:1
488
msgid "set hostname"
msgstr "gépnév beállítása"
#: vm/operations.py:1
514
#: vm/operations.py:1
499
msgid "restart networking"
msgstr "hálózat újratöltése"
#: vm/operations.py:15
20
#: vm/operations.py:15
05
msgid "change ip"
msgstr "IP cím beállítása"
#: vm/operations.py:15
35
#: vm/operations.py:15
20
msgid "update agent"
msgstr "ügynök frissítése"
#: vm/operations.py:15
41
#: vm/operations.py:15
26
#, python-format
msgid "update agent to %(version)s"
msgstr "ügynökfrissítés erre: %(version)s"
#: vm/operations.py:16
24
#: vm/operations.py:16
09
msgid "mount store"
msgstr "tárhely csatolása"
#: vm/operations.py:16
26
#: vm/operations.py:16
11
msgid ""
"This operation attaches your personal file store. Other users who have "
"access to this machine can see these files as well."
...
...
@@ -6423,28 +6407,28 @@ msgstr ""
"Ez a művelet csatolja az ön személyes tárhelyét. A gép más felhasználói is "
"elérhetik fájljait."
#: vm/operations.py:16
60
#: vm/operations.py:16
45
msgid "attach disk"
msgstr "lemez csatolása"
#: vm/operations.py:16
71
#: vm/operations.py:16
56
msgid "Resource was not found."
msgstr "Nem található az erőforrás."
#: vm/operations.py:16
72
#: vm/operations.py:16
57
#, python-format
msgid "Resource was not found. %(exception)s"
msgstr "Nem található az erőforrás. %(exception)s"
#: vm/operations.py:16
81
#: vm/operations.py:16
66
msgid "detach disk"
msgstr "lemez leválasztása"
#: vm/operations.py:16
96
#: vm/operations.py:16
81
msgid "attach network"
msgstr "hálózat csatolása"
#: vm/operations.py:1
703
#: vm/operations.py:1
688
msgid "detach network"
msgstr "hálózat lecsatolása"
...
...
@@ -6484,6 +6468,9 @@ msgstr ""
msgid "x"
msgstr "x"
#~ msgid "resources request"
#~ msgstr "erőforrás igénylés"
#~ msgid ""
#~ "Dear %s, you've signed in as administrator!<br />Reloading in 10 seconds..."
#~ msgstr "Kedves %s, Ön rendszergazda!<br />Újratöltés 10 másodpercen belül..."
...
...
circle/request/views.py
View file @
fddee865
...
...
@@ -19,9 +19,11 @@ from __future__ import unicode_literals, absolute_import
from
django.views.generic
import
(
UpdateView
,
TemplateView
,
DetailView
,
CreateView
,
FormView
,
DeleteView
,
)
from
django.contrib.messages.views
import
SuccessMessageMixin
from
django.shortcuts
import
redirect
,
get_object_or_404
from
django.core.exceptions
import
PermissionDenied
,
SuspiciousOperation
from
django.core.urlresolvers
import
reverse
from
django.utils.translation
import
ugettext
as
_
from
braces.views
import
SuperuserRequiredMixin
,
LoginRequiredMixin
from
django_tables2
import
SingleTableView
...
...
@@ -97,17 +99,19 @@ class RequestDetail(LoginRequiredMixin, DetailView):
class
TemplateAccessTypeDetail
(
LoginRequiredMixin
,
SuperuserRequiredMixin
,
UpdateView
):
SuccessMessageMixin
,
UpdateView
):
model
=
TemplateAccessType
template_name
=
"request/template-type-form.html"
form_class
=
TemplateAccessTypeForm
success_message
=
_
(
"Template access type successfully updated."
)
class
TemplateAccessTypeCreate
(
LoginRequiredMixin
,
SuperuserRequiredMixin
,
CreateView
):
SuccessMessageMixin
,
CreateView
):
model
=
TemplateAccessType
template_name
=
"request/template-type-form.html"
form_class
=
TemplateAccessTypeForm
success_message
=
_
(
"New template access type successfully created."
)
class
TemplateAccessTypeDelete
(
LoginRequiredMixin
,
SuperuserRequiredMixin
,
...
...
@@ -119,16 +123,20 @@ class TemplateAccessTypeDelete(LoginRequiredMixin, SuperuserRequiredMixin,
return
reverse
(
"request.views.type-list"
)
class
LeaseTypeDetail
(
LoginRequiredMixin
,
SuperuserRequiredMixin
,
UpdateView
):
class
LeaseTypeDetail
(
LoginRequiredMixin
,
SuperuserRequiredMixin
,
SuccessMessageMixin
,
UpdateView
):
model
=
LeaseType
template_name
=
"request/lease-type-form.html"
form_class
=
LeaseTypeForm
success_message
=
_
(
"Lease type successfully updated."
)
class
LeaseTypeCreate
(
LoginRequiredMixin
,
SuperuserRequiredMixin
,
CreateView
):
class
LeaseTypeCreate
(
LoginRequiredMixin
,
SuperuserRequiredMixin
,
SuccessMessageMixin
,
CreateView
):
model
=
LeaseType
template_name
=
"request/lease-type-form.html"
form_class
=
LeaseTypeForm
success_message
=
_
(
"New lease type successfully created."
)
class
LeaseTypeDelete
(
LoginRequiredMixin
,
SuperuserRequiredMixin
,
DeleteView
):
...
...
@@ -154,7 +162,7 @@ class RequestTypeList(LoginRequiredMixin, SuperuserRequiredMixin,
return
context
class
TemplateRequestView
(
FormView
):
class
TemplateRequestView
(
LoginRequiredMixin
,
FormView
):
form_class
=
TemplateRequestForm
template_name
=
"request/request-template.html"
...
...
@@ -185,7 +193,7 @@ class TemplateRequestView(FormView):
return
redirect
(
"/"
)
class
VmRequestMixin
(
object
):
class
VmRequestMixin
(
LoginRequiredMixin
,
object
):
def
get_vm
(
self
):
return
get_object_or_404
(
Instance
,
pk
=
self
.
kwargs
[
'vm_pk'
])
...
...
circle/templates/403.html
0 → 100644
View file @
fddee865
{% extends "base.html" %}
{% load i18n %}
{% block title %}HTTP 403{% endblock %}
{% block page_title %}{% trans ":(" %}{% endblock page_title %}
{% block content %}
<div
class=
"alert alert-danger"
style=
"font-size: 22px; margin-top: 2em;"
>
<div
class=
"row"
>
<div
class=
"col-md-2"
style=
"text-align: center;"
>
HTTP 403
</div>
<div
class=
"col-md-10"
style=
"text-align: center;"
>
{% if error %}
{{ error }}
{% else %}
{% trans "Forbidden" %}
{% endif %}
</div>
</div>
</div>
{% endblock content %}
circle/templates/404.html
View file @
fddee865
...
...
@@ -6,5 +6,14 @@
{% block page_title %}{% trans "Page not found" %}{% endblock page_title %}
{% block content %}
<p>
{% trans "This page does not exist." %}
</p>
<div
class=
"alert alert-warning"
style=
"font-size: 22px; margin-top: 2em;"
>
<div
class=
"row"
>
<div
class=
"col-md-2"
style=
"text-align: center;"
>
HTTP 404
</div>
<div
class=
"col-md-10"
style=
"text-align: center;"
>
{% trans "This page does not exist." %}
</div>
</div>
</div>
{% endblock content %}
circle/templates/500.html
View file @
fddee865
{% extends "
dashboard/
base.html" %}
{% extends "base.html" %}
{% load i18n %}
{% block title %}HTTP 500{% endblock %}
...
...
circle/vm/models/instance.py
View file @
fddee865
...
...
@@ -62,7 +62,6 @@ scheduler = import_module(name=django.conf.settings.VM_SCHEDULER)
ACCESS_PROTOCOLS
=
django
.
conf
.
settings
.
VM_ACCESS_PROTOCOLS
ACCESS_METHODS
=
[(
key
,
name
)
for
key
,
(
name
,
port
,
transport
)
in
ACCESS_PROTOCOLS
.
iteritems
()]
VNC_PORT_RANGE
=
(
20000
,
65536
)
# inclusive start, exclusive end
def
find_unused_port
(
port_range
,
used_ports
=
[]):
...
...
@@ -81,7 +80,7 @@ def find_unused_port(port_range, used_ports=[]):
def
find_unused_vnc_port
():
port
=
find_unused_port
(
port_range
=
VNC_PORT_RANGE
,
port_range
=
django
.
conf
.
settings
.
VNC_PORT_RANGE
,
used_ports
=
Instance
.
objects
.
values_list
(
'vnc_port'
,
flat
=
True
))
if
port
is
None
:
...
...
requirements/base.txt
View file @
fddee865
...
...
@@ -11,11 +11,12 @@ django-braces==1.4.0
django-celery==3.1.16
django-crispy-forms==1.4.0
django-model-utils==2.2
djangosaml2==0.13.0
django-sizefield==0.6
django-sshkey==2.2.0
django-statici18n==1.1
django-tables2==0.15.0
git+https://git.ik.bme.hu/circle/django-taggit.git
django-taggit==0.13.0
docutils==0.12
Jinja2==2.7.3
jsonfield==1.0.0
...
...
@@ -32,6 +33,7 @@ pyinotify==0.9.4
pytz==2014.7
requests==2.5.3
salt==2014.1.0
shutilwhich==1.0.1
simplejson==3.6.5
six==1.8.0
slimit==0.8.1
...
...
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