Commit 324b4ce8 by Karsa Zoltán István

add interface ipv4, mac, ipv6

parent 8179e8f6
...@@ -7,10 +7,15 @@ from firewall.models import Vlan ...@@ -7,10 +7,15 @@ from firewall.models import Vlan
from storage.models import Disk from storage.models import Disk
class InstanceActivitySerializer(serializers.ModelSerializer): class InstanceActivitySerializer(serializers.ModelSerializer):
get_percentage = serializers.IntegerField()
result_data = serializers.JSONField()
class Meta: class Meta:
model = InstanceActivity model = InstanceActivity
fields = ('id', 'instance', 'resultant_state', 'interruptible', 'activity_code', 'readable_name_data', 'parent', fields = ('id', 'instance', 'resultant_state', 'interruptible', 'activity_code', 'parent',
'task_uuid', 'user', 'started', 'finished', 'succeeded', 'result_data', 'created', 'modified') 'task_uuid', 'user', 'started', 'finished', 'succeeded', 'result_data', 'created', 'modified', 'get_percentage')
class GroupSerializer(serializers.ModelSerializer): class GroupSerializer(serializers.ModelSerializer):
class Meta: class Meta:
...@@ -73,9 +78,22 @@ class InstanceSerializer(serializers.ModelSerializer): ...@@ -73,9 +78,22 @@ class InstanceSerializer(serializers.ModelSerializer):
class InterfaceSerializer(serializers.ModelSerializer): class InterfaceSerializer(serializers.ModelSerializer):
mac = serializers.SerializerMethodField('get_mac')
ipv4 = serializers.SerializerMethodField('get_ipv4')
ipv6 = serializers.SerializerMethodField('get_ipv6')
def get_mac(self, i):
return str(i.mac)
def get_ipv4(self, i):
return str(i.ipv4)
def get_ipv6(self, i):
return str(i.ipv6)
class Meta: class Meta:
model = Interface model = Interface
fields = ['id', 'vlan', 'host', 'instance', 'model'] fields = ['id', 'vlan', 'host', 'instance', 'model', 'host', 'mac', 'ipv4', 'ipv6']
class VlanSerializer(serializers.ModelSerializer): class VlanSerializer(serializers.ModelSerializer):
...@@ -97,6 +115,13 @@ class DownloadDiskSerializer(serializers.Serializer): ...@@ -97,6 +115,13 @@ class DownloadDiskSerializer(serializers.Serializer):
url = serializers.CharField(max_length=500) url = serializers.CharField(max_length=500)
name = serializers.CharField(max_length=100) name = serializers.CharField(max_length=100)
class DestroyDiskSerializer(serializers.Serializer):
disk = serializers.IntegerField()
instance = serializers.IntegerField(required=False)
class Meta:
extra_kwargs = {'instance': {'required': False, 'allow_null': True}}
class VMDeploySerializer(serializers.Serializer): class VMDeploySerializer(serializers.Serializer):
node = serializers.IntegerField(required=False) node = serializers.IntegerField(required=False)
......
...@@ -58,7 +58,7 @@ from .views import ( ...@@ -58,7 +58,7 @@ from .views import (
InterfaceREST, InstanceFromTemplateREST, InstanceFTforUsersREST, InterfaceREST, InstanceFromTemplateREST, InstanceFTforUsersREST,
DownloadDiskREST, GetInstanceREST, GetInterfaceREST, ShutdownInstanceREST, DownloadDiskREST, GetInstanceREST, GetInterfaceREST, ShutdownInstanceREST,
GetLeaseREST, GetDiskRest, DeployInstanceREST, CreateDiskREST, GetLeaseREST, GetDiskRest, DeployInstanceREST, CreateDiskREST,
VlanREST, ResizeDiskREST, GetVlanREST, VlanREST, ResizeDiskREST, GetVlanREST, DestroyDiskREST,
StorageDetail, DiskDetail, UserREST, GroupREST, StorageDetail, DiskDetail, UserREST, GroupREST,
InstanceActivityREST, GetInstanceActivityREST, InstanceActivityREST, GetInstanceActivityREST,
MessageList, MessageDetail, MessageCreate, MessageDelete, MessageList, MessageDetail, MessageCreate, MessageDelete,
...@@ -94,6 +94,7 @@ urlpatterns = [ ...@@ -94,6 +94,7 @@ urlpatterns = [
path('acpi/vm/<int:pk>/deploy/', DeployInstanceREST.as_view()), path('acpi/vm/<int:pk>/deploy/', DeployInstanceREST.as_view()),
path('acpi/vm/<int:pk>/shutdown/', ShutdownInstanceREST.as_view()), path('acpi/vm/<int:pk>/shutdown/', ShutdownInstanceREST.as_view()),
path('acpi/vm/<int:pk>/resizedisk/', ResizeDiskREST.as_view()), path('acpi/vm/<int:pk>/resizedisk/', ResizeDiskREST.as_view()),
path('acpi/vm/<int:pk>/destroydisk/', DestroyDiskREST.as_view()),
url(r'^$', IndexView.as_view(), name="dashboard.index"), url(r'^$', IndexView.as_view(), name="dashboard.index"),
url(r"^profile/list/$", UserList.as_view(), url(r"^profile/list/$", UserList.as_view(),
name="dashboard.views.user-list"), name="dashboard.views.user-list"),
......
...@@ -29,7 +29,6 @@ from sizefield.utils import filesizeformat ...@@ -29,7 +29,6 @@ from sizefield.utils import filesizeformat
from rest_framework.authentication import TokenAuthentication, BasicAuthentication from rest_framework.authentication import TokenAuthentication, BasicAuthentication
from rest_framework.permissions import IsAdminUser from rest_framework.permissions import IsAdminUser
from rest_framework.views import APIView from rest_framework.views import APIView
from rest_framework.parsers import JSONParser
from common.models import WorkerNotFound from common.models import WorkerNotFound
from storage.models import DataStore, Disk from storage.models import DataStore, Disk
...@@ -156,14 +155,6 @@ class DiskRest(APIView): ...@@ -156,14 +155,6 @@ class DiskRest(APIView):
serializer = DiskSerializer(templates, many=True) serializer = DiskSerializer(templates, many=True)
return JsonResponse(serializer.data, safe=False) return JsonResponse(serializer.data, safe=False)
def post(self, request, format=None):
data = JSONParser().parse(request)
serializer = DiskSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)
return JsonResponse(serializer.errors, status=400)
class GetDiskRest(APIView): class GetDiskRest(APIView):
authentication_classes = [TokenAuthentication,BasicAuthentication] authentication_classes = [TokenAuthentication,BasicAuthentication]
......
...@@ -44,7 +44,9 @@ from django.views.generic import ( ...@@ -44,7 +44,9 @@ from django.views.generic import (
) )
from braces.views import SuperuserRequiredMixin, LoginRequiredMixin from braces.views import SuperuserRequiredMixin, LoginRequiredMixin
from vm.operations import DeployOperation, DestroyOperation, DownloadDiskOperation, ShutdownOperation, RenewOperation, ResizeDiskOperation from vm.operations import (DeployOperation, DestroyOperation, DownloadDiskOperation, ShutdownOperation, RenewOperation,
ResizeDiskOperation, RemoveDiskOperation
)
from common.models import ( from common.models import (
create_readable, HumanReadableException, fetch_human_exception, create_readable, HumanReadableException, fetch_human_exception,
...@@ -98,7 +100,7 @@ from rest_framework.permissions import IsAdminUser ...@@ -98,7 +100,7 @@ from rest_framework.permissions import IsAdminUser
from dashboard.serializers import ( from dashboard.serializers import (
DiskSerializer, InstanceSerializer, InterfaceSerializer, CreateDiskSerializer, DownloadDiskSerializer, DiskSerializer, InstanceSerializer, InterfaceSerializer, CreateDiskSerializer, DownloadDiskSerializer,
VMDeploySerializer, VlanSerializer, ResizeDiskSerializer, InstanceActivitySerializer VMDeploySerializer, VlanSerializer, ResizeDiskSerializer, InstanceActivitySerializer, DestroyDiskSerializer,
) )
class VlanREST(APIView): class VlanREST(APIView):
...@@ -223,7 +225,7 @@ class GetInstanceREST(APIView): ...@@ -223,7 +225,7 @@ class GetInstanceREST(APIView):
instance = Instance.objects.get(pk=pk) instance = Instance.objects.get(pk=pk)
DestroyOperation(instance).call(user=instance.owner) DestroyOperation(instance).call(user=instance.owner)
serializer = InstanceSerializer(instance, many=False) serializer = InstanceSerializer(instance, many=False)
return JsonResponse(serializer.data, status=401) return JsonResponse(serializer.data, status=204)
class DeployInstanceREST(APIView): class DeployInstanceREST(APIView):
...@@ -329,14 +331,20 @@ class ResizeDiskREST(APIView): ...@@ -329,14 +331,20 @@ class ResizeDiskREST(APIView):
return JsonResponse(ret.data, status=201) return JsonResponse(ret.data, status=201)
return JsonResponse(serializer.errors, status=400) return JsonResponse(serializer.errors, status=400)
class StateOperationREST(APIView): class DestroyDiskREST(APIView):
authentication_classes = [TokenAuthentication,BasicAuthentication] authentication_classes = [TokenAuthentication,BasicAuthentication]
permission_classes = [IsAdminUser] permission_classes = [IsAdminUser]
def post(self, request, pk, format=None): def delete(self, request, pk, format=None):
pass data = JSONParser().parse(request)
return JsonResponse(status=400) serializer = DestroyDiskSerializer(data=data)
if serializer.is_valid():
instance = Instance.objects.get(pk=pk)
disk = Disk.objects.get(pk=int(data['disk']))
RemoveDiskOperation(instance).call(disk=disk, user=instance.owner)
return JsonResponse({}, status=204)
return JsonResponse(serializer.errors, status=400)
class VmDetailVncTokenView(CheckedDetailView): class VmDetailVncTokenView(CheckedDetailView):
......
...@@ -6,7 +6,7 @@ msgid "" ...@@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-24 12:32+0000\n" "POT-Creation-Date: 2022-09-13 15:14+0000\n"
"PO-Revision-Date: 2015-09-04 11:15+0116\n" "PO-Revision-Date: 2015-09-04 11:15+0116\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: Hungarian <cloud@ik.bme.hu>\n" "Language-Team: Hungarian <cloud@ik.bme.hu>\n"
...@@ -463,7 +463,7 @@ msgstr "Választott nyelv" ...@@ -463,7 +463,7 @@ msgstr "Választott nyelv"
#: dashboard/forms.py:1358 dashboard/templates/dashboard/group-list.html:14 #: dashboard/forms.py:1358 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:61 #: dashboard/templates/dashboard/profile.html:69
#: dashboard/templates/dashboard/vm-detail/network.html:44 #: dashboard/templates/dashboard/vm-detail/network.html:44
#: network/templates/network/host-edit.html:32 #: network/templates/network/host-edit.html:32
#: templates/info/help/overview.html:404 #: templates/info/help/overview.html:404
...@@ -585,39 +585,39 @@ msgstr "" ...@@ -585,39 +585,39 @@ msgstr ""
msgid "Invalid confirmation code." msgid "Invalid confirmation code."
msgstr "Fájl törlésének megerősítése" msgstr "Fájl törlésének megerősítése"
#: dashboard/models.py:70 dashboard/models.py:79 #: dashboard/models.py:79 dashboard/models.py:88
msgid "message" msgid "message"
msgstr "üzenet" msgstr "üzenet"
#: dashboard/models.py:72 #: dashboard/models.py:81
msgid "effect" msgid "effect"
msgstr "hatás" msgstr "hatás"
#: dashboard/models.py:73 #: dashboard/models.py:82
msgid "success" msgid "success"
msgstr "siker" msgstr "siker"
#: dashboard/models.py:73 #: dashboard/models.py:82
msgid "info" msgid "info"
msgstr "infó" msgstr "infó"
#: dashboard/models.py:74 #: dashboard/models.py:83
msgid "warning" msgid "warning"
msgstr "figyelmeztetés" msgstr "figyelmeztetés"
#: dashboard/models.py:74 #: dashboard/models.py:83
msgid "danger" msgid "danger"
msgstr "veszély" msgstr "veszély"
#: dashboard/models.py:75 vm/models/node.py:129 #: dashboard/models.py:84 vm/models/node.py:129
msgid "enabled" msgid "enabled"
msgstr "engedélyezve" msgstr "engedélyezve"
#: dashboard/models.py:80 #: dashboard/models.py:89
msgid "messages" msgid "messages"
msgstr "üzenetek" msgstr "üzenetek"
#: dashboard/models.py:96 dashboard/templates/dashboard/index-groups.html:43 #: dashboard/models.py:105 dashboard/templates/dashboard/index-groups.html:43
#: dashboard/templates/dashboard/index-nodes.html:60 #: dashboard/templates/dashboard/index-nodes.html:60
#: dashboard/templates/dashboard/index-templates.html:52 #: dashboard/templates/dashboard/index-templates.html:52
#: dashboard/templates/dashboard/index-users.html:48 #: dashboard/templates/dashboard/index-users.html:48
...@@ -635,23 +635,23 @@ msgstr "üzenetek" ...@@ -635,23 +635,23 @@ msgstr "üzenetek"
msgid "new" msgid "new"
msgstr "új" msgstr "új"
#: dashboard/models.py:97 #: dashboard/models.py:106
msgid "delivered" msgid "delivered"
msgstr "kézbesített" msgstr "kézbesített"
#: dashboard/models.py:98 #: dashboard/models.py:107
msgid "read" msgid "read"
msgstr "olvasott" msgstr "olvasott"
#: dashboard/models.py:158 vm/models/instance.py:137 #: dashboard/models.py:167 vm/models/instance.py:137
msgid "access method" msgid "access method"
msgstr "elérés módja" msgstr "elérés módja"
#: dashboard/models.py:159 #: dashboard/models.py:168
msgid "Type of the remote access method." msgid "Type of the remote access method."
msgstr "Távoli elérési mód típusa." msgstr "Távoli elérési mód típusa."
#: dashboard/models.py:160 firewall/models.py:549 firewall/models.py:581 #: dashboard/models.py:169 firewall/models.py:549 firewall/models.py:581
#: firewall/models.py:970 firewall/models.py:1015 firewall/models.py:1041 #: firewall/models.py:970 firewall/models.py:1015 firewall/models.py:1041
#: storage/models.py:52 storage/models.py:133 vm/models/common.py:66 #: storage/models.py:52 storage/models.py:133 vm/models/common.py:66
#: vm/models/common.py:90 vm/models/common.py:165 vm/models/instance.py:180 #: vm/models/common.py:90 vm/models/common.py:165 vm/models/instance.py:180
...@@ -659,15 +659,15 @@ msgstr "Távoli elérési mód típusa." ...@@ -659,15 +659,15 @@ msgstr "Távoli elérési mód típusa."
msgid "name" msgid "name"
msgstr "név" msgstr "név"
#: dashboard/models.py:161 #: dashboard/models.py:170
msgid "Name of your custom command." msgid "Name of your custom command."
msgstr "Egyedi parancs neve" msgstr "Egyedi parancs neve"
#: dashboard/models.py:163 #: dashboard/models.py:172
msgid "command template" msgid "command template"
msgstr "parancssablon" msgstr "parancssablon"
#: dashboard/models.py:164 #: dashboard/models.py:173
msgid "" msgid ""
"Template for connection command string. Available parameters are: username, " "Template for connection command string. Available parameters are: username, "
"password, host, port." "password, host, port."
...@@ -675,79 +675,79 @@ msgstr "" ...@@ -675,79 +675,79 @@ msgstr ""
"Sablon a csatlakozási parancshoz. Elérhető paraméterek: username, password, " "Sablon a csatlakozási parancshoz. Elérhető paraméterek: username, password, "
"host, port." "host, port."
#: dashboard/models.py:179 #: dashboard/models.py:188
msgid "preferred language" msgid "preferred language"
msgstr "választott nyelv" msgstr "választott nyelv"
#: dashboard/models.py:185 dashboard/models.py:281 #: dashboard/models.py:194 dashboard/models.py:290
msgid "Unique identifier of the person, e.g. a student number." msgid "Unique identifier of the person, e.g. a student number."
msgstr "A személy egyedi azonosítója, például hallgatói azonosító." msgstr "A személy egyedi azonosítója, például hallgatói azonosító."
#: dashboard/models.py:189 #: dashboard/models.py:198
msgid "Use Gravatar" msgid "Use Gravatar"
msgstr "Gravatar használata" msgstr "Gravatar használata"
#: dashboard/models.py:190 #: dashboard/models.py:199
msgid "Whether to use email address as Gravatar profile image" msgid "Whether to use email address as Gravatar profile image"
msgstr "Használható-e az e-mail cím a Gravatar profilkép betöltésére" msgstr "Használható-e az e-mail cím a Gravatar profilkép betöltésére"
#: dashboard/models.py:192 #: dashboard/models.py:201
msgid "Email notifications" msgid "Email notifications"
msgstr "E-mail értesítések" msgstr "E-mail értesítések"
#: dashboard/models.py:193 #: dashboard/models.py:202
msgid "Whether user wants to get digested email notifications." msgid "Whether user wants to get digested email notifications."
msgstr "A felhasználó kéri-e tömbösített e-mail értesítések küldését." msgstr "A felhasználó kéri-e tömbösített e-mail értesítések küldését."
#: dashboard/models.py:195 #: dashboard/models.py:204
#, fuzzy #, fuzzy
#| msgid "Latest modifications" #| msgid "Latest modifications"
msgid "Desktop notifications" msgid "Desktop notifications"
msgstr "Legutóbbi változások" msgstr "Legutóbbi változások"
#: dashboard/models.py:196 #: dashboard/models.py:205
msgid "" msgid ""
"Whether user wants to get desktop notification when an activity has finished " "Whether user wants to get desktop notification when an activity has finished "
"and the window is not in focus." "and the window is not in focus."
msgstr "" msgstr ""
#: dashboard/models.py:200 #: dashboard/models.py:209
msgid "Samba password" msgid "Samba password"
msgstr "Samba jelszó" msgstr "Samba jelszó"
#: dashboard/models.py:202 #: dashboard/models.py:211
msgid "Generated password for accessing store from virtual machines." msgid "Generated password for accessing store from virtual machines."
msgstr "A tárhely virtuális gépekről való eléréséhez generált jelszó." msgstr "A tárhely virtuális gépekről való eléréséhez generált jelszó."
#: dashboard/models.py:207 dashboard/models.py:306 #: dashboard/models.py:216 dashboard/models.py:315
msgid "disk quota" msgid "disk quota"
msgstr "lemezkvóta" msgstr "lemezkvóta"
#: dashboard/models.py:209 dashboard/models.py:308 #: dashboard/models.py:218 dashboard/models.py:317
msgid "Disk quota in mebibytes." msgid "Disk quota in mebibytes."
msgstr "Lemezkvóta mebibyte-okban." msgstr "Lemezkvóta mebibyte-okban."
#: dashboard/models.py:211 #: dashboard/models.py:220
msgid "two factor secret key" msgid "two factor secret key"
msgstr "" msgstr ""
#: dashboard/models.py:275 #: dashboard/models.py:284
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:294 firewall/models.py:296 request/models.py:266 #: dashboard/models.py:303 firewall/models.py:296 request/models.py:266
#: vm/models/common.py:86 vm/models/instance.py:177 vm/models/instance.py:314 #: vm/models/common.py:86 vm/models/instance.py:177 vm/models/instance.py:314
msgid "operator" msgid "operator"
msgstr "operátor" msgstr "operátor"
#: dashboard/models.py:295 firewall/models.py:111 firewall/models.py:401 #: dashboard/models.py:304 firewall/models.py:111 firewall/models.py:401
#: firewall/models.py:558 firewall/models.py:586 firewall/models.py:656 #: firewall/models.py:558 firewall/models.py:586 firewall/models.py:656
#: firewall/models.py:1016 firewall/models.py:1050 vm/models/common.py:87 #: firewall/models.py:1016 firewall/models.py:1050 vm/models/common.py:87
#: vm/models/instance.py:178 vm/models/instance.py:315 #: vm/models/instance.py:178 vm/models/instance.py:315
msgid "owner" msgid "owner"
msgstr "tulajdonos" msgstr "tulajdonos"
#: dashboard/models.py:301 #: dashboard/models.py:310
msgid "Unique identifier of the group at the organization." msgid "Unique identifier of the group at the organization."
msgstr "A csoport egyedi szervezeti azonosítója." msgstr "A csoport egyedi szervezeti azonosítója."
...@@ -973,11 +973,14 @@ msgstr "alapértelmezett ipv6 cím" ...@@ -973,11 +973,14 @@ msgstr "alapértelmezett ipv6 cím"
msgid "" msgid ""
"associated vlans: list of objects (name: vlan name, ipv4/ipv6: host ip in " "associated vlans: list of objects (name: vlan name, ipv4/ipv6: host ip in "
"vlan)" "vlan)"
msgstr "csatolt vlan-ok (objektumok listája): vlan neve (.name), ipv4/ipv6 (.ipv4/.ipv6) címek" msgstr ""
"csatolt vlan-ok (objektumok listája): vlan neve (.name), ipv4/ipv6 (.ipv4/."
"ipv6) címek"
#: dashboard/templates/dashboard/_ci-data-help.html:22 #: dashboard/templates/dashboard/_ci-data-help.html:22
msgid "owner's ssh-keys dictionary: the key is the ssh-key's name" msgid "owner's ssh-keys dictionary: the key is the ssh-key's name"
msgstr "tulajdonos ssh-kulcsainak dictionary-je, a kulcsot a ssh kulcs neve adja" msgstr ""
"tulajdonos ssh-kulcsainak dictionary-je, a kulcsot a ssh kulcs neve adja"
#: dashboard/templates/dashboard/_ci-data-help.html:23 #: dashboard/templates/dashboard/_ci-data-help.html:23
msgid "function: make random string with 'len' charachters lenght" msgid "function: make random string with 'len' charachters lenght"
...@@ -994,7 +997,9 @@ msgstr "Filterek: hash - sha512 hash" ...@@ -994,7 +997,9 @@ msgstr "Filterek: hash - sha512 hash"
#: dashboard/templates/dashboard/_ci-data-help.html:27 #: dashboard/templates/dashboard/_ci-data-help.html:27
msgid "" msgid ""
"Use this commands, to clean cloud-init setup (for save as template example):" "Use this commands, to clean cloud-init setup (for save as template example):"
msgstr "Használja az alábbi parancsokat a cloud-init beállítások törlésére (pl. hogy template-nek elmentsük)" msgstr ""
"Használja az alábbi parancsokat a cloud-init beállítások törlésére (pl. hogy "
"template-nek elmentsük)"
#: dashboard/templates/dashboard/_client-check.html:4 #: dashboard/templates/dashboard/_client-check.html:4
msgid "" msgid ""
...@@ -1989,7 +1994,7 @@ msgstr "meghiúsult" ...@@ -1989,7 +1994,7 @@ msgstr "meghiúsult"
#: dashboard/templates/dashboard/instanceactivity_detail.html:78 #: dashboard/templates/dashboard/instanceactivity_detail.html:78
#: dashboard/templates/dashboard/nodeactivity_detail.html:74 #: dashboard/templates/dashboard/nodeactivity_detail.html:74
#: dashboard/views/storage.py:59 #: dashboard/views/storage.py:66
msgid "none" msgid "none"
msgstr "nincs" msgstr "nincs"
...@@ -2251,43 +2256,43 @@ msgstr "Keresztnév" ...@@ -2251,43 +2256,43 @@ msgstr "Keresztnév"
msgid "Last name" msgid "Last name"
msgstr "Vezetéknév" msgstr "Vezetéknév"
#: dashboard/templates/dashboard/profile.html:45 #: dashboard/templates/dashboard/profile.html:53
msgid "Last login" msgid "Last login"
msgstr "Utolsó belépés" msgstr "Utolsó belépés"
#: dashboard/templates/dashboard/profile.html:48 #: dashboard/templates/dashboard/profile.html:56
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:51 #: dashboard/templates/dashboard/profile.html:59
msgid "What's Gravatar?" msgid "What's Gravatar?"
msgstr "Mi az a Gravatar?" msgstr "Mi az a Gravatar?"
#: dashboard/templates/dashboard/profile.html:53 #: dashboard/templates/dashboard/profile.html:61
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:67 #: dashboard/templates/dashboard/profile.html:75
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:76 #: dashboard/templates/dashboard/profile.html:84
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:88 #: dashboard/templates/dashboard/profile.html:96
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:97 #: dashboard/templates/dashboard/profile.html:105
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:109 #: dashboard/templates/dashboard/profile.html:117
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:123 #: dashboard/templates/dashboard/profile.html:131
msgid "Edit user" msgid "Edit user"
msgstr "Felhasználó szerkesztése" msgstr "Felhasználó szerkesztése"
...@@ -2582,7 +2587,7 @@ msgid "Currently uploading to" ...@@ -2582,7 +2587,7 @@ msgid "Currently uploading to"
msgstr "Feltöltés helye:" msgstr "Feltöltés helye:"
#: dashboard/templates/dashboard/template-edit.html:7 #: dashboard/templates/dashboard/template-edit.html:7
#: dashboard/views/storage.py:58 vm/models/instance.py:203 #: dashboard/views/storage.py:65 vm/models/instance.py:203
#: vm/models/instance.py:332 vm/models/network.py:45 #: vm/models/instance.py:332 vm/models/network.py:45
msgid "template" msgid "template"
msgstr "sablon" msgstr "sablon"
...@@ -3308,72 +3313,72 @@ msgstr "CPU-használat (%)" ...@@ -3308,72 +3313,72 @@ msgstr "CPU-használat (%)"
msgid "Allocated memory (bytes)" msgid "Allocated memory (bytes)"
msgstr "Foglalt memória (byte)" msgstr "Foglalt memória (byte)"
#: dashboard/views/group.py:160 #: dashboard/views/group.py:185
#, 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:174 #: dashboard/views/group.py:199
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:242 #: dashboard/views/group.py:267
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:276 #: dashboard/views/group.py:301
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:301 #: dashboard/views/group.py:326
#, fuzzy #, fuzzy
#| msgid "Future user successfully removed from group." #| msgid "Future user successfully removed from group."
msgid "All users successfully removed from group." msgid "All users 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:310 #: dashboard/views/group.py:335
#, fuzzy #, fuzzy
#| msgid "user" #| msgid "user"
msgid "all users" msgid "all users"
msgstr "felhasználó" msgstr "felhasználó"
#: dashboard/views/group.py:325 #: dashboard/views/group.py:350
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:353 #: dashboard/views/group.py:378
msgid "Create a Group" msgid "Create a Group"
msgstr "Csoport létrehozása" msgstr "Csoport létrehozása"
#: dashboard/views/group.py:369 #: dashboard/views/group.py:394
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:403 #: dashboard/views/group.py:428
#, fuzzy #, fuzzy
#| msgid "Create a Group" #| msgid "Create a Group"
msgid "Import a Group" msgid "Import a Group"
msgstr "Csoport létrehozása" msgstr "Csoport létrehozása"
#: dashboard/views/group.py:426 #: dashboard/views/group.py:451
#, fuzzy #, fuzzy
#| msgid "Group successfully created." #| msgid "Group successfully created."
msgid "Group successfully imported." msgid "Group successfully imported."
msgstr "A csoport létrehozásra került." msgstr "A csoport létrehozásra került."
#: dashboard/views/group.py:473 #: dashboard/views/group.py:498
#, fuzzy #, fuzzy
#| msgid "host group" #| msgid "host group"
msgid "Export Group" msgid "Export Group"
msgstr "gépcsoport" msgstr "gépcsoport"
#: dashboard/views/group.py:499 #: dashboard/views/group.py:524
#, fuzzy #, fuzzy
#| msgid "Group successfully deleted." #| msgid "Group successfully deleted."
msgid "Group successfully exported." msgid "Group successfully exported."
msgstr "A csoport törlésre került." msgstr "A csoport törlésre került."
#: dashboard/views/group.py:520 #: dashboard/views/group.py:545
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."
...@@ -3385,37 +3390,37 @@ msgstr "Az üzenet frissítésre került." ...@@ -3385,37 +3390,37 @@ msgstr "Az üzenet frissítésre került."
msgid "New broadcast message successfully created." msgid "New broadcast message successfully created."
msgstr "Az üzenet létrehozása került." msgstr "Az üzenet létrehozása került."
#: dashboard/views/node.py:152 #: dashboard/views/node.py:187
msgid "Node successfully renamed." msgid "Node successfully renamed."
msgstr "A csomópont átnevezésre került." msgstr "A csomópont átnevezésre került."
#: dashboard/views/node.py:261 #: dashboard/views/node.py:296
msgid "Create a node" msgid "Create a node"
msgstr "Új csomópont hozzáadása" msgstr "Új csomópont hozzáadása"
#: dashboard/views/node.py:285 #: dashboard/views/node.py:320
msgid "Node successfully created." msgid "Node successfully created."
msgstr "A csomópont létrehozásra került." msgstr "A csomópont létrehozásra került."
#: dashboard/views/node.py:296 #: dashboard/views/node.py:331
msgid "Node successfully deleted." msgid "Node successfully deleted."
msgstr "A csomópont törlésre került." msgstr "A csomópont törlésre került."
#: dashboard/views/node.py:332 #: dashboard/views/node.py:367
msgid "Trait successfully added to node." msgid "Trait successfully added to node."
msgstr "A csomópontjellemző hozzáadásra került." msgstr "A csomópontjellemző hozzáadásra került."
#: dashboard/views/node.py:392 #: dashboard/views/node.py:427
#, fuzzy #, fuzzy
#| msgid "schedule enabled" #| msgid "schedule enabled"
msgid "Reschedule has started." msgid "Reschedule has started."
msgstr "ütemezés engedélyezve" msgstr "ütemezés engedélyezve"
#: dashboard/views/storage.py:51 #: dashboard/views/storage.py:58
msgid "The DataStore is offline." 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:64
msgid "virtual machine" msgid "virtual machine"
msgstr "virtuális gép" msgstr "virtuális gép"
...@@ -3448,39 +3453,39 @@ msgstr "%s törlése sikertelen." ...@@ -3448,39 +3453,39 @@ msgstr "%s törlése sikertelen."
msgid "Unable to create folder." msgid "Unable to create folder."
msgstr "Mappa létrehozása sikertelen." msgstr "Mappa létrehozása sikertelen."
#: dashboard/views/template.py:87 #: dashboard/views/template.py:96
msgid "Choose template" msgid "Choose template"
msgstr "Válasszon sablont" msgstr "Válasszon sablont"
#: dashboard/views/template.py:102 #: dashboard/views/template.py:111
msgid "Select an option to proceed." msgid "Select an option to proceed."
msgstr "Válasszon a folytatáshoz." msgstr "Válasszon a folytatáshoz."
#: dashboard/views/template.py:133 #: dashboard/views/template.py:142
msgid "Create a new base VM" msgid "Create a new base VM"
msgstr "Alap VM létrehozása" msgstr "Alap VM létrehozása"
#: dashboard/views/template.py:296 dashboard/views/vm.py:1081 #: dashboard/views/template.py:426 dashboard/views/vm.py:1334
msgid "Error during filtering." msgid "Error during filtering."
msgstr "A szűrés sikertelen." msgstr "A szűrés sikertelen."
#: dashboard/views/template.py:303 #: dashboard/views/template.py:433
msgid "Template successfully deleted." msgid "Template successfully deleted."
msgstr "A sablon törlésre került." msgstr "A sablon törlésre került."
#: dashboard/views/template.py:319 #: dashboard/views/template.py:449
msgid "Successfully modified template." msgid "Successfully modified template."
msgstr "A sablon módosításra került." msgstr "A sablon módosításra került."
#: dashboard/views/template.py:378 #: dashboard/views/template.py:508
msgid "Disk successfully removed." msgid "Disk successfully removed."
msgstr "A lemez eltávolításra került." msgstr "A lemez eltávolításra került."
#: dashboard/views/template.py:394 #: dashboard/views/template.py:524
msgid "Disk remove confirmation" msgid "Disk remove confirmation"
msgstr "Lemez törlésének megerősítése" msgstr "Lemez törlésének megerősítése"
#: dashboard/views/template.py:395 #: dashboard/views/template.py:525
#, python-format #, python-format
msgid "" msgid ""
"Are you sure you want to remove <strong>%(disk)s</strong> from <strong>" "Are you sure you want to remove <strong>%(disk)s</strong> from <strong>"
...@@ -3489,23 +3494,23 @@ msgstr "" ...@@ -3489,23 +3494,23 @@ msgstr ""
"Biztosan eltávolítja a(z) <strong>%(disk)s</strong> lemezt a következőből: " "Biztosan eltávolítja a(z) <strong>%(disk)s</strong> lemezt a következőből: "
"%(app)s?" "%(app)s?"
#: dashboard/views/template.py:418 #: dashboard/views/template.py:548
msgid "Successfully created a new lease." msgid "Successfully created a new lease."
msgstr "Új bérlési mód létrehozásra került." msgstr "Új bérlési mód létrehozásra került."
#: dashboard/views/template.py:437 #: dashboard/views/template.py:567
msgid "Successfully modified lease." msgid "Successfully modified lease."
msgstr "A bérlési mód megváltoztatásra került." msgstr "A bérlési mód megváltoztatásra került."
#: dashboard/views/template.py:451 #: dashboard/views/template.py:581
msgid "Only the owners can modify the selected lease." msgid "Only the owners can modify the selected lease."
msgstr "Csak a tulajdonosai törölhetik a kiválasztott bérleti módot." msgstr "Csak a tulajdonosai törölhetik a kiválasztott bérleti módot."
#: dashboard/views/template.py:465 #: dashboard/views/template.py:595
msgid "Lease successfully deleted." msgid "Lease successfully deleted."
msgstr "A bérlési mód törlésre került." msgstr "A bérlési mód törlésre került."
#: dashboard/views/template.py:475 #: dashboard/views/template.py:605
msgid "" msgid ""
"You can't delete this lease because some templates are still using it, " "You can't delete this lease because some templates are still using it, "
"modify these to proceed: " "modify these to proceed: "
...@@ -3513,7 +3518,7 @@ msgstr "" ...@@ -3513,7 +3518,7 @@ msgstr ""
"Nem törölhető a bérleti mód, mivel az alábbi sablonok még használják. A " "Nem törölhető a bérleti mód, mivel az alábbi sablonok még használják. A "
"folytatáshoz módosítsa őket: " "folytatáshoz módosítsa őket: "
#: dashboard/views/template.py:500 #: dashboard/views/template.py:630
#, python-format #, python-format
msgid "" msgid ""
"%(owner)s offered you to take the ownership of his/her template called " "%(owner)s offered you to take the ownership of his/her template called "
...@@ -3523,251 +3528,257 @@ msgstr "" ...@@ -3523,251 +3528,257 @@ msgstr ""
"%(owner)s át kívánja ruházni %(instance)s nevű sablonját Önre. <a href=" "%(owner)s át kívánja ruházni %(instance)s nevű sablonját Önre. <a href="
"\"%(token)s\" class=\"btn btn-success btn-small\">Elfogadás</a>" "\"%(token)s\" class=\"btn btn-success btn-small\">Elfogadás</a>"
#: dashboard/views/user.py:73 #: dashboard/views/user.py:96
msgid "" msgid ""
"You've logged in with an administrator account, your session will expire " "You've logged in with an administrator account, your session will expire "
"when the web browser is closed." "when the web browser is closed."
msgstr "" msgstr ""
#: dashboard/views/user.py:178 #: dashboard/views/user.py:201
#, python-format #, python-format
msgid "Logged in as user %s." msgid "Logged in as user %s."
msgstr "Bejelentkezve mint %s." msgstr "Bejelentkezve mint %s."
#: dashboard/views/user.py:211 #: dashboard/views/user.py:234
msgid "You don't have a profile." msgid "You don't have a profile."
msgstr "Nincs profilja." msgstr "Nincs profilja."
#: dashboard/views/user.py:229 #: dashboard/views/user.py:252
#, fuzzy #, fuzzy
#| msgid "Node successfully changed status." #| msgid "Node successfully changed status."
msgid "Password successfully changed." msgid "Password successfully changed."
msgstr "A csomópont állapota megváltoztatásra került." msgstr "A csomópont állapota megváltoztatásra került."
#: dashboard/views/user.py:251 #: dashboard/views/user.py:274
msgid "Successfully modified subscription." msgid "Successfully modified subscription."
msgstr "A feliratkozás módosításra került." msgstr "A feliratkozás módosításra került."
#: dashboard/views/user.py:314 #: dashboard/views/user.py:337
msgid "Create a User" msgid "Create a User"
msgstr "Felhasználó létrehozása" msgstr "Felhasználó létrehozása"
#: dashboard/views/user.py:345 #: dashboard/views/user.py:368
msgid "Successfully modified user." msgid "Successfully modified user."
msgstr "A felhasználó megváltoztatásra került." msgstr "A felhasználó megváltoztatásra került."
#: dashboard/views/user.py:437 #: dashboard/views/user.py:462
msgid "Successfully modified SSH key." msgid "Successfully modified SSH key."
msgstr "Az SSH kulcs módosításra került." msgstr "Az SSH kulcs módosításra került."
#: dashboard/views/user.py:458 #: dashboard/views/user.py:483
msgid "SSH key successfully deleted." msgid "SSH key successfully deleted."
msgstr "Az SSH kulcs törlésre került." msgstr "Az SSH kulcs törlésre került."
#: dashboard/views/user.py:472 #: dashboard/views/user.py:497
msgid "Successfully created a new SSH key." msgid "Successfully created a new SSH key."
msgstr "Az új SSH kulcs hozzáadásra került." msgstr "Az új SSH kulcs hozzáadásra került."
#: dashboard/views/user.py:488 #: dashboard/views/user.py:513
msgid "Successfully modified command template." msgid "Successfully modified command template."
msgstr "A parancssablon módosításra került." msgstr "A parancssablon módosításra került."
#: dashboard/views/user.py:514 #: dashboard/views/user.py:539
msgid "Command template successfully deleted." msgid "Command template successfully deleted."
msgstr "A parancssablon törlésre került." msgstr "A parancssablon törlésre került."
#: dashboard/views/user.py:529 #: dashboard/views/user.py:554
msgid "Successfully created a new command template." msgid "Successfully created a new command template."
msgstr "A parancssablon létrehozásra került." msgstr "A parancssablon létrehozásra került."
#: dashboard/views/user.py:591 #: dashboard/views/user.py:616
msgid "Two-factor authentication is already enabled for your account." msgid "Two-factor authentication is already enabled for your account."
msgstr "" msgstr ""
#: dashboard/views/util.py:321 #: dashboard/views/util.py:350
msgid "Could not start operation." msgid "Could not start operation."
msgstr "A művelet megkezdése meghiúsult." msgstr "A művelet megkezdése meghiúsult."
#: dashboard/views/util.py:338 #: dashboard/views/util.py:367
msgid "Operation failed." msgid "Operation failed."
msgstr "A művelet meghiúsult." msgstr "A művelet meghiúsult."
#: dashboard/views/util.py:343 #: dashboard/views/util.py:372
msgid "Operation succeeded." msgid "Operation succeeded."
msgstr "A művelet sikeresen végrehajtásra került." msgstr "A művelet sikeresen végrehajtásra került."
#: dashboard/views/util.py:345 #: dashboard/views/util.py:374
msgid "Operation is started." msgid "Operation is started."
msgstr "A művelet megkezdődött." msgstr "A művelet megkezdődött."
#: dashboard/views/util.py:433 #: dashboard/views/util.py:462
#, python-format #, python-format
msgid "Acl user/group %(w)s successfully modified." msgid "Acl user/group %(w)s successfully modified."
msgstr "A(z) %(w)s ACL felhasználó/csoport módosításra került." msgstr "A(z) %(w)s ACL felhasználó/csoport módosításra került."
#: dashboard/views/util.py:435 #: dashboard/views/util.py:464
#, python-format #, python-format
msgid "Acl user/group %(w)s successfully added." msgid "Acl user/group %(w)s successfully added."
msgstr "A(z) %(w)s ACL felhasználó/csoport hozzáadásra került." msgstr "A(z) %(w)s ACL felhasználó/csoport hozzáadásra került."
#: dashboard/views/util.py:437 #: dashboard/views/util.py:466
#, python-format #, python-format
msgid "Acl user/group %(w)s successfully removed." msgid "Acl user/group %(w)s successfully removed."
msgstr "A(z) %(w)s ACL felhasználó/csoport törlésre került." msgstr "A(z) %(w)s ACL felhasználó/csoport törlésre került."
#: dashboard/views/util.py:522 #: dashboard/views/util.py:551
msgid "" msgid ""
"The original owner cannot be removed, however you can transfer ownership." "The original owner cannot be removed, however you can transfer ownership."
msgstr "Az eredeti tulajdonos nem törölhető, azonban a tulajdon átruházható." msgstr "Az eredeti tulajdonos nem törölhető, azonban a tulajdon átruházható."
#: dashboard/views/util.py:558 #: dashboard/views/util.py:587
#, python-format #, python-format
msgid "User \"%s\" has already access to this object." msgid "User \"%s\" has already access to this object."
msgstr "„%s” felhasználó már hozzáfér az objektumhoz." msgstr "„%s” felhasználó már hozzáfér az objektumhoz."
#: dashboard/views/util.py:567 #: dashboard/views/util.py:596
#, python-format #, python-format
msgid "Group \"%s\" has already access to this object." msgid "Group \"%s\" has already access to this object."
msgstr "„%s” csoport már hozzáfér az objektumhoz." msgstr "„%s” csoport már hozzáfér az objektumhoz."
#: dashboard/views/util.py:572 #: dashboard/views/util.py:601
#, python-format #, python-format
msgid "User or group \"%s\" not found." msgid "User or group \"%s\" not found."
msgstr "Nem található „%s” felhasználó vagy csoport." msgstr "Nem található „%s” felhasználó vagy csoport."
#: dashboard/views/util.py:588 #: dashboard/views/util.py:617
msgid "1 hour" msgid "1 hour"
msgstr "1 óra" msgstr "1 óra"
#: dashboard/views/util.py:589 #: dashboard/views/util.py:618
msgid "6 hours" msgid "6 hours"
msgstr "6 óra" msgstr "6 óra"
#: dashboard/views/util.py:590 #: dashboard/views/util.py:619
msgid "1 day" msgid "1 day"
msgstr "1 nap" msgstr "1 nap"
#: dashboard/views/util.py:591 #: dashboard/views/util.py:620
msgid "1 week" msgid "1 week"
msgstr "1 hét" msgstr "1 hét"
#: dashboard/views/util.py:592 #: dashboard/views/util.py:621
msgid "1 month" msgid "1 month"
msgstr "1 hónap" msgstr "1 hónap"
#: dashboard/views/util.py:593 #: dashboard/views/util.py:622
msgid "6 months" msgid "6 months"
msgstr "6 hónap" msgstr "6 hónap"
#: dashboard/views/util.py:602 #: dashboard/views/util.py:631
msgid "Bad graph time format, available periods are: h, d, w, and y." msgid "Bad graph time format, available periods are: h, d, w, and y."
msgstr "Hibás grafikon időformátum. Lehetséges egységek: h, d, w és y." msgstr "Hibás grafikon időformátum. Lehetséges egységek: h, d, w és y."
#: dashboard/views/util.py:627 #: dashboard/views/util.py:656
msgid "Transfer ownership" msgid "Transfer ownership"
msgstr "Tulajdon átruházása" msgstr "Tulajdon átruházása"
#: dashboard/views/util.py:640 #: dashboard/views/util.py:669
msgid "Can not find specified user." msgid "Can not find specified user."
msgstr "Nem található a megadott felhasználó." msgstr "Nem található a megadott felhasználó."
#: dashboard/views/util.py:656 #: dashboard/views/util.py:685
msgid "Ownership offer" msgid "Ownership offer"
msgstr "Átruházási ajánlat" msgstr "Átruházási ajánlat"
#: dashboard/views/util.py:660 #: dashboard/views/util.py:689
msgid "Can not notify selected user." msgid "Can not notify selected user."
msgstr "A kiválaszott felhasználó értesítése sikertelen." msgstr "A kiválaszott felhasználó értesítése sikertelen."
#: dashboard/views/util.py:663 #: dashboard/views/util.py:692
#, python-format #, python-format
msgid "User %s is notified about the offer." msgid "User %s is notified about the offer."
msgstr "%s felhasználó értesítésre került az ajánlatról." msgstr "%s felhasználó értesítésre került az ajánlatról."
#: dashboard/views/util.py:673 #: dashboard/views/util.py:702
msgid "Ownership successfully transferred to you." msgid "Ownership successfully transferred to you."
msgstr "A tulajdon átruházásra került." msgstr "A tulajdon átruházásra került."
#: dashboard/views/util.py:686 #: dashboard/views/util.py:715
msgid "This token is for an other user." msgid "This token is for an other user."
msgstr "A token más felhasználó nevére szól." msgstr "A token más felhasználó nevére szól."
#: dashboard/views/util.py:689 #: dashboard/views/util.py:718
msgid "This token is invalid or has expired." msgid "This token is invalid or has expired."
msgstr "A token érvénytelen vagy lejárt." msgstr "A token érvénytelen vagy lejárt."
#: dashboard/views/util.py:711 #: dashboard/views/util.py:740
msgid "Ownership accepted" msgid "Ownership accepted"
msgstr "Átruházás elfogadva" msgstr "Átruházás elfogadva"
#: dashboard/views/util.py:712 #: dashboard/views/util.py:741
#, 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:761 #: dashboard/views/util.py:790
msgid "Only the owners can delete the selected object." msgid "Only the owners can delete the selected object."
msgstr "Csak a tulajdonos törölheti a kiválasztott objektumot." msgstr "Csak a tulajdonos törölheti a kiválasztott objektumot."
#: dashboard/views/vm.py:102 #: dashboard/views/vm.py:181
#, fuzzy
#| msgid "create instance"
msgid "create instance (REST)"
msgstr "példány létrehozása"
#: dashboard/views/vm.py:355
msgid "console access" msgid "console access"
msgstr "konzolhozzáférés" msgstr "konzolhozzáférés"
#: dashboard/views/vm.py:235 #: dashboard/views/vm.py:488
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:654 #: dashboard/views/vm.py:907
msgid "The token has expired." msgid "The token has expired."
msgstr "A token lejárt." msgstr "A token lejárt."
#: dashboard/views/vm.py:787 #: dashboard/views/vm.py:1040
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:916 #: dashboard/views/vm.py:1169
#, 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:932 #: dashboard/views/vm.py:1185
#, 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:1131 #: dashboard/views/vm.py:1384
msgid "Customize VM" msgid "Customize VM"
msgstr "VM testreszabása" msgstr "VM testreszabása"
#: dashboard/views/vm.py:1139 #: dashboard/views/vm.py:1392
msgid "Create a VM" msgid "Create a VM"
msgstr "VM létrehozása" msgstr "VM létrehozása"
#: dashboard/views/vm.py:1196 #: dashboard/views/vm.py:1449
#, 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:1201 #: dashboard/views/vm.py:1454
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:1263 #: dashboard/views/vm.py:1516
#, 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:1326 #: dashboard/views/vm.py:1579
msgid "About CIRCLE Client" msgid "About CIRCLE Client"
msgstr "A CIRCLE kliensről" msgstr "A CIRCLE kliensről"
#: dashboard/views/vm.py:1417 #: dashboard/views/vm.py:1670
msgid "transfer ownership" msgid "transfer ownership"
msgstr "tulajdon átruházása" msgstr "tulajdon átruházása"
#: dashboard/views/vm.py:1427 #: dashboard/views/vm.py:1680
#, python-format #, python-format
msgid "" msgid ""
"%(owner)s offered you to take the ownership of his/her virtual machine " "%(owner)s offered you to take the ownership of his/her virtual machine "
...@@ -7203,7 +7214,8 @@ msgstr "Használjon cloud-init-et" ...@@ -7203,7 +7214,8 @@ msgstr "Használjon cloud-init-et"
#: vm/models/instance.py:148 #: vm/models/instance.py:148
msgid "VM use cloud-init, set user- and meta-data below" msgid "VM use cloud-init, set user- and meta-data below"
msgstr "A vm cloud-init-et használ, állítsa be a user- és meta-data configurációt" msgstr ""
"A vm cloud-init-et használ, állítsa be a user- és meta-data configurációt"
#: vm/models/instance.py:149 #: vm/models/instance.py:149
msgid "CI Meta Data" msgid "CI Meta Data"
...@@ -7418,18 +7430,18 @@ msgstr "" ...@@ -7418,18 +7430,18 @@ msgstr ""
msgid "create instance" msgid "create instance"
msgstr "példány létrehozása" msgstr "példány létrehozása"
#: vm/models/instance.py:609 #: vm/models/instance.py:614
#, python-format #, python-format
msgid "vm state changed to %(state)s on %(node)s" msgid "vm state changed to %(state)s on %(node)s"
msgstr "VM állapota erre változott: %(state)s (ezen: %(node)s)" msgstr "VM állapota erre változott: %(state)s (ezen: %(node)s)"
#: vm/models/instance.py:611 #: vm/models/instance.py:616
#, fuzzy, python-format #, fuzzy, python-format
#| msgid "vm state changed to %(state)s on %(node)s" #| msgid "vm state changed to %(state)s on %(node)s"
msgid "vm state changed to %(state)s" msgid "vm state changed to %(state)s"
msgstr "VM állapota erre változott: %(state)s (ezen: %(node)s)" msgstr "VM állapota erre változott: %(state)s (ezen: %(node)s)"
#: vm/models/instance.py:811 #: vm/models/instance.py:816
#, python-format #, python-format
msgid "" msgid ""
"Your instance <a href=\"%(url)s\">%(instance)s</a> is going to expire. It " "Your instance <a href=\"%(url)s\">%(instance)s</a> is going to expire. It "
...@@ -7441,7 +7453,7 @@ msgstr "" ...@@ -7441,7 +7453,7 @@ msgstr ""
"kerül. Kérjük, <a href=\"%(token)s\">újítsa meg</a> vagy <a href=\"%(url)s" "kerül. Kérjük, <a href=\"%(token)s\">újítsa meg</a> vagy <a href=\"%(url)s"
"\">törölje</a> most." "\">törölje</a> most."
#: vm/models/instance.py:823 #: vm/models/instance.py:828
#, python-format #, python-format
msgid "" msgid ""
"%(failed)s notifications failed and %(success) succeeded. Failed ones are: " "%(failed)s notifications failed and %(success) succeeded. Failed ones are: "
...@@ -7450,7 +7462,7 @@ msgstr "" ...@@ -7450,7 +7462,7 @@ msgstr ""
"%(failed)s értesítés sikertelen és %(success) sikeres. A sikertelenek: " "%(failed)s értesítés sikertelen és %(success) sikeres. A sikertelenek: "
"%(faileds)s." "%(faileds)s."
#: vm/models/instance.py:825 #: vm/models/instance.py:830
#, python-format #, python-format
msgid "" msgid ""
"%(failed)s notifications failed and %(success) succeeded. Failed ones are: " "%(failed)s notifications failed and %(success) succeeded. Failed ones are: "
...@@ -7459,16 +7471,16 @@ msgstr "" ...@@ -7459,16 +7471,16 @@ msgstr ""
"%(failed)s értesítés sikertelen és %(success) sikeres. A sikertelenek: " "%(failed)s értesítés sikertelen és %(success) sikeres. A sikertelenek: "
"%(faileds_ex)s." "%(faileds_ex)s."
#: vm/models/instance.py:833 #: vm/models/instance.py:838
#, python-format #, python-format
msgid "%(success)s notifications succeeded." msgid "%(success)s notifications succeeded."
msgstr "%(success)s sikeres értesítés." msgstr "%(success)s sikeres értesítés."
#: vm/models/instance.py:838 #: vm/models/instance.py:843
msgid "notify owner about expiration" msgid "notify owner about expiration"
msgstr "tulaj értesítése a lejáratról" msgstr "tulaj értesítése a lejáratról"
#: vm/models/instance.py:846 #: vm/models/instance.py:851
#, python-format #, python-format
msgid "%(instance)s expiring soon" msgid "%(instance)s expiring soon"
msgstr "%(instance)s hamarosan lejár" msgstr "%(instance)s hamarosan lejár"
...@@ -7687,9 +7699,13 @@ msgid "download %(name)s (id: %(disk_id)s)" ...@@ -7687,9 +7699,13 @@ msgid "download %(name)s (id: %(disk_id)s)"
msgstr "%(name)s letöltése (id: %(disk_id)s)" msgstr "%(name)s letöltése (id: %(disk_id)s)"
#: vm/operations.py:347 #: vm/operations.py:347
#, python-format #, fuzzy, python-format
msgid "Downloading %(url)s is finished. The file md5sum is: '%(checksum)s'." #| msgid "Downloading %(url)s is finished. The file md5sum is: '%(checksum)s'."
msgstr "%(url)s letöltése sikeres. A fájl md5sum összege: '%(checksum)s'." msgid ""
"Downloading %(url)s is finished. The file md5sum is: '%(checksum)s' (id: "
"%(disk_id)s)."
msgstr "%(url)s letöltése sikeres. A fájl md5sum összege: '%(checksum)s'(id: "
"%(disk_id)s)."
#: vm/operations.py:358 #: vm/operations.py:358
#, fuzzy #, fuzzy
......
...@@ -86,6 +86,14 @@ class Interface(Model): ...@@ -86,6 +86,14 @@ class Interface(Model):
return self.host.mac return self.host.mac
except: except:
return Interface.generate_mac(self.instance, self.vlan) return Interface.generate_mac(self.instance, self.vlan)
@property
def ipv4(self):
return self.host.ipv4
@property
def ipv6(self):
return self.host.ipv6
@classmethod @classmethod
def generate_mac(cls, instance, vlan): def generate_mac(cls, instance, vlan):
......
...@@ -341,16 +341,17 @@ class DownloadDiskOperation(InstanceOperation): ...@@ -341,16 +341,17 @@ class DownloadDiskOperation(InstanceOperation):
disk.save() disk.save()
self.instance.disks.add(disk) self.instance.disks.add(disk)
activity.readable_name = create_readable( activity.readable_name = create_readable(
ugettext_noop("download %(name)s (id: %(disk_id)s)"), name=disk.name, disk_id=str(disk.id)) ugettext_noop("download %(name)s (id: %(disk_id)d)"), name=disk.name, disk_id=disk.id)
activity.result = create_readable(ugettext_noop( activity.result = create_readable(ugettext_noop(
"Downloading %(url)s is finished. The file md5sum " "Downloading %(url)s is finished. The file md5sum "
"is: '%(checksum)s' (id: %(disk_id)s)."), "is: '%(checksum)s' (id: %(disk_id)d)."),
url=url, checksum=disk.checksum, disk_id=str(disk.id)) url=url, checksum=disk.checksum, disk_id=disk.id, disk_size=disk.size)
activity.result_data['params']['disk_id'] = disk.id
# TODO iso (cd) hot-plug is not supported by kvm/guests # TODO iso (cd) hot-plug is not supported by kvm/guests
if self.instance.is_running and disk.type not in ["iso"]: if self.instance.is_running and disk.type not in ["iso"]:
self.instance._attach_disk(parent_activity=activity, disk=disk) self.instance._attach_disk(parent_activity=activity, disk=disk)
return create_readable(ugettext_noop("Downloading %(url)s is finished. The file md5sum "
"is: '%(checksum)s' (id: %(disk_id)s)."), url=url, checksum=disk.checksum, disk_id=str(disk.id))
@register_operation @register_operation
......
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