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
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
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
331 additions
and
232 deletions
+331
-232
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
+22
-12
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
()
if
request
.
user
.
is_superuser
:
ctx
[
'error'
]
=
exception
.
get_admin_text
()
else
:
ctx
[
'error'
]
=
exception
.
get_user_text
()
except
:
pass
else
:
try
:
if
request
.
user
.
is_superuser
():
ctx
[
'error'
]
=
exception
.
get_admin_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"