Commit fddee865 by Kálmán Viktor

Merge branch 'master' into feature-gitlabheader

parents 919a6b13 ff91b0ff
...@@ -450,7 +450,7 @@ if get_env_variable('DJANGO_SAML', 'FALSE') == 'TRUE': ...@@ -450,7 +450,7 @@ if get_env_variable('DJANGO_SAML', 'FALSE') == 'TRUE':
) )
AUTHENTICATION_BACKENDS = ( AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend', 'django.contrib.auth.backends.ModelBackend',
'djangosaml2.backends.Saml2Backend', 'common.backends.Saml2Backend',
) )
remote_metadata = join(SITE_ROOT, 'remote_metadata.xml') remote_metadata = join(SITE_ROOT, 'remote_metadata.xml')
...@@ -528,6 +528,10 @@ except: ...@@ -528,6 +528,10 @@ except:
LOCALE_PATHS = (join(SITE_ROOT, 'locale'), ) LOCALE_PATHS = (join(SITE_ROOT, 'locale'), )
COMPANY_NAME = get_env_variable("COMPANY_NAME", "BME IK 2015") 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_host = environ.get("GRAPHITE_HOST", None)
graphite_port = environ.get("GRAPHITE_PORT", None) graphite_port = environ.get("GRAPHITE_PORT", None)
if graphite_host and graphite_port: if graphite_host and graphite_port:
......
...@@ -88,3 +88,4 @@ if get_env_variable('DJANGO_SAML', 'FALSE') == 'TRUE': ...@@ -88,3 +88,4 @@ if get_env_variable('DJANGO_SAML', 'FALSE') == 'TRUE':
) )
handler500 = 'common.views.handler500' handler500 = 'common.views.handler500'
handler403 = 'common.views.handler403'
# -*- 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 '+%04x' % 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)
...@@ -170,8 +170,8 @@ class Operation(object): ...@@ -170,8 +170,8 @@ class Operation(object):
raise ImproperlyConfigured( raise ImproperlyConfigured(
"Set required_perms to () if none needed.") "Set required_perms to () if none needed.")
if not user.has_perms(cls.required_perms): if not user.has_perms(cls.required_perms):
raise PermissionDenied("%s doesn't have the required permissions." raise PermissionDenied(
% user) u"%s doesn't have the required permissions." % user)
if cls.superuser_required and not user.is_superuser: if cls.superuser_required and not user.is_superuser:
raise humanize_exception(ugettext_noop( raise humanize_exception(ugettext_noop(
"Superuser privileges are required."), PermissionDenied()) "Superuser privileges are required."), PermissionDenied())
......
...@@ -19,32 +19,42 @@ from sys import exc_info ...@@ -19,32 +19,42 @@ from sys import exc_info
import logging import logging
from django.template import RequestContext
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from django.template import RequestContext
from .models import HumanReadableException from .models import HumanReadableException
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def handler500(request): def get_context(request, exception):
cls, exception, traceback = exc_info()
logger.exception("unhandled exception")
ctx = {} ctx = {}
if isinstance(exception, HumanReadableException): if issubclass(exception.__class__, HumanReadableException):
try: 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: except:
pass pass
else: return ctx
try:
if request.user.is_superuser():
ctx['error'] = exception.get_admin_text() def handler500(request):
except: cls, exception, traceback = exc_info()
pass logger.exception("unhandled exception")
ctx = get_context(request, exception)
try: try:
resp = render_to_response("500.html", ctx, RequestContext(request)) resp = render_to_response("500.html", ctx, RequestContext(request))
except: except:
resp = render_to_response("500.html", ctx) resp = render_to_response("500.html", ctx)
resp.status_code = 500 resp.status_code = 500
return resp 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
...@@ -309,7 +309,7 @@ if hasattr(settings, 'SAML_ORG_ID_ATTRIBUTE'): ...@@ -309,7 +309,7 @@ if hasattr(settings, 'SAML_ORG_ID_ATTRIBUTE'):
attributes = kwargs.pop('attributes') attributes = kwargs.pop('attributes')
atr = settings.SAML_ORG_ID_ATTRIBUTE atr = settings.SAML_ORG_ID_ATTRIBUTE
try: try:
value = attributes[atr][0] value = attributes[atr][0].upper()
except Exception as e: except Exception as e:
value = None value = None
logger.info("save_org_id couldn't find attribute. %s", unicode(e)) logger.info("save_org_id couldn't find attribute. %s", unicode(e))
...@@ -339,7 +339,7 @@ if hasattr(settings, 'SAML_ORG_ID_ATTRIBUTE'): ...@@ -339,7 +339,7 @@ if hasattr(settings, 'SAML_ORG_ID_ATTRIBUTE'):
group, unicode(g)) group, unicode(g))
g.user_set.add(sender) 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.group.user_set.add(sender)
i.delete() i.delete()
......
...@@ -8,11 +8,13 @@ ...@@ -8,11 +8,13 @@
<a class="btn btn-default" href="{{object.get_absolute_url}}" data-dismiss="modal"> <a class="btn btn-default" href="{{object.get_absolute_url}}" data-dismiss="modal">
{% trans "Cancel" %} {% trans "Cancel" %}
</a> </a>
{% if lease_types %}
<a class="btn btn-primary" id="vm-renew-request-lease-button" <a class="btn btn-primary" id="vm-renew-request-lease-button"
href="{% url "request.views.request-lease" vm_pk=object.pk %}"> href="{% url "request.views.request-lease" vm_pk=object.pk %}">
<i class="fa fa-forward"></i> <i class="fa fa-forward"></i>
{% trans "Request longer lease" %} {% trans "Request longer lease" %}
</a> </a>
{% endif %}
<button class="btn btn-{{ opview.effect }} btn-op-form-send" type="submit" id="op-form-send"> <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 }} {% if opview.icon %}<i class="fa fa-fw fa-{{opview.icon}}"></i> {% endif %}{{ op.name|capfirst }}
</button> </button>
......
...@@ -13,11 +13,11 @@ ...@@ -13,11 +13,11 @@
{% if op.resources_change %} {% if op.resources_change %}
<button type="submit" class="btn btn-success btn-sm change-resources-button" <button type="submit" class="btn btn-success btn-sm change-resources-button"
id="vm-details-resources-save" data-vm="{{ instance.pk }}" id="vm-details-resources-save" data-vm="{{ instance.pk }}"
{% if op.resources_change.disabled %}disabled{% endif %}> {% if not save_resources_enabled %}disabled{% endif %}>
<i class="fa fa-floppy-o"></i> {% trans "Save resources" %} <i class="fa fa-floppy-o"></i> {% trans "Save resources" %}
</button> </button>
<span class="change-resources-help" <span class="change-resources-help"
{% if not op.resources_change.disabled %}style="display: none;"{% endif %}> {% if save_resources_enabled %}style="display: none;"{% endif %}>
{% trans "Stop your VM to change resources." %} {% trans "Stop your VM to change resources." %}
</span> </span>
{% else %} {% else %}
......
...@@ -146,7 +146,7 @@ class GroupDetailView(CheckedDetailView): ...@@ -146,7 +146,7 @@ class GroupDetailView(CheckedDetailView):
self.object.user_set.add(entity) self.object.user_set.add(entity)
except User.DoesNotExist: except User.DoesNotExist:
if saml_available: if saml_available:
FutureMember.objects.get_or_create(org_id=name, FutureMember.objects.get_or_create(org_id=name.upper(),
group=self.object) group=self.object)
else: else:
messages.warning(request, _('User "%s" not found.') % name) messages.warning(request, _('User "%s" not found.') % name)
......
...@@ -70,7 +70,7 @@ def search_user(keyword): ...@@ -70,7 +70,7 @@ def search_user(keyword):
return User.objects.get(username=keyword) return User.objects.get(username=keyword)
except User.DoesNotExist: except User.DoesNotExist:
try: try:
return User.objects.get(profile__org_id=keyword) return User.objects.get(profile__org_id__iexact=keyword)
except User.DoesNotExist: except User.DoesNotExist:
return User.objects.get(email=keyword) return User.objects.get(email=keyword)
......
...@@ -66,7 +66,7 @@ from ..forms import ( ...@@ -66,7 +66,7 @@ from ..forms import (
VmPortRemoveForm, VmPortAddForm, VmPortRemoveForm, VmPortAddForm,
VmRemoveInterfaceForm, VmRemoveInterfaceForm,
) )
from request.models import TemplateAccessType from request.models import TemplateAccessType, LeaseType
from request.forms import LeaseRequestForm, TemplateRequestForm from request.forms import LeaseRequestForm, TemplateRequestForm
from ..models import Favourite from ..models import Favourite
from manager.scheduler import has_traits from manager.scheduler import has_traits
...@@ -173,6 +173,10 @@ class VmDetailView(GraphMixin, CheckedDetailView): ...@@ -173,6 +173,10 @@ class VmDetailView(GraphMixin, CheckedDetailView):
context['is_operator'] = is_operator context['is_operator'] = is_operator
context['is_owner'] = is_owner 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 return context
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
...@@ -681,6 +685,7 @@ class VmRenewView(FormOperationMixin, TokenOperationView, VmOperationView): ...@@ -681,6 +685,7 @@ class VmRenewView(FormOperationMixin, TokenOperationView, VmOperationView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(VmRenewView, self).get_context_data(**kwargs) context = super(VmRenewView, self).get_context_data(**kwargs)
context['lease_request_form'] = LeaseRequestForm(request=self.request) context['lease_request_form'] = LeaseRequestForm(request=self.request)
context['lease_types'] = LeaseType.objects.exists()
return context return context
......
...@@ -6,9 +6,9 @@ msgid "" ...@@ -6,9 +6,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-03-30 10:46+0200\n" "POT-Creation-Date: 2015-04-20 13:16+0200\n"
"PO-Revision-Date: 2015-03-30 12:58+0116\n" "PO-Revision-Date: 2015-04-20 13:31+0116\n"
"Last-Translator: Elek Elekebb EEeee <viktorvector@gmail.com>\n" "Last-Translator: Test Viktor <kviktor@cloud.bme.hu>\n"
"Language-Team: Hungarian <cloud@ik.bme.hu>\n" "Language-Team: Hungarian <cloud@ik.bme.hu>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
...@@ -32,7 +32,6 @@ msgstr "Hiba." ...@@ -32,7 +32,6 @@ msgstr "Hiba."
#: common/models.py:72 #: common/models.py:72
#, python-format #, python-format
#| msgid "Unhandled exception: %(error)s"
msgid "Unhandled exception: %(e)s: %(error)s" msgid "Unhandled exception: %(e)s: %(error)s"
msgstr "Kezeletlen kivétel: %(e)s: %(error)s" msgstr "Kezeletlen kivétel: %(e)s: %(error)s"
...@@ -59,7 +58,7 @@ msgstr "feladat uuid" ...@@ -59,7 +58,7 @@ msgstr "feladat uuid"
#: common/models.py:158 #: common/models.py:158
#: dashboard/templates/dashboard/instanceactivity_detail.html:37 #: dashboard/templates/dashboard/instanceactivity_detail.html:37
#: firewall/models.py:284 request/models.py:223 vm/models/common.py:84 #: firewall/models.py:284 request/models.py:226 vm/models/common.py:84
#: vm/models/instance.py:130 vm/models/instance.py:211 #: vm/models/instance.py:130 vm/models/instance.py:211
msgid "user" msgid "user"
msgstr "felhasználó" msgstr "felhasználó"
...@@ -139,8 +138,8 @@ msgstr "szerver" ...@@ -139,8 +138,8 @@ msgstr "szerver"
msgid "realtime" msgid "realtime"
msgstr "valós idejű" msgstr "valós idejű"
#: dashboard/forms.py:93 dashboard/forms.py:810 dashboard/forms.py:900 #: dashboard/forms.py:93 dashboard/forms.py:811 dashboard/forms.py:901
#: dashboard/forms.py:1351 dashboard/tables.py:270 #: dashboard/forms.py:1352 dashboard/tables.py:270
#: dashboard/templates/dashboard/_vm-create-2.html:20 #: dashboard/templates/dashboard/_vm-create-2.html:20
#: dashboard/templates/dashboard/vm-detail/home.html:9 #: dashboard/templates/dashboard/vm-detail/home.html:9
#: dashboard/templates/dashboard/vm-list.html:62 firewall/models.py:296 #: dashboard/templates/dashboard/vm-list.html:62 firewall/models.py:296
...@@ -201,10 +200,10 @@ msgstr "" ...@@ -201,10 +200,10 @@ msgstr ""
msgid "Create" msgid "Create"
msgstr "Létrehozás" msgstr "Létrehozás"
#: dashboard/forms.py:282 dashboard/forms.py:1231 dashboard/forms.py:1248 #: dashboard/forms.py:282 dashboard/forms.py:1232 dashboard/forms.py:1249
#: dashboard/forms.py:1283 dashboard/forms.py:1321 dashboard/forms.py:1364 #: dashboard/forms.py:1284 dashboard/forms.py:1322 dashboard/forms.py:1365
#: dashboard/forms.py:1405 dashboard/forms.py:1425 dashboard/forms.py:1488 #: dashboard/forms.py:1406 dashboard/forms.py:1426 dashboard/forms.py:1489
#: dashboard/forms.py:1600 #: dashboard/forms.py:1601
#: dashboard/templates/dashboard/_manage_access.html:73 #: dashboard/templates/dashboard/_manage_access.html:73
#: dashboard/templates/dashboard/connect-command-create.html:37 #: dashboard/templates/dashboard/connect-command-create.html:37
#: dashboard/templates/dashboard/connect-command-edit.html:37 #: dashboard/templates/dashboard/connect-command-edit.html:37
...@@ -212,20 +211,20 @@ msgstr "Létrehozás" ...@@ -212,20 +211,20 @@ msgstr "Létrehozás"
#: dashboard/templates/dashboard/lease-edit.html:96 #: dashboard/templates/dashboard/lease-edit.html:96
#: dashboard/templates/dashboard/template-tx-owner.html:12 #: dashboard/templates/dashboard/template-tx-owner.html:12
#: dashboard/templates/dashboard/vm-detail/tx-owner.html:12 #: dashboard/templates/dashboard/vm-detail/tx-owner.html:12
#: network/forms.py:86 network/forms.py:100 network/forms.py:122 #: network/forms.py:88 network/forms.py:103 network/forms.py:126
#: network/forms.py:162 network/forms.py:187 network/forms.py:226 #: network/forms.py:167 network/forms.py:195 network/forms.py:236
#: network/forms.py:247 network/forms.py:298 network/forms.py:323 #: network/forms.py:261 network/forms.py:313 network/forms.py:342
#: request/forms.py:38 request/forms.py:54 #: request/forms.py:38 request/forms.py:54
msgid "Save" msgid "Save"
msgstr "Mentés" msgstr "Mentés"
#: dashboard/forms.py:312 dashboard/forms.py:1028 #: dashboard/forms.py:312 dashboard/forms.py:1029
#: dashboard/templates/dashboard/_vm-remove-port.html:15 #: dashboard/templates/dashboard/_vm-remove-port.html:15
#: dashboard/templates/dashboard/vm-detail.html:102 network/views.py:659 #: dashboard/templates/dashboard/vm-detail.html:102 network/views.py:659
msgid "Host" msgid "Host"
msgstr "Gép" msgstr "Gép"
#: dashboard/forms.py:383 dashboard/forms.py:781 dashboard/forms.py:991 #: dashboard/forms.py:383 dashboard/forms.py:782 dashboard/forms.py:992
#: dashboard/templates/dashboard/node-detail.html:5 #: dashboard/templates/dashboard/node-detail.html:5
#: dashboard/templates/dashboard/vm-detail/home.html:118 #: dashboard/templates/dashboard/vm-detail/home.html:118
#: dashboard/templates/dashboard/vm-list.html:87 #: dashboard/templates/dashboard/vm-list.html:87
...@@ -265,24 +264,24 @@ msgstr "Törlés ideje" ...@@ -265,24 +264,24 @@ msgstr "Törlés ideje"
msgid "Save changes" msgid "Save changes"
msgstr "Változások mentése" msgstr "Változások mentése"
#: dashboard/forms.py:747 #: dashboard/forms.py:748
msgid "Set expiration times even if they are shorter than the current value." msgid "Set expiration times even if they are shorter than the current value."
msgstr "" msgstr ""
"Akkor is állítsa át a lejárati időket, ha rövidebbek lesznek a jelenleginél." "Akkor is állítsa át a lejárati időket, ha rövidebbek lesznek a jelenleginél."
#: dashboard/forms.py:750 #: dashboard/forms.py:751
msgid "Save selected lease." msgid "Save selected lease."
msgstr "Kiválasztott bérlet mentése." msgstr "Kiválasztott bérlet mentése."
#: dashboard/forms.py:759 #: dashboard/forms.py:760
msgid "Length" msgid "Length"
msgstr "Hossz" msgstr "Hossz"
#: dashboard/forms.py:767 #: dashboard/forms.py:768
msgid "Live migration" msgid "Live migration"
msgstr "Live migration" msgstr "Live migration"
#: dashboard/forms.py:769 #: dashboard/forms.py:770
msgid "" msgid ""
"Live migration is a way of moving virtual machines between hosts with a " "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 " "service interruption of at most some seconds. Please note that it can take "
...@@ -293,195 +292,195 @@ msgstr "" ...@@ -293,195 +292,195 @@ msgstr ""
"hogy ez terhelt gépek esetén sokáig tarthat és nagy hálózati forgalommal " "hogy ez terhelt gépek esetén sokáig tarthat és nagy hálózati forgalommal "
"jár." "jár."
#: dashboard/forms.py:787 #: dashboard/forms.py:788
msgid "Forcibly interrupt all running activities." msgid "Forcibly interrupt all running activities."
msgstr "Futó tevékenységek erőltetett befejezése." msgstr "Futó tevékenységek erőltetett befejezése."
#: dashboard/forms.py:788 #: dashboard/forms.py:789
msgid "Set all activities to finished state, but don't interrupt any tasks." msgid "Set all activities to finished state, but don't interrupt any tasks."
msgstr "" msgstr ""
"Minden tevékenység befejezettre állítása (a feladatok megszakítása nélkül)." "Minden tevékenység befejezettre állítása (a feladatok megszakítása nélkül)."
#: dashboard/forms.py:791 #: dashboard/forms.py:792
msgid "New status" msgid "New status"
msgstr "Új állapot" msgstr "Új állapot"
#: dashboard/forms.py:792 #: dashboard/forms.py:793
msgid "Reset node" msgid "Reset node"
msgstr "Csomópont visszaállítása" msgstr "Csomópont visszaállítása"
#: dashboard/forms.py:806 #: dashboard/forms.py:807
msgid "use emergency state change" msgid "use emergency state change"
msgstr "vész-állapotváltás használata" msgstr "vész-állapotváltás használata"
#: dashboard/forms.py:812 dashboard/forms.py:832 #: dashboard/forms.py:813 dashboard/forms.py:833
#: dashboard/templates/dashboard/store/_list-box.html:117 #: dashboard/templates/dashboard/store/_list-box.html:117
msgid "Size" msgid "Size"
msgstr "Méret" msgstr "Méret"
#: dashboard/forms.py:813 #: dashboard/forms.py:814
msgid "Size of disk to create in bytes or with units like MB or GB." 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)." msgstr "Létrehozandó lemez mérete byte-okban vagy mértékegységgel (MB, GB)."
#: dashboard/forms.py:825 dashboard/forms.py:854 #: dashboard/forms.py:826 dashboard/forms.py:855
msgid "Invalid format, you can use GB or MB!" msgid "Invalid format, you can use GB or MB!"
msgstr "Érvénytelen formátum. „GB” és „MB” is használható." msgstr "Érvénytelen formátum. „GB” és „MB” is használható."
#: dashboard/forms.py:833 #: dashboard/forms.py:834
msgid "Size to resize the disk in bytes or with units like MB or GB." 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)." msgstr "A lemez kívánt mérete byte-okban vagy mértékegységgel (MB, GB)."
#: dashboard/forms.py:844 dashboard/forms.py:880 #: dashboard/forms.py:845 dashboard/forms.py:881
#: dashboard/templates/dashboard/storage/disk.html:7 #: dashboard/templates/dashboard/storage/disk.html:7
#: dashboard/templates/dashboard/storage/disk.html:24 #: dashboard/templates/dashboard/storage/disk.html:24
msgid "Disk" msgid "Disk"
msgstr "Lemez" msgstr "Lemez"
#: dashboard/forms.py:857 #: dashboard/forms.py:858
msgid "Disk size must be greater than the actual size." msgid "Disk size must be greater than the actual size."
msgstr "A lemez mérete nagyobb kell legyen a jelenleginél." msgstr "A lemez mérete nagyobb kell legyen a jelenleginél."
#: dashboard/forms.py:866 dashboard/forms.py:891 #: dashboard/forms.py:867 dashboard/forms.py:892
#, python-format #, python-format
msgid "<label>Disk:</label> %s" msgid "<label>Disk:</label> %s"
msgstr "<label>Lemez:</label> %s" msgstr "<label>Lemez:</label> %s"
#: dashboard/forms.py:901 #: dashboard/forms.py:902
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
#: dashboard/forms.py:911 #: dashboard/forms.py:912
msgid "Could not find filename in URL, please specify a name explicitly." 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." msgstr "Az URL-ben nem található fájlnév. Kérem adja meg explicite."
#: dashboard/forms.py:925 #: dashboard/forms.py:926
msgid "Interface" msgid "Interface"
msgstr "Interfészek" msgstr "Interfészek"
#: dashboard/forms.py:937 #: dashboard/forms.py:938
#, python-brace-format #, python-brace-format
msgid "<label>Vlan:</label> {0}" msgid "<label>Vlan:</label> {0}"
msgstr "<label>Vlan:</label> {0}" msgstr "<label>Vlan:</label> {0}"
#: dashboard/forms.py:952 #: dashboard/forms.py:953
#: dashboard/templates/dashboard/_vm-remove-port.html:17 #: dashboard/templates/dashboard/_vm-remove-port.html:17
#: dashboard/templates/dashboard/node-detail/resources.html:28 #: dashboard/templates/dashboard/node-detail/resources.html:28
#: network/views.py:658 #: network/views.py:658
msgid "Vlan" msgid "Vlan"
msgstr "Vlan" msgstr "Vlan"
#: dashboard/forms.py:955 #: dashboard/forms.py:956
msgid "No more networks." msgid "No more networks."
msgstr "Nincs több hálózat." msgstr "Nincs több hálózat."
#: dashboard/forms.py:976 #: dashboard/forms.py:977
#, python-format #, python-format
msgid " (missing_traits: %s)" msgid " (missing_traits: %s)"
msgstr "(hiányzó jellemzők: %s)" msgstr "(hiányzó jellemzők: %s)"
#: dashboard/forms.py:992 #: dashboard/forms.py:993
msgid "" msgid ""
"Deploy virtual machine to this node (blank allows scheduling automatically)." "Deploy virtual machine to this node (blank allows scheduling automatically)."
msgstr "" msgstr ""
"A virtuális gép elindítása ezen a csomóponton (üresen hagyva automatikus " "A virtuális gép elindítása ezen a csomóponton (üresen hagyva automatikus "
"ütemezés)." "ütemezés)."
#: dashboard/forms.py:1009 dashboard/forms.py:1015 #: dashboard/forms.py:1010 dashboard/forms.py:1016
#: dashboard/templates/dashboard/_vm-remove-port.html:13 #: dashboard/templates/dashboard/_vm-remove-port.html:13
msgid "Port" msgid "Port"
msgstr "Port" msgstr "Port"
#: dashboard/forms.py:1018 dashboard/templates/dashboard/vm-detail.html:100 #: dashboard/forms.py:1019 dashboard/templates/dashboard/vm-detail.html:100
msgid "Protocol" msgid "Protocol"
msgstr "Protokoll" msgstr "Protokoll"
#: dashboard/forms.py:1040 #: dashboard/forms.py:1041
#, python-brace-format #, python-brace-format
msgid "<label>Host:</label> {0}" msgid "<label>Host:</label> {0}"
msgstr "<label>Gép:</label> {0}" msgstr "<label>Gép:</label> {0}"
#: dashboard/forms.py:1068 dashboard/templates/dashboard/profile.html:36 #: dashboard/forms.py:1069 dashboard/templates/dashboard/profile.html:37
#: dashboard/templates/dashboard/vm-detail.html:118 #: dashboard/templates/dashboard/vm-detail.html:118
msgid "Username" msgid "Username"
msgstr "Felhasználónév" msgstr "Felhasználónév"
#: dashboard/forms.py:1082 dashboard/templates/dashboard/vm-detail.html:120 #: dashboard/forms.py:1083 dashboard/templates/dashboard/vm-detail.html:120
msgid "Password" msgid "Password"
msgstr "Jelszó" msgstr "Jelszó"
#: dashboard/forms.py:1087 #: dashboard/forms.py:1088
msgid "Sign in" msgid "Sign in"
msgstr "Bejelentkezés" msgstr "Bejelentkezés"
#: dashboard/forms.py:1110 dashboard/templates/dashboard/profile.html:42 #: dashboard/forms.py:1111 dashboard/templates/dashboard/profile.html:43
msgid "Email address" msgid "Email address"
msgstr "E-mail cím" msgstr "E-mail cím"
#: dashboard/forms.py:1115 #: dashboard/forms.py:1116
msgid "Reset password" msgid "Reset password"
msgstr "Új jelszó" msgstr "Új jelszó"
#: dashboard/forms.py:1131 dashboard/forms.py:1257 #: dashboard/forms.py:1132 dashboard/forms.py:1258
msgid "Change password" msgid "Change password"
msgstr "Jelszóváltoztatás" msgstr "Jelszóváltoztatás"
#: dashboard/forms.py:1203 #: dashboard/forms.py:1204
msgid "Add trait" msgid "Add trait"
msgstr "Jellemző hozzáadása" msgstr "Jellemző hozzáadása"
#: dashboard/forms.py:1220 #: dashboard/forms.py:1221
msgid "Preferred language" msgid "Preferred language"
msgstr "Választott nyelv" msgstr "Választott nyelv"
#: dashboard/forms.py:1272 dashboard/templates/dashboard/group-list.html:14 #: dashboard/forms.py:1273 dashboard/templates/dashboard/group-list.html:14
#: dashboard/templates/dashboard/index-groups.html:7 #: dashboard/templates/dashboard/index-groups.html:7
#: dashboard/templates/dashboard/profile.html:60 #: dashboard/templates/dashboard/profile.html:62
#: dashboard/templates/dashboard/vm-detail/network.html:40 #: dashboard/templates/dashboard/vm-detail/network.html:40
#: network/templates/network/host-edit.html:32 templates/info/help.html:192 #: network/templates/network/host-edit.html:32 templates/info/help.html:192
msgid "Groups" msgid "Groups"
msgstr "Csoportok" msgstr "Csoportok"
#: dashboard/forms.py:1298 #: dashboard/forms.py:1299
msgid "Instance limit" msgid "Instance limit"
msgstr "Példány limit" msgstr "Példány limit"
#: dashboard/forms.py:1328 dashboard/templates/dashboard/lease-edit.html:86 #: dashboard/forms.py:1329 dashboard/templates/dashboard/lease-edit.html:86
msgid "Name of group or user" msgid "Name of group or user"
msgstr "Csoport vagy felhasználó neve" msgstr "Csoport vagy felhasználó neve"
#: dashboard/forms.py:1336 dashboard/forms.py:1345 #: dashboard/forms.py:1337 dashboard/forms.py:1346
msgid "Name of user" msgid "Name of user"
msgstr "Felhasználó neve" msgstr "Felhasználó neve"
#: dashboard/forms.py:1338 dashboard/forms.py:1347 #: dashboard/forms.py:1339 dashboard/forms.py:1348
msgid "E-mail address or identifier of user" msgid "E-mail address or identifier of user"
msgstr "A felhasználó e-mail címe vagy azonosítója" msgstr "A felhasználó e-mail címe vagy azonosítója"
#: dashboard/forms.py:1353 #: dashboard/forms.py:1354
msgid "Key" msgid "Key"
msgstr "Kulcs" msgstr "Kulcs"
#: dashboard/forms.py:1354 #: dashboard/forms.py:1355
msgid "For example: ssh-rsa AAAAB3NzaC1yc2ED..." msgid "For example: ssh-rsa AAAAB3NzaC1yc2ED..."
msgstr "Például: ssh-rsa AAAAB3NzaC1yc2ED…" msgstr "Például: ssh-rsa AAAAB3NzaC1yc2ED…"
#: dashboard/forms.py:1434 #: dashboard/forms.py:1435
msgid "permissions" msgid "permissions"
msgstr "jogosultságok" msgstr "jogosultságok"
#: dashboard/forms.py:1531 #: dashboard/forms.py:1532
msgid "owned" msgid "owned"
msgstr "saját" msgstr "saját"
#: dashboard/forms.py:1532 #: dashboard/forms.py:1533
msgid "shared" msgid "shared"
msgstr "osztott" msgstr "osztott"
#: dashboard/forms.py:1533 #: dashboard/forms.py:1534
msgid "all" msgid "all"
msgstr "összes" msgstr "összes"
#: dashboard/forms.py:1540 dashboard/forms.py:1564 dashboard/forms.py:1583 #: dashboard/forms.py:1541 dashboard/forms.py:1565 dashboard/forms.py:1584
#: dashboard/templates/dashboard/index-groups.html:23 #: dashboard/templates/dashboard/index-groups.html:23
#: dashboard/templates/dashboard/index-nodes.html:40 #: dashboard/templates/dashboard/index-nodes.html:40
#: dashboard/templates/dashboard/index-templates.html:40 #: dashboard/templates/dashboard/index-templates.html:40
...@@ -594,7 +593,7 @@ msgstr "Lemezkvóta mebibyte-okban." ...@@ -594,7 +593,7 @@ msgstr "Lemezkvóta mebibyte-okban."
msgid "Can use autocomplete." msgid "Can use autocomplete."
msgstr "Használhat automatikus kiegészítést." msgstr "Használhat automatikus kiegészítést."
#: dashboard/models.py:245 firewall/models.py:285 request/models.py:224 #: dashboard/models.py:245 firewall/models.py:285 request/models.py:227
#: vm/models/common.py:85 vm/models/instance.py:131 vm/models/instance.py:212 #: vm/models/common.py:85 vm/models/instance.py:131 vm/models/instance.py:212
msgid "operator" msgid "operator"
msgstr "operátor" msgstr "operátor"
...@@ -665,7 +664,7 @@ msgstr "Adminisztráció" ...@@ -665,7 +664,7 @@ msgstr "Adminisztráció"
msgid "Actions" msgid "Actions"
msgstr "Műveletek" msgstr "Műveletek"
#: dashboard/tables.py:164 dashboard/templates/dashboard/profile.html:37 #: dashboard/tables.py:164 dashboard/templates/dashboard/profile.html:38
msgid "Organization ID" msgid "Organization ID"
msgstr "Címtári azonosító" msgstr "Címtári azonosító"
...@@ -975,7 +974,7 @@ msgstr "Lemezek" ...@@ -975,7 +974,7 @@ msgstr "Lemezek"
#: dashboard/templates/dashboard/base.html:40 #: dashboard/templates/dashboard/base.html:40
#: dashboard/templates/dashboard/vm-detail.html:214 #: dashboard/templates/dashboard/vm-detail.html:214
#: dashboard/views/graph.py:198 dashboard/views/graph.py:221 #: dashboard/views/graph.py:198 dashboard/views/graph.py:221
#: network/forms.py:142 network/templates/network/base.html:7 #: network/forms.py:147 network/templates/network/base.html:7
msgid "Network" msgid "Network"
msgstr "Hálózat" msgstr "Hálózat"
...@@ -1002,7 +1001,6 @@ msgstr "" ...@@ -1002,7 +1001,6 @@ msgstr ""
"Még nem tud virtuális gépet indítani, mivel egy sablonhoz sincs hozzáférése." "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 #: dashboard/templates/dashboard/_vm-create-1.html:85
#| msgid " new virtual machines because no templates are shared with ."
msgid "" msgid ""
"You can't start new virtual machines because no templates are shared with " "You can't start new virtual machines because no templates are shared with "
"you however you can request them via the form below." "you however you can request them via the form below."
...@@ -1012,7 +1010,6 @@ msgstr "" ...@@ -1012,7 +1010,6 @@ msgstr ""
#: dashboard/templates/dashboard/_vm-create-1.html:96 #: dashboard/templates/dashboard/_vm-create-1.html:96
#, python-format #, python-format
#| msgid " owner of this template is <a href=\"%(url)s\">ame)s er)s)</a>.\n"
msgid "" msgid ""
"\n" "\n"
" Need other templates? Submit a new <a href=\"%(url)s\">request</a>.\n" " Need other templates? Submit a new <a href=\"%(url)s\">request</a>.\n"
...@@ -1083,7 +1080,7 @@ msgstr "Csomópontjellemzők" ...@@ -1083,7 +1080,7 @@ msgstr "Csomópontjellemzők"
msgid "Required traits" msgid "Required traits"
msgstr "Elvárt jellemzők" msgstr "Elvárt jellemzők"
#: dashboard/templates/dashboard/_vm-renew.html:14 #: dashboard/templates/dashboard/_vm-renew.html:15
msgid "Request longer lease" msgid "Request longer lease"
msgstr "Hosszabb bérlet igénylése" msgstr "Hosszabb bérlet igénylése"
...@@ -1108,7 +1105,6 @@ msgstr "Tárhely" ...@@ -1108,7 +1105,6 @@ msgstr "Tárhely"
#: dashboard/templates/dashboard/base.html:46 #: dashboard/templates/dashboard/base.html:46
#: request/templates/request/list.html:6 #: request/templates/request/list.html:6
#: request/templates/request/list.html:17 #: request/templates/request/list.html:17
#| msgid "Required traits"
msgid "Requests" msgid "Requests"
msgstr "Igénylések" msgstr "Igénylések"
...@@ -1242,13 +1238,13 @@ msgstr "Parancssablon létrehozása" ...@@ -1242,13 +1238,13 @@ msgstr "Parancssablon létrehozása"
#: dashboard/templates/dashboard/connect-command-edit.html:13 #: dashboard/templates/dashboard/connect-command-edit.html:13
#: dashboard/templates/dashboard/lease-create.html:13 #: dashboard/templates/dashboard/lease-create.html:13
#: dashboard/templates/dashboard/lease-edit.html:12 #: dashboard/templates/dashboard/lease-edit.html:12
#: dashboard/templates/dashboard/profile.html:23 #: dashboard/templates/dashboard/profile.html:24
#: dashboard/templates/dashboard/template-edit.html:16 #: dashboard/templates/dashboard/template-edit.html:16
#: dashboard/templates/dashboard/userkey-create.html:13 #: dashboard/templates/dashboard/userkey-create.html:13
#: dashboard/templates/dashboard/userkey-edit.html:14 network/forms.py:65 #: dashboard/templates/dashboard/userkey-edit.html:14 network/forms.py:65
#: network/forms.py:87 network/forms.py:101 network/forms.py:123 #: network/forms.py:89 network/forms.py:104 network/forms.py:127
#: network/forms.py:163 network/forms.py:188 network/forms.py:227 #: network/forms.py:168 network/forms.py:196 network/forms.py:237
#: network/forms.py:248 network/forms.py:299 network/forms.py:324 #: network/forms.py:262 network/forms.py:314 network/forms.py:343
#: request/templates/request/detail.html:17 #: request/templates/request/detail.html:17
#: request/templates/request/lease-type-form.html:25 #: request/templates/request/lease-type-form.html:25
#: request/templates/request/template-type-form.html:25 #: request/templates/request/template-type-form.html:25
...@@ -1792,61 +1788,66 @@ msgstr "" ...@@ -1792,61 +1788,66 @@ msgstr ""
"Biztosan végrehajtja a(z) <strong>%(op)s</strong> műveletet\n" "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" "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 #: dashboard/templates/dashboard/profile_form.html:6
msgid "Profile" msgid "Profile"
msgstr "Profil" msgstr "Profil"
#: dashboard/templates/dashboard/profile.html:17 #: dashboard/templates/dashboard/profile.html:18
msgid "Log in as this user. Recommended to open in an incognito window." msgid "Log in as this user. Recommended to open in an incognito window."
msgstr "" msgstr ""
"Bejelentkezés a felhasználó nevében. Ajánlott inkognitóablakban megnyitni." "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" msgid "Login as this user"
msgstr "Bejelentkezés a felhasználó nevében" msgstr "Bejelentkezés a felhasználó nevében"
#: dashboard/templates/dashboard/profile.html:38 #: dashboard/templates/dashboard/profile.html:39
msgid "First name" msgid "First name"
msgstr "Keresztnév" msgstr "Keresztnév"
#: dashboard/templates/dashboard/profile.html:39 #: dashboard/templates/dashboard/profile.html:40
msgid "Last name" msgid "Last name"
msgstr "Vezetéknév" 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" msgid "Use email address as Gravatar profile image"
msgstr "E-mail cím használata a Gravatar profilkép betöltésére" msgstr "E-mail cím használata a Gravatar profilkép betöltésére"
#: dashboard/templates/dashboard/profile.html:50 #: dashboard/templates/dashboard/profile.html:52
msgid "What's Gravatar?" msgid "What's Gravatar?"
msgstr "Mi az a Gravatar?" msgstr "Mi az a Gravatar?"
#: dashboard/templates/dashboard/profile.html:52 #: dashboard/templates/dashboard/profile.html:54
msgid "Change my preferences" msgid "Change my preferences"
msgstr "Személyes beállítások" msgstr "Személyes beállítások"
#: dashboard/templates/dashboard/profile.html:66 #: dashboard/templates/dashboard/profile.html:68
msgid "This user is not in any group." msgid "This user is not in any group."
msgstr "A felhasználó nem tagja csoportnak." msgstr "A felhasználó nem tagja csoportnak."
#: dashboard/templates/dashboard/profile.html:75 #: dashboard/templates/dashboard/profile.html:77
msgid "Virtual machines owned by the user" msgid "Virtual machines owned by the user"
msgstr "A felhasználó virtuális gépei" msgstr "A felhasználó virtuális gépei"
#: dashboard/templates/dashboard/profile.html:87 #: dashboard/templates/dashboard/profile.html:89
msgid "This user have no virtual machines." msgid "This user have no virtual machines."
msgstr "A felhasználónak nincs virtuális gépe." msgstr "A felhasználónak nincs virtuális gépe."
#: dashboard/templates/dashboard/profile.html:96 #: dashboard/templates/dashboard/profile.html:98
msgid "Virtual machines with access" msgid "Virtual machines with access"
msgstr "Elérhető virtuális gépek" msgstr "Elérhető virtuális gépek"
#: dashboard/templates/dashboard/profile.html:108 #: dashboard/templates/dashboard/profile.html:110
msgid "This user have no access to any virtual machine." msgid "This user have no access to any virtual machine."
msgstr "A felhasználónak egy géphez sincs hozzáférése." msgstr "A felhasználónak egy géphez sincs hozzáférése."
#: dashboard/templates/dashboard/profile.html:122 #: dashboard/templates/dashboard/profile.html:124
msgid "Edit user" msgid "Edit user"
msgstr "Felhasználó szerkesztése" msgstr "Felhasználó szerkesztése"
...@@ -2500,12 +2501,12 @@ msgid "DNS name" ...@@ -2500,12 +2501,12 @@ msgid "DNS name"
msgstr "DNS név" msgstr "DNS név"
#: dashboard/templates/dashboard/vm-detail/network.html:52 #: dashboard/templates/dashboard/vm-detail/network.html:52
#: network/forms.py:269 #: network/forms.py:284
msgid "IPv4" msgid "IPv4"
msgstr "IPv4" msgstr "IPv4"
#: dashboard/templates/dashboard/vm-detail/network.html:53 #: dashboard/templates/dashboard/vm-detail/network.html:53
#: network/forms.py:276 #: network/forms.py:291
msgid "IPv6" msgid "IPv6"
msgstr "IPv6" msgstr "IPv6"
...@@ -2523,7 +2524,6 @@ msgid "Edit raw data" ...@@ -2523,7 +2524,6 @@ msgid "Edit raw data"
msgstr "Nyers adat szerkesztése" msgstr "Nyers adat szerkesztése"
#: dashboard/templates/dashboard/vm-detail/resources.html:7 #: dashboard/templates/dashboard/vm-detail/resources.html:7
#| msgid "Change resources"
msgid "Modify the resources" msgid "Modify the resources"
msgstr "Módosítsa az erőforrásokat" msgstr "Módosítsa az erőforrásokat"
...@@ -2543,16 +2543,14 @@ msgid "" ...@@ -2543,16 +2543,14 @@ msgid ""
msgstr "" msgstr ""
"Erőforrás módosítás csak LEÁLLÍTVA állapotú gépen lehetséges. A virtuális " "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 " "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 #: dashboard/templates/dashboard/vm-detail/resources.html:29
#: request/forms.py:79 request/models.py:82 #: request/forms.py:79 request/models.py:82
#| msgid "RAM usage"
msgid "Message" msgid "Message"
msgstr "Üzenet" msgstr "Üzenet"
#: dashboard/templates/dashboard/vm-detail/resources.html:38 #: dashboard/templates/dashboard/vm-detail/resources.html:38
#| msgid "Save resources"
msgid "Request resources" msgid "Request resources"
msgstr "Erőforrások igénylése" msgstr "Erőforrások igénylése"
...@@ -2634,36 +2632,36 @@ msgstr "példányok száma" ...@@ -2634,36 +2632,36 @@ msgstr "példányok száma"
msgid "Allocated memory (bytes)" msgid "Allocated memory (bytes)"
msgstr "Foglalt memória (byte)" msgstr "Foglalt memória (byte)"
#: dashboard/views/group.py:150 #: dashboard/views/group.py:152
#, python-format #, python-format
msgid "User \"%s\" not found." msgid "User \"%s\" not found."
msgstr "Nem található „%s” felhasználó." msgstr "Nem található „%s” felhasználó."
#: dashboard/views/group.py:164 #: dashboard/views/group.py:166
msgid "Group successfully renamed." msgid "Group successfully renamed."
msgstr "A csoport átnevezésre került." msgstr "A csoport átnevezésre került."
#: dashboard/views/group.py:233 #: dashboard/views/group.py:235
msgid "Member successfully removed from group." msgid "Member successfully removed from group."
msgstr "A csoporttag eltávolításra került." msgstr "A csoporttag eltávolításra került."
#: dashboard/views/group.py:266 #: dashboard/views/group.py:268
msgid "Future user successfully removed from group." msgid "Future user successfully removed from group."
msgstr "A leendő csoporttag eltávolításra került." msgstr "A leendő csoporttag eltávolításra került."
#: dashboard/views/group.py:288 #: dashboard/views/group.py:290
msgid "Group successfully deleted." msgid "Group successfully deleted."
msgstr "A csoport törlésre került." msgstr "A csoport törlésre került."
#: dashboard/views/group.py:317 #: dashboard/views/group.py:319
msgid "Create a Group" msgid "Create a Group"
msgstr "Csoport létrehozása" msgstr "Csoport létrehozása"
#: dashboard/views/group.py:333 #: dashboard/views/group.py:335
msgid "Group successfully created." msgid "Group successfully created."
msgstr "A csoport létrehozásra került." msgstr "A csoport létrehozásra került."
#: dashboard/views/group.py:347 #: dashboard/views/group.py:349
msgid "Group is successfully updated." msgid "Group is successfully updated."
msgstr "A csoport frissítésre került." msgstr "A csoport frissítésre került."
...@@ -2692,7 +2690,6 @@ msgid "The DataStore is offline." ...@@ -2692,7 +2690,6 @@ msgid "The DataStore is offline."
msgstr "Az adattár nem elérhető." msgstr "Az adattár nem elérhető."
#: dashboard/views/storage.py:57 #: dashboard/views/storage.py:57
#| msgid "Virtual machine"
msgid "virtual machine" msgid "virtual machine"
msgstr "virtuális gép" msgstr "virtuális gép"
...@@ -2964,7 +2961,8 @@ msgstr "Átruházás elfogadva" ...@@ -2964,7 +2961,8 @@ msgstr "Átruházás elfogadva"
#: dashboard/views/util.py:667 #: dashboard/views/util.py:667
#, python-format #, python-format
msgid "Your ownership offer of %(instance)s has been accepted by %(owner)s." 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 #: dashboard/views/util.py:716
msgid "Only the owners can delete the selected object." msgid "Only the owners can delete the selected object."
...@@ -2974,65 +2972,65 @@ msgstr "Csak a tulajdonos törölheti a kiválasztott objektumot." ...@@ -2974,65 +2972,65 @@ msgstr "Csak a tulajdonos törölheti a kiválasztott objektumot."
msgid "console access" msgid "console access"
msgstr "konzolhozzáférés" msgstr "konzolhozzáférés"
#: dashboard/views/vm.py:199 #: dashboard/views/vm.py:203
msgid "VM successfully renamed." msgid "VM successfully renamed."
msgstr "A virtuális gép átnevezésre került." msgstr "A virtuális gép átnevezésre került."
#: dashboard/views/vm.py:223 #: dashboard/views/vm.py:227
msgid "VM description successfully updated." msgid "VM description successfully updated."
msgstr "A VM leírása megváltoztatásra került." msgstr "A VM leírása megváltoztatásra került."
#: dashboard/views/vm.py:611 #: dashboard/views/vm.py:615
msgid "The token has expired." msgid "The token has expired."
msgstr "A token lejárt." msgstr "A token lejárt."
#: dashboard/views/vm.py:836 #: dashboard/views/vm.py:841
#, python-format #, python-format
msgid "Failed to execute %(op)s operation on instance %(instance)s." 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." msgstr "%(op)s végrehajtása meghiúsult a következőn: %(instance)s."
#: dashboard/views/vm.py:852 #: dashboard/views/vm.py:857
#, python-format #, python-format
msgid "You are not permitted to execute %(op)s on instance %(instance)s." 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." msgstr "Nem engedélyezett a(z) %(op)s végrehajtása a(z) %(instance)s gépen."
#: dashboard/views/vm.py:1044 #: dashboard/views/vm.py:1049
msgid "Customize VM" msgid "Customize VM"
msgstr "VM testreszabása" msgstr "VM testreszabása"
#: dashboard/views/vm.py:1052 #: dashboard/views/vm.py:1057
msgid "Create a VM" msgid "Create a VM"
msgstr "VM létrehozása" msgstr "VM létrehozása"
#: dashboard/views/vm.py:1107 #: dashboard/views/vm.py:1112
#, python-format #, python-format
msgid "Successfully created %(count)d VM." msgid "Successfully created %(count)d VM."
msgid_plural "Successfully created %(count)d VMs." msgid_plural "Successfully created %(count)d VMs."
msgstr[0] "%(count)d VM létrehozásra került." msgstr[0] "%(count)d VM létrehozásra került."
msgstr[1] "%(count)d VM létrehozásra került." msgstr[1] "%(count)d VM létrehozásra került."
#: dashboard/views/vm.py:1112 #: dashboard/views/vm.py:1117
msgid "VM successfully created." msgid "VM successfully created."
msgstr "VM létrehozásra került." msgstr "VM létrehozásra került."
#: dashboard/views/vm.py:1143 #: dashboard/views/vm.py:1148
#, python-format #, python-format
msgid "Instance limit (%d) exceeded." msgid "Instance limit (%d) exceeded."
msgstr "A példányok létrehozási korlátját (%d) túllépte." msgstr "A példányok létrehozási korlátját (%d) túllépte."
#: dashboard/views/vm.py:1211 #: dashboard/views/vm.py:1216
msgid "About CIRCLE Client" msgid "About CIRCLE Client"
msgstr "A CIRCLE kliensről" msgstr "A CIRCLE kliensről"
#: dashboard/views/vm.py:1301 #: dashboard/views/vm.py:1306
msgid "transfer ownership" msgid "transfer ownership"
msgstr "tulajdon átruházása" msgstr "tulajdon átruházása"
#: dashboard/views/vm.py:1311 #: dashboard/views/vm.py:1316
#, python-format #, python-format
msgid "" msgid ""
"%(owner)s offered you to take the ownership of his/her virtual machine called" "%(owner)s offered you to take the ownership of his/her virtual machine "
" %(instance)s. <a href=\"%(token)s\" class=\"btn btn-success btn-" "called %(instance)s. <a href=\"%(token)s\" class=\"btn btn-success btn-"
"small\">Accept</a>" "small\">Accept</a>"
msgstr "" msgstr ""
"%(owner)s át kívánja ruházni %(instance)s nevű virtuális gépét Önre. <a " "%(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." ...@@ -3494,12 +3492,10 @@ msgid "Description of the group."
msgstr "A csoport leírása." msgstr "A csoport leírása."
#: firewall/models.py:550 #: firewall/models.py:550
#| msgid "vlan group"
msgid "vlan groups" msgid "vlan groups"
msgstr "vlan-csoportok" msgstr "vlan-csoportok"
#: firewall/models.py:577 #: firewall/models.py:577
#| msgid "host group"
msgid "host groups" msgid "host groups"
msgstr "gépcsoportok" msgstr "gépcsoportok"
...@@ -3611,7 +3607,6 @@ msgid "Port %(proto)s %(public)s is already in use." ...@@ -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." msgstr "A(z) %(public)s %(proto)s port használatban van."
#: firewall/models.py:955 #: firewall/models.py:955
#| msgid "firewall"
msgid "firewalls" msgid "firewalls"
msgstr "tűzfalak" msgstr "tűzfalak"
...@@ -3636,7 +3631,6 @@ msgid "domain" ...@@ -3636,7 +3631,6 @@ msgid "domain"
msgstr "tartomány" msgstr "tartomány"
#: firewall/models.py:1006 #: firewall/models.py:1006
#| msgid "domain"
msgid "domains" msgid "domains"
msgstr "tartományok" msgstr "tartományok"
...@@ -3658,7 +3652,6 @@ msgid "record" ...@@ -3658,7 +3652,6 @@ msgid "record"
msgstr "rekord" msgstr "rekord"
#: firewall/models.py:1087 #: firewall/models.py:1087
#| msgid "record"
msgid "records" msgid "records"
msgstr "rekordok" msgstr "rekordok"
...@@ -3677,7 +3670,6 @@ msgid "switch port" ...@@ -3677,7 +3670,6 @@ msgid "switch port"
msgstr "switch port" msgstr "switch port"
#: firewall/models.py:1109 #: firewall/models.py:1109
#| msgid "switch port"
msgid "switch ports" msgid "switch ports"
msgstr "switch portok" msgstr "switch portok"
...@@ -3726,7 +3718,6 @@ msgid "blacklist item" ...@@ -3726,7 +3718,6 @@ msgid "blacklist item"
msgstr "tiltólista eleme" msgstr "tiltólista eleme"
#: firewall/models.py:1176 #: firewall/models.py:1176
#| msgid "blacklist item"
msgid "blacklist items" msgid "blacklist items"
msgstr "tiltólista elemek" msgstr "tiltólista elemek"
...@@ -3762,31 +3753,31 @@ msgstr "" ...@@ -3762,31 +3753,31 @@ msgstr ""
"Egy csomópont sem biztosítja a virtuális gép indításához szükséges " "Egy csomópont sem biztosítja a virtuális gép indításához szükséges "
"jellemzőket." "jellemzőket."
#: network/forms.py:146 #: network/forms.py:151
msgid "Generate random address." msgid "Generate random address."
msgstr "Véletlenszerű cím generálása." msgstr "Véletlenszerű cím generálása."
#: network/forms.py:149 #: network/forms.py:154
msgid "Generate IPv6 pair of IPv4 address." msgid "Generate IPv6 pair of IPv4 address."
msgstr "IPv4-es cím IPv6-os párjának generálása." msgstr "IPv4-es cím IPv6-os párjának generálása."
#: network/forms.py:154 #: network/forms.py:159
msgid "Information" msgid "Information"
msgstr "Információ" msgstr "Információ"
#: network/forms.py:217 #: network/forms.py:227
msgid "External" msgid "External"
msgstr "Külső" msgstr "Külső"
#: network/forms.py:280 #: network/forms.py:295
msgid "Generate sensible template." msgid "Generate sensible template."
msgstr "Ésszerű sablon generálása." msgstr "Ésszerű sablon generálása."
#: network/forms.py:284 #: network/forms.py:299
msgid "Domain name service" msgid "Domain name service"
msgstr "DNS szolgáltatás" msgstr "DNS szolgáltatás"
#: network/forms.py:289 #: network/forms.py:304
msgid "Info" msgid "Info"
msgstr "Infó" msgstr "Infó"
...@@ -4325,7 +4316,6 @@ msgid "There is already an ethernet device with that name." ...@@ -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." msgstr "Már létezik a megadott nevű ethernet-eszköz."
#: request/forms.py:76 #: request/forms.py:76
#| msgid "Templates"
msgid "Template share" msgid "Template share"
msgstr "Sablon megosztás" msgstr "Sablon megosztás"
...@@ -4334,7 +4324,6 @@ msgid "pending" ...@@ -4334,7 +4324,6 @@ msgid "pending"
msgstr "függő" msgstr "függő"
#: request/models.py:69 #: request/models.py:69
#| msgid "accept"
msgid "accepted" msgid "accepted"
msgstr "elfogadott" msgstr "elfogadott"
...@@ -4343,7 +4332,6 @@ msgid "declined" ...@@ -4343,7 +4332,6 @@ msgid "declined"
msgstr "elutasított" msgstr "elutasított"
#: request/models.py:77 #: request/models.py:77
#| msgid "source port"
msgid "resource request" msgid "resource request"
msgstr "erőforrás igénylés" msgstr "erőforrás igénylés"
...@@ -4352,12 +4340,10 @@ msgid "lease request" ...@@ -4352,12 +4340,10 @@ msgid "lease request"
msgstr "bérlet igénylés" msgstr "bérlet igénylés"
#: request/models.py:79 #: request/models.py:79
#| msgid "Template successfully deleted."
msgid "template access request" msgid "template access request"
msgstr "sablon hozzáférés igénylés" msgstr "sablon hozzáférés igénylés"
#: request/models.py:126 #: request/models.py:126
#| msgid "Ownership accepted"
msgid "Request accepted" msgid "Request accepted"
msgstr "Kérés elfogadva" msgstr "Kérés elfogadva"
...@@ -4399,7 +4385,7 @@ msgstr "prioritás" ...@@ -4399,7 +4385,7 @@ msgstr "prioritás"
msgid "CPU priority." msgid "CPU priority."
msgstr "CPU prioritás." msgstr "CPU prioritás."
#: request/models.py:188 #: request/models.py:191
#, python-format #, python-format
msgid "" msgid ""
"The resources of <a href=\"%(url)s\">%(name)s</a> were changed. Number of " "The resources of <a href=\"%(url)s\">%(name)s</a> were changed. Number of "
...@@ -4410,7 +4396,7 @@ msgstr "" ...@@ -4410,7 +4396,7 @@ msgstr ""
"%(num_cores)d, RAM-mennyiség: <span class=\"nowrap\">%(ram_size)d " "%(num_cores)d, RAM-mennyiség: <span class=\"nowrap\">%(ram_size)d "
"MiB</span>, CPU prioritás: %(priority)d/100." "MiB</span>, CPU prioritás: %(priority)d/100."
#: request/models.py:212 #: request/models.py:215
#, python-format #, python-format
msgid "" msgid ""
"The lease of <a href=\"%(url)s\">%(name)s</a> got extended. (suspend: " "The lease of <a href=\"%(url)s\">%(name)s</a> got extended. (suspend: "
...@@ -4419,14 +4405,14 @@ msgstr "" ...@@ -4419,14 +4405,14 @@ msgstr ""
"<a href=\"%(url)s\">%(name)s</a> bérlete meghosszabbítva. (felfüggesztés: " "<a href=\"%(url)s\">%(name)s</a> bérlete meghosszabbítva. (felfüggesztés: "
"%(suspend)s, törlés: %(remove)s)" "%(suspend)s, törlés: %(remove)s)"
#: request/models.py:240 #: request/models.py:243
#, python-format #, python-format
msgid "You got access to the following template: %s" msgid "You got access to the following template: %s"
msgid_plural "You got access to the following templates: %s" msgid_plural "You got access to the following templates: %s"
msgstr[0] "Az alábbi sablonhoz szerzett hozzáférést: %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" msgstr[1] "Az alábbi sablonokhoz szerzett hozzáférést: %s"
#: request/models.py:251 #: request/models.py:254
#, python-format #, python-format
msgid "" msgid ""
"A new <a href=\"%(request_url)s\">%(request_type)s</a> was submitted by <a " "A new <a href=\"%(request_url)s\">%(request_type)s</a> was submitted by <a "
...@@ -4435,16 +4421,16 @@ msgstr "" ...@@ -4435,16 +4421,16 @@ msgstr ""
"Egy új <a href=\"%(request_url)s\">%(request_type)s</a> lett beküldve <a " "Egy új <a href=\"%(request_url)s\">%(request_type)s</a> lett beküldve <a "
"href=\"%(user_url)s\">%(display_name)s</a> által." "href=\"%(user_url)s\">%(display_name)s</a> által."
#: request/models.py:262 #: request/models.py:265
#, python-format #, python-format
msgid "New %(request_type)s" msgid "New %(request_type)s"
msgstr "Új %(request_type)s" msgstr "Új %(request_type)s"
#: request/models.py:266 #: request/models.py:269
msgid "Request submitted" msgid "Request submitted"
msgstr "Igénylés beküldve" msgstr "Igénylés beküldve"
#: request/models.py:267 #: request/models.py:270
#, python-format #, python-format
msgid "" msgid ""
"You can view the request's status at this <a " "You can view the request's status at this <a "
...@@ -4454,7 +4440,6 @@ msgstr "" ...@@ -4454,7 +4440,6 @@ msgstr ""
"href=\"%(request_url)s\">linken</a>." "href=\"%(request_url)s\">linken</a>."
#: request/tables.py:53 #: request/tables.py:53
#| msgid "No more networks."
msgid "No more requests." msgid "No more requests."
msgstr "Nincs több igénylés." msgstr "Nincs több igénylés."
...@@ -4469,39 +4454,32 @@ msgstr "" ...@@ -4469,39 +4454,32 @@ msgstr ""
"Azon felhasználók számára akik a sablonokat meg szeretnék osztani másokkal." "Azon felhasználók számára akik a sablonokat meg szeretnék osztani másokkal."
#: request/templates/request/_request-template-form.html:18 #: 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." 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." msgstr "Azon felhasználók számára akik virtuális gépet akarnak indítani."
#: request/templates/request/detail.html:7 #: request/templates/request/detail.html:7
#| msgid "requested IP"
msgid "Request" msgid "Request"
msgstr "Igénylés" msgstr "Igénylés"
#: request/templates/request/detail.html:42 #: request/templates/request/detail.html:42
#: request/templates/request/detail.html:69 #: request/templates/request/detail.html:69
#| msgid "name"
msgid "VM name" msgid "VM name"
msgstr "Virtuális gép neve" msgstr "Virtuális gép neve"
#: request/templates/request/detail.html:44 #: request/templates/request/detail.html:44
#: request/templates/request/detail.html:76 #: request/templates/request/detail.html:76
#| msgid "description"
msgid "VM description" msgid "VM description"
msgstr "Virtuális gép leírása" msgstr "Virtuális gép leírása"
#: request/templates/request/detail.html:46 #: request/templates/request/detail.html:46
#| msgid "Create lease"
msgid "Current lease" msgid "Current lease"
msgstr "Jelenlegi bérlet" msgstr "Jelenlegi bérlet"
#: request/templates/request/detail.html:48 #: request/templates/request/detail.html:48
#| msgid "requested IP"
msgid "Requested lease" msgid "Requested lease"
msgstr "Igényelt bérlet" msgstr "Igényelt bérlet"
#: request/templates/request/detail.html:54 #: request/templates/request/detail.html:54
#| msgid "Template"
msgid "Template type" msgid "Template type"
msgstr "Sablon típus" msgstr "Sablon típus"
...@@ -4510,12 +4488,10 @@ msgid "(old values in parentheses)" ...@@ -4510,12 +4488,10 @@ msgid "(old values in parentheses)"
msgstr "(régi értékek zárójelben)" msgstr "(régi értékek zárójelben)"
#: request/templates/request/detail.html:83 #: request/templates/request/detail.html:83
#| msgid "number of cores"
msgid "Number of cores" msgid "Number of cores"
msgstr "Magok száma" msgstr "Magok száma"
#: request/templates/request/detail.html:85 #: request/templates/request/detail.html:85
#| msgid "RAM size"
msgid "Ram size" msgid "Ram size"
msgstr "RAM-méret" msgstr "RAM-méret"
...@@ -4524,7 +4500,6 @@ msgid "Reason (sent to the user if the request is declined)" ...@@ -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)" msgstr "Indok (elutasítás esetén a felhasználó megkapja)"
#: request/templates/request/detail.html:103 #: request/templates/request/detail.html:103
#| msgid "Online"
msgid "Decline" msgid "Decline"
msgstr "Elutasít" msgstr "Elutasít"
...@@ -4538,7 +4513,6 @@ msgstr "Elfogadás" ...@@ -4538,7 +4513,6 @@ msgstr "Elfogadás"
#: request/templates/request/detail.html:122 #: request/templates/request/detail.html:122
#, python-format #, python-format
#| msgid " subactivity of <a href=\"%(url)s\">%(name)s</a>\n"
msgid "" msgid ""
"\n" "\n"
" Closed %(closed)s by <a href=\"%(user.profile.get_absolute_url)s\">%(user)s</a>\n" " Closed %(closed)s by <a href=\"%(user.profile.get_absolute_url)s\">%(user)s</a>\n"
...@@ -4552,7 +4526,6 @@ msgid "lease type" ...@@ -4552,7 +4526,6 @@ msgid "lease type"
msgstr "bérlet típus" msgstr "bérlet típus"
#: request/templates/request/lease-type-form.html:33 #: request/templates/request/lease-type-form.html:33
#| msgid "new lease"
msgid "New lease type" msgid "New lease type"
msgstr "Új bérlet típus" msgstr "Új bérlet típus"
...@@ -4563,43 +4536,35 @@ msgid "Request types" ...@@ -4563,43 +4536,35 @@ msgid "Request types"
msgstr "Kérés típusok" msgstr "Kérés típusok"
#: request/templates/request/list.html:21 #: request/templates/request/list.html:21
#| msgid "Filter by vlans"
msgid "Filter by status" msgid "Filter by status"
msgstr "Állapot szerinti szűrés" msgstr "Állapot szerinti szűrés"
#: request/templates/request/request-lease.html:12 #: request/templates/request/request-lease.html:12
#| msgid "new lease"
msgid "Request new lease" msgid "Request new lease"
msgstr "Új bérlet igénylése" msgstr "Új bérlet igénylése"
#: request/templates/request/request-resource.html:13 #: request/templates/request/request-resource.html:13
#: request/templates/request/request-resource.html:29 #: request/templates/request/request-resource.html:29
#| msgid "Change resources"
msgid "Request new resources" msgid "Request new resources"
msgstr "Új erőforrások igénylése" msgstr "Új erőforrások igénylése"
#: request/templates/request/request-template.html:12 #: request/templates/request/request-template.html:12
#| msgid "Delete template"
msgid "Request template access" msgid "Request template access"
msgstr "Sablon hozzáférés igénylése" msgstr "Sablon hozzáférés igénylése"
#: request/templates/request/template-type-form.html:8 #: request/templates/request/template-type-form.html:8
#| msgid "Template successfully deleted."
msgid "template access type" msgid "template access type"
msgstr "sablon hozzáférés típus" msgstr "sablon hozzáférés típus"
#: request/templates/request/template-type-form.html:33 #: request/templates/request/template-type-form.html:33
#| msgid "Template successfully deleted."
msgid "New Template Access type" msgid "New Template Access type"
msgstr "Új sablon hozzáférés típus" msgstr "Új sablon hozzáférés típus"
#: request/templates/request/type-list.html:17 #: request/templates/request/type-list.html:17
#| msgid "new lease"
msgid "new lease type" msgid "new lease type"
msgstr "új bérlet típus" msgstr "új bérlet típus"
#: request/templates/request/type-list.html:21 #: request/templates/request/type-list.html:21
#| msgid "new template"
msgid "new template access type" msgid "new template access type"
msgstr "új sablon hozzáférés típus" msgstr "új sablon hozzáférés típus"
...@@ -4621,6 +4586,26 @@ msgid "" ...@@ -4621,6 +4586,26 @@ msgid ""
" " " "
msgstr "" 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 #: storage/models.py:50
msgid "path" msgid "path"
msgstr "útvonal" msgstr "útvonal"
...@@ -4739,18 +4724,22 @@ msgstr "" ...@@ -4739,18 +4724,22 @@ msgstr ""
msgid "Operation aborted by user." msgid "Operation aborted by user."
msgstr "A műveletet a felhasználó megszakította." 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 #: templates/404.html:4 templates/404.html.py:6
msgid "Page not found" msgid "Page not found"
msgstr "Az oldal nem található" msgstr "Az oldal nem található"
#: templates/404.html:9 #: templates/404.html:15
msgid "This page does not exist." msgid "This page does not exist."
msgstr "Az oldal nem létezik." msgstr "Az oldal nem létezik."
#: templates/500.html:6
msgid ":("
msgstr ":("
#: templates/500.html:18 #: templates/500.html:18
msgid "Internal Server Error... Please leave the server alone..." msgid "Internal Server Error... Please leave the server alone..."
msgstr "Kiszolgálóoldali hiba. Ne bántsa a szervert." msgstr "Kiszolgálóoldali hiba. Ne bántsa a szervert."
...@@ -6343,7 +6332,7 @@ msgstr "erőforrások módosítása" ...@@ -6343,7 +6332,7 @@ msgstr "erőforrások módosítása"
msgid "Change resources of a stopped virtual machine." msgid "Change resources of a stopped virtual machine."
msgstr "Leállított virtuális gép erőforrásainak változtatása." msgstr "Leállított virtuális gép erőforrásainak változtatása."
#: vm/operations.py:1350 #: vm/operations.py:1361
#, python-format #, python-format
msgid "" msgid ""
"Priority: %(priority)s, Num cores: %(num_cores)s, Ram size: %(ram_size)s" "Priority: %(priority)s, Num cores: %(num_cores)s, Ram size: %(ram_size)s"
...@@ -6351,16 +6340,11 @@ msgstr "" ...@@ -6351,16 +6340,11 @@ msgstr ""
"Prioritás: %(priority)s, magok száma: %(num_cores)s, memória mérete: " "Prioritás: %(priority)s, magok száma: %(num_cores)s, memória mérete: "
"%(ram_size)s" "%(ram_size)s"
#: vm/operations.py:1359 #: vm/operations.py:1370
#| msgid "resources change"
msgid "resources request"
msgstr "erőforrás igénylés"
#: vm/operations.py:1385
msgid "password reset" msgid "password reset"
msgstr "jelszó visszaállítása" msgstr "jelszó visszaállítása"
#: vm/operations.py:1386 #: vm/operations.py:1371
msgid "" msgid ""
"Generate and set a new login password on the virtual machine. This operation" "Generate and set a new login password on the virtual machine. This operation"
" requires the agent running. Resetting the password is not warranted to " " requires the agent running. Resetting the password is not warranted to "
...@@ -6370,52 +6354,52 @@ msgstr "" ...@@ -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 " "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." "sikeres belépést, mivel más beállítások is megakadályozhatják ezt."
#: vm/operations.py:1410 #: vm/operations.py:1395
msgid "agent" msgid "agent"
msgstr "ügynök" msgstr "ügynök"
#: vm/operations.py:1451 #: vm/operations.py:1436
msgid "starting" msgid "starting"
msgstr "indítás" msgstr "indítás"
#: vm/operations.py:1469 #: vm/operations.py:1454
msgid "wait agent restarting" msgid "wait agent restarting"
msgstr "várakozás az ügynök újraindulására" msgstr "várakozás az ügynök újraindulására"
#: vm/operations.py:1486 #: vm/operations.py:1471
msgid "cleanup" msgid "cleanup"
msgstr "takarítás" msgstr "takarítás"
#: vm/operations.py:1492 #: vm/operations.py:1477
msgid "set time" msgid "set time"
msgstr "óra beállítása" msgstr "óra beállítása"
#: vm/operations.py:1503 #: vm/operations.py:1488
msgid "set hostname" msgid "set hostname"
msgstr "gépnév beállítása" msgstr "gépnév beállítása"
#: vm/operations.py:1514 #: vm/operations.py:1499
msgid "restart networking" msgid "restart networking"
msgstr "hálózat újratöltése" msgstr "hálózat újratöltése"
#: vm/operations.py:1520 #: vm/operations.py:1505
msgid "change ip" msgid "change ip"
msgstr "IP cím beállítása" msgstr "IP cím beállítása"
#: vm/operations.py:1535 #: vm/operations.py:1520
msgid "update agent" msgid "update agent"
msgstr "ügynök frissítése" msgstr "ügynök frissítése"
#: vm/operations.py:1541 #: vm/operations.py:1526
#, python-format #, python-format
msgid "update agent to %(version)s" msgid "update agent to %(version)s"
msgstr "ügynökfrissítés erre: %(version)s" msgstr "ügynökfrissítés erre: %(version)s"
#: vm/operations.py:1624 #: vm/operations.py:1609
msgid "mount store" msgid "mount store"
msgstr "tárhely csatolása" msgstr "tárhely csatolása"
#: vm/operations.py:1626 #: vm/operations.py:1611
msgid "" msgid ""
"This operation attaches your personal file store. Other users who have " "This operation attaches your personal file store. Other users who have "
"access to this machine can see these files as well." "access to this machine can see these files as well."
...@@ -6423,28 +6407,28 @@ msgstr "" ...@@ -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 " "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." "elérhetik fájljait."
#: vm/operations.py:1660 #: vm/operations.py:1645
msgid "attach disk" msgid "attach disk"
msgstr "lemez csatolása" msgstr "lemez csatolása"
#: vm/operations.py:1671 #: vm/operations.py:1656
msgid "Resource was not found." msgid "Resource was not found."
msgstr "Nem található az erőforrás." msgstr "Nem található az erőforrás."
#: vm/operations.py:1672 #: vm/operations.py:1657
#, python-format #, python-format
msgid "Resource was not found. %(exception)s" msgid "Resource was not found. %(exception)s"
msgstr "Nem található az erőforrás. %(exception)s" msgstr "Nem található az erőforrás. %(exception)s"
#: vm/operations.py:1681 #: vm/operations.py:1666
msgid "detach disk" msgid "detach disk"
msgstr "lemez leválasztása" msgstr "lemez leválasztása"
#: vm/operations.py:1696 #: vm/operations.py:1681
msgid "attach network" msgid "attach network"
msgstr "hálózat csatolása" msgstr "hálózat csatolása"
#: vm/operations.py:1703 #: vm/operations.py:1688
msgid "detach network" msgid "detach network"
msgstr "hálózat lecsatolása" msgstr "hálózat lecsatolása"
...@@ -6484,6 +6468,9 @@ msgstr "" ...@@ -6484,6 +6468,9 @@ msgstr ""
msgid "x" msgid "x"
msgstr "x" msgstr "x"
#~ msgid "resources request"
#~ msgstr "erőforrás igénylés"
#~ msgid "" #~ msgid ""
#~ "Dear %s, you've signed in as administrator!<br />Reloading in 10 seconds..." #~ "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..." #~ msgstr "Kedves %s, Ön rendszergazda!<br />Újratöltés 10 másodpercen belül..."
......
...@@ -19,9 +19,11 @@ from __future__ import unicode_literals, absolute_import ...@@ -19,9 +19,11 @@ from __future__ import unicode_literals, absolute_import
from django.views.generic import ( from django.views.generic import (
UpdateView, TemplateView, DetailView, CreateView, FormView, DeleteView, UpdateView, TemplateView, DetailView, CreateView, FormView, DeleteView,
) )
from django.contrib.messages.views import SuccessMessageMixin
from django.shortcuts import redirect, get_object_or_404 from django.shortcuts import redirect, get_object_or_404
from django.core.exceptions import PermissionDenied, SuspiciousOperation from django.core.exceptions import PermissionDenied, SuspiciousOperation
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.utils.translation import ugettext as _
from braces.views import SuperuserRequiredMixin, LoginRequiredMixin from braces.views import SuperuserRequiredMixin, LoginRequiredMixin
from django_tables2 import SingleTableView from django_tables2 import SingleTableView
...@@ -97,17 +99,19 @@ class RequestDetail(LoginRequiredMixin, DetailView): ...@@ -97,17 +99,19 @@ class RequestDetail(LoginRequiredMixin, DetailView):
class TemplateAccessTypeDetail(LoginRequiredMixin, SuperuserRequiredMixin, class TemplateAccessTypeDetail(LoginRequiredMixin, SuperuserRequiredMixin,
UpdateView): SuccessMessageMixin, UpdateView):
model = TemplateAccessType model = TemplateAccessType
template_name = "request/template-type-form.html" template_name = "request/template-type-form.html"
form_class = TemplateAccessTypeForm form_class = TemplateAccessTypeForm
success_message = _("Template access type successfully updated.")
class TemplateAccessTypeCreate(LoginRequiredMixin, SuperuserRequiredMixin, class TemplateAccessTypeCreate(LoginRequiredMixin, SuperuserRequiredMixin,
CreateView): SuccessMessageMixin, CreateView):
model = TemplateAccessType model = TemplateAccessType
template_name = "request/template-type-form.html" template_name = "request/template-type-form.html"
form_class = TemplateAccessTypeForm form_class = TemplateAccessTypeForm
success_message = _("New template access type successfully created.")
class TemplateAccessTypeDelete(LoginRequiredMixin, SuperuserRequiredMixin, class TemplateAccessTypeDelete(LoginRequiredMixin, SuperuserRequiredMixin,
...@@ -119,16 +123,20 @@ class TemplateAccessTypeDelete(LoginRequiredMixin, SuperuserRequiredMixin, ...@@ -119,16 +123,20 @@ class TemplateAccessTypeDelete(LoginRequiredMixin, SuperuserRequiredMixin,
return reverse("request.views.type-list") return reverse("request.views.type-list")
class LeaseTypeDetail(LoginRequiredMixin, SuperuserRequiredMixin, UpdateView): class LeaseTypeDetail(LoginRequiredMixin, SuperuserRequiredMixin,
SuccessMessageMixin, UpdateView):
model = LeaseType model = LeaseType
template_name = "request/lease-type-form.html" template_name = "request/lease-type-form.html"
form_class = LeaseTypeForm form_class = LeaseTypeForm
success_message = _("Lease type successfully updated.")
class LeaseTypeCreate(LoginRequiredMixin, SuperuserRequiredMixin, CreateView): class LeaseTypeCreate(LoginRequiredMixin, SuperuserRequiredMixin,
SuccessMessageMixin, CreateView):
model = LeaseType model = LeaseType
template_name = "request/lease-type-form.html" template_name = "request/lease-type-form.html"
form_class = LeaseTypeForm form_class = LeaseTypeForm
success_message = _("New lease type successfully created.")
class LeaseTypeDelete(LoginRequiredMixin, SuperuserRequiredMixin, DeleteView): class LeaseTypeDelete(LoginRequiredMixin, SuperuserRequiredMixin, DeleteView):
...@@ -154,7 +162,7 @@ class RequestTypeList(LoginRequiredMixin, SuperuserRequiredMixin, ...@@ -154,7 +162,7 @@ class RequestTypeList(LoginRequiredMixin, SuperuserRequiredMixin,
return context return context
class TemplateRequestView(FormView): class TemplateRequestView(LoginRequiredMixin, FormView):
form_class = TemplateRequestForm form_class = TemplateRequestForm
template_name = "request/request-template.html" template_name = "request/request-template.html"
...@@ -185,7 +193,7 @@ class TemplateRequestView(FormView): ...@@ -185,7 +193,7 @@ class TemplateRequestView(FormView):
return redirect("/") return redirect("/")
class VmRequestMixin(object): class VmRequestMixin(LoginRequiredMixin, object):
def get_vm(self): def get_vm(self):
return get_object_or_404(Instance, pk=self.kwargs['vm_pk']) return get_object_or_404(Instance, pk=self.kwargs['vm_pk'])
......
{% 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 %}
...@@ -6,5 +6,14 @@ ...@@ -6,5 +6,14 @@
{% block page_title %}{% trans "Page not found" %}{% endblock page_title %} {% block page_title %}{% trans "Page not found" %}{% endblock page_title %}
{% block content %} {% 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 %} {% endblock content %}
{% extends "dashboard/base.html" %} {% extends "base.html" %}
{% load i18n %} {% load i18n %}
{% block title %}HTTP 500{% endblock %} {% block title %}HTTP 500{% endblock %}
......
...@@ -62,7 +62,6 @@ scheduler = import_module(name=django.conf.settings.VM_SCHEDULER) ...@@ -62,7 +62,6 @@ scheduler = import_module(name=django.conf.settings.VM_SCHEDULER)
ACCESS_PROTOCOLS = django.conf.settings.VM_ACCESS_PROTOCOLS ACCESS_PROTOCOLS = django.conf.settings.VM_ACCESS_PROTOCOLS
ACCESS_METHODS = [(key, name) for key, (name, port, transport) ACCESS_METHODS = [(key, name) for key, (name, port, transport)
in ACCESS_PROTOCOLS.iteritems()] in ACCESS_PROTOCOLS.iteritems()]
VNC_PORT_RANGE = (20000, 65536) # inclusive start, exclusive end
def find_unused_port(port_range, used_ports=[]): def find_unused_port(port_range, used_ports=[]):
...@@ -81,7 +80,7 @@ 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(): def find_unused_vnc_port():
port = find_unused_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)) used_ports=Instance.objects.values_list('vnc_port', flat=True))
if port is None: if port is None:
......
...@@ -11,11 +11,12 @@ django-braces==1.4.0 ...@@ -11,11 +11,12 @@ django-braces==1.4.0
django-celery==3.1.16 django-celery==3.1.16
django-crispy-forms==1.4.0 django-crispy-forms==1.4.0
django-model-utils==2.2 django-model-utils==2.2
djangosaml2==0.13.0
django-sizefield==0.6 django-sizefield==0.6
django-sshkey==2.2.0 django-sshkey==2.2.0
django-statici18n==1.1 django-statici18n==1.1
django-tables2==0.15.0 django-tables2==0.15.0
git+https://git.ik.bme.hu/circle/django-taggit.git django-taggit==0.13.0
docutils==0.12 docutils==0.12
Jinja2==2.7.3 Jinja2==2.7.3
jsonfield==1.0.0 jsonfield==1.0.0
...@@ -32,6 +33,7 @@ pyinotify==0.9.4 ...@@ -32,6 +33,7 @@ pyinotify==0.9.4
pytz==2014.7 pytz==2014.7
requests==2.5.3 requests==2.5.3
salt==2014.1.0 salt==2014.1.0
shutilwhich==1.0.1
simplejson==3.6.5 simplejson==3.6.5
six==1.8.0 six==1.8.0
slimit==0.8.1 slimit==0.8.1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment