Commit 324b4ce8 by Karsa Zoltán István

add interface ipv4, mac, ipv6

parent 8179e8f6
......@@ -7,10 +7,15 @@ from firewall.models import Vlan
from storage.models import Disk
class InstanceActivitySerializer(serializers.ModelSerializer):
get_percentage = serializers.IntegerField()
result_data = serializers.JSONField()
class Meta:
model = InstanceActivity
fields = ('id', 'instance', 'resultant_state', 'interruptible', 'activity_code', 'readable_name_data', 'parent',
'task_uuid', 'user', 'started', 'finished', 'succeeded', 'result_data', 'created', 'modified')
fields = ('id', 'instance', 'resultant_state', 'interruptible', 'activity_code', 'parent',
'task_uuid', 'user', 'started', 'finished', 'succeeded', 'result_data', 'created', 'modified', 'get_percentage')
class GroupSerializer(serializers.ModelSerializer):
class Meta:
......@@ -73,9 +78,22 @@ class InstanceSerializer(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:
model = Interface
fields = ['id', 'vlan', 'host', 'instance', 'model']
fields = ['id', 'vlan', 'host', 'instance', 'model', 'host', 'mac', 'ipv4', 'ipv6']
class VlanSerializer(serializers.ModelSerializer):
......@@ -97,6 +115,13 @@ class DownloadDiskSerializer(serializers.Serializer):
url = serializers.CharField(max_length=500)
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):
node = serializers.IntegerField(required=False)
......
......@@ -58,7 +58,7 @@ from .views import (
InterfaceREST, InstanceFromTemplateREST, InstanceFTforUsersREST,
DownloadDiskREST, GetInstanceREST, GetInterfaceREST, ShutdownInstanceREST,
GetLeaseREST, GetDiskRest, DeployInstanceREST, CreateDiskREST,
VlanREST, ResizeDiskREST, GetVlanREST,
VlanREST, ResizeDiskREST, GetVlanREST, DestroyDiskREST,
StorageDetail, DiskDetail, UserREST, GroupREST,
InstanceActivityREST, GetInstanceActivityREST,
MessageList, MessageDetail, MessageCreate, MessageDelete,
......@@ -94,6 +94,7 @@ urlpatterns = [
path('acpi/vm/<int:pk>/deploy/', DeployInstanceREST.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>/destroydisk/', DestroyDiskREST.as_view()),
url(r'^$', IndexView.as_view(), name="dashboard.index"),
url(r"^profile/list/$", UserList.as_view(),
name="dashboard.views.user-list"),
......
......@@ -29,7 +29,6 @@ from sizefield.utils import filesizeformat
from rest_framework.authentication import TokenAuthentication, BasicAuthentication
from rest_framework.permissions import IsAdminUser
from rest_framework.views import APIView
from rest_framework.parsers import JSONParser
from common.models import WorkerNotFound
from storage.models import DataStore, Disk
......@@ -156,14 +155,6 @@ class DiskRest(APIView):
serializer = DiskSerializer(templates, many=True)
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):
authentication_classes = [TokenAuthentication,BasicAuthentication]
......
......@@ -44,7 +44,9 @@ from django.views.generic import (
)
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 (
create_readable, HumanReadableException, fetch_human_exception,
......@@ -98,7 +100,7 @@ from rest_framework.permissions import IsAdminUser
from dashboard.serializers import (
DiskSerializer, InstanceSerializer, InterfaceSerializer, CreateDiskSerializer, DownloadDiskSerializer,
VMDeploySerializer, VlanSerializer, ResizeDiskSerializer, InstanceActivitySerializer
VMDeploySerializer, VlanSerializer, ResizeDiskSerializer, InstanceActivitySerializer, DestroyDiskSerializer,
)
class VlanREST(APIView):
......@@ -223,7 +225,7 @@ class GetInstanceREST(APIView):
instance = Instance.objects.get(pk=pk)
DestroyOperation(instance).call(user=instance.owner)
serializer = InstanceSerializer(instance, many=False)
return JsonResponse(serializer.data, status=401)
return JsonResponse(serializer.data, status=204)
class DeployInstanceREST(APIView):
......@@ -329,14 +331,20 @@ class ResizeDiskREST(APIView):
return JsonResponse(ret.data, status=201)
return JsonResponse(serializer.errors, status=400)
class StateOperationREST(APIView):
class DestroyDiskREST(APIView):
authentication_classes = [TokenAuthentication,BasicAuthentication]
permission_classes = [IsAdminUser]
def post(self, request, pk, format=None):
pass
return JsonResponse(status=400)
def delete(self, request, pk, format=None):
data = JSONParser().parse(request)
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):
......
......@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \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"
"Last-Translator: <>\n"
"Language-Team: Hungarian <cloud@ik.bme.hu>\n"
......@@ -463,7 +463,7 @@ msgstr "Választott nyelv"
#: dashboard/forms.py:1358 dashboard/templates/dashboard/group-list.html:14
#: 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
#: network/templates/network/host-edit.html:32
#: templates/info/help/overview.html:404
......@@ -585,39 +585,39 @@ msgstr ""
msgid "Invalid confirmation code."
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"
msgstr "üzenet"
#: dashboard/models.py:72
#: dashboard/models.py:81
msgid "effect"
msgstr "hatás"
#: dashboard/models.py:73
#: dashboard/models.py:82
msgid "success"
msgstr "siker"
#: dashboard/models.py:73
#: dashboard/models.py:82
msgid "info"
msgstr "infó"
#: dashboard/models.py:74
#: dashboard/models.py:83
msgid "warning"
msgstr "figyelmeztetés"
#: dashboard/models.py:74
#: dashboard/models.py:83
msgid "danger"
msgstr "veszély"
#: dashboard/models.py:75 vm/models/node.py:129
#: dashboard/models.py:84 vm/models/node.py:129
msgid "enabled"
msgstr "engedélyezve"
#: dashboard/models.py:80
#: dashboard/models.py:89
msgid "messages"
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-templates.html:52
#: dashboard/templates/dashboard/index-users.html:48
......@@ -635,23 +635,23 @@ msgstr "üzenetek"
msgid "new"
msgstr "új"
#: dashboard/models.py:97
#: dashboard/models.py:106
msgid "delivered"
msgstr "kézbesített"
#: dashboard/models.py:98
#: dashboard/models.py:107
msgid "read"
msgstr "olvasott"
#: dashboard/models.py:158 vm/models/instance.py:137
#: dashboard/models.py:167 vm/models/instance.py:137
msgid "access method"
msgstr "elérés módja"
#: dashboard/models.py:159
#: dashboard/models.py:168
msgid "Type of the remote access method."
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
#: 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
......@@ -659,15 +659,15 @@ msgstr "Távoli elérési mód típusa."
msgid "name"
msgstr "név"
#: dashboard/models.py:161
#: dashboard/models.py:170
msgid "Name of your custom command."
msgstr "Egyedi parancs neve"
#: dashboard/models.py:163
#: dashboard/models.py:172
msgid "command template"
msgstr "parancssablon"
#: dashboard/models.py:164
#: dashboard/models.py:173
msgid ""
"Template for connection command string. Available parameters are: username, "
"password, host, port."
......@@ -675,79 +675,79 @@ msgstr ""
"Sablon a csatlakozási parancshoz. Elérhető paraméterek: username, password, "
"host, port."
#: dashboard/models.py:179
#: dashboard/models.py:188
msgid "preferred language"
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."
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"
msgstr "Gravatar használata"
#: dashboard/models.py:190
#: dashboard/models.py:199
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"
#: dashboard/models.py:192
#: dashboard/models.py:201
msgid "Email notifications"
msgstr "E-mail értesítések"
#: dashboard/models.py:193
#: dashboard/models.py:202
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."
#: dashboard/models.py:195
#: dashboard/models.py:204
#, fuzzy
#| msgid "Latest modifications"
msgid "Desktop notifications"
msgstr "Legutóbbi változások"
#: dashboard/models.py:196
#: dashboard/models.py:205
msgid ""
"Whether user wants to get desktop notification when an activity has finished "
"and the window is not in focus."
msgstr ""
#: dashboard/models.py:200
#: dashboard/models.py:209
msgid "Samba password"
msgstr "Samba jelszó"
#: dashboard/models.py:202
#: dashboard/models.py:211
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ó."
#: dashboard/models.py:207 dashboard/models.py:306
#: dashboard/models.py:216 dashboard/models.py:315
msgid "disk quota"
msgstr "lemezkvóta"
#: dashboard/models.py:209 dashboard/models.py:308
#: dashboard/models.py:218 dashboard/models.py:317
msgid "Disk quota in mebibytes."
msgstr "Lemezkvóta mebibyte-okban."
#: dashboard/models.py:211
#: dashboard/models.py:220
msgid "two factor secret key"
msgstr ""
#: dashboard/models.py:275
#: dashboard/models.py:284
msgid "Can use autocomplete."
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
msgid "operator"
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:1016 firewall/models.py:1050 vm/models/common.py:87
#: vm/models/instance.py:178 vm/models/instance.py:315
msgid "owner"
msgstr "tulajdonos"
#: dashboard/models.py:301
#: dashboard/models.py:310
msgid "Unique identifier of the group at the organization."
msgstr "A csoport egyedi szervezeti azonosítója."
......@@ -973,11 +973,14 @@ msgstr "alapértelmezett ipv6 cím"
msgid ""
"associated vlans: list of objects (name: vlan name, ipv4/ipv6: host ip in "
"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
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
msgid "function: make random string with 'len' charachters lenght"
......@@ -994,7 +997,9 @@ msgstr "Filterek: hash - sha512 hash"
#: dashboard/templates/dashboard/_ci-data-help.html:27
msgid ""
"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
msgid ""
......@@ -1989,7 +1994,7 @@ msgstr "meghiúsult"
#: dashboard/templates/dashboard/instanceactivity_detail.html:78
#: dashboard/templates/dashboard/nodeactivity_detail.html:74
#: dashboard/views/storage.py:59
#: dashboard/views/storage.py:66
msgid "none"
msgstr "nincs"
......@@ -2251,43 +2256,43 @@ msgstr "Keresztnév"
msgid "Last name"
msgstr "Vezetéknév"
#: dashboard/templates/dashboard/profile.html:45
#: dashboard/templates/dashboard/profile.html:53
msgid "Last login"
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"
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?"
msgstr "Mi az a Gravatar?"
#: dashboard/templates/dashboard/profile.html:53
#: dashboard/templates/dashboard/profile.html:61
msgid "Change my preferences"
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."
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"
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."
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"
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."
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"
msgstr "Felhasználó szerkesztése"
......@@ -2582,7 +2587,7 @@ msgid "Currently uploading to"
msgstr "Feltöltés helye:"
#: 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
msgid "template"
msgstr "sablon"
......@@ -3308,72 +3313,72 @@ msgstr "CPU-használat (%)"
msgid "Allocated memory (bytes)"
msgstr "Foglalt memória (byte)"
#: dashboard/views/group.py:160
#: dashboard/views/group.py:185
#, python-format
msgid "User \"%s\" not found."
msgstr "Nem található „%s” felhasználó."
#: dashboard/views/group.py:174
#: dashboard/views/group.py:199
msgid "Group successfully renamed."
msgstr "A csoport átnevezésre került."
#: dashboard/views/group.py:242
#: dashboard/views/group.py:267
msgid "Member successfully removed from group."
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."
msgstr "A leendő csoporttag eltávolításra került."
#: dashboard/views/group.py:301
#: dashboard/views/group.py:326
#, fuzzy
#| msgid "Future user successfully removed from group."
msgid "All users successfully removed from group."
msgstr "A leendő csoporttag eltávolításra került."
#: dashboard/views/group.py:310
#: dashboard/views/group.py:335
#, fuzzy
#| msgid "user"
msgid "all users"
msgstr "felhasználó"
#: dashboard/views/group.py:325
#: dashboard/views/group.py:350
msgid "Group successfully deleted."
msgstr "A csoport törlésre került."
#: dashboard/views/group.py:353
#: dashboard/views/group.py:378
msgid "Create a Group"
msgstr "Csoport létrehozása"
#: dashboard/views/group.py:369
#: dashboard/views/group.py:394
msgid "Group successfully created."
msgstr "A csoport létrehozásra került."
#: dashboard/views/group.py:403
#: dashboard/views/group.py:428
#, fuzzy
#| msgid "Create a Group"
msgid "Import a Group"
msgstr "Csoport létrehozása"
#: dashboard/views/group.py:426
#: dashboard/views/group.py:451
#, fuzzy
#| msgid "Group successfully created."
msgid "Group successfully imported."
msgstr "A csoport létrehozásra került."
#: dashboard/views/group.py:473
#: dashboard/views/group.py:498
#, fuzzy
#| msgid "host group"
msgid "Export Group"
msgstr "gépcsoport"
#: dashboard/views/group.py:499
#: dashboard/views/group.py:524
#, fuzzy
#| msgid "Group successfully deleted."
msgid "Group successfully exported."
msgstr "A csoport törlésre került."
#: dashboard/views/group.py:520
#: dashboard/views/group.py:545
msgid "Group is successfully updated."
msgstr "A csoport frissítésre került."
......@@ -3385,37 +3390,37 @@ msgstr "Az üzenet frissítésre került."
msgid "New broadcast message successfully created."
msgstr "Az üzenet létrehozása került."
#: dashboard/views/node.py:152
#: dashboard/views/node.py:187
msgid "Node successfully renamed."
msgstr "A csomópont átnevezésre került."
#: dashboard/views/node.py:261
#: dashboard/views/node.py:296
msgid "Create a node"
msgstr "Új csomópont hozzáadása"
#: dashboard/views/node.py:285
#: dashboard/views/node.py:320
msgid "Node successfully created."
msgstr "A csomópont létrehozásra került."
#: dashboard/views/node.py:296
#: dashboard/views/node.py:331
msgid "Node successfully deleted."
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."
msgstr "A csomópontjellemző hozzáadásra került."
#: dashboard/views/node.py:392
#: dashboard/views/node.py:427
#, fuzzy
#| msgid "schedule enabled"
msgid "Reschedule has started."
msgstr "ütemezés engedélyezve"
#: dashboard/views/storage.py:51
#: dashboard/views/storage.py:58
msgid "The DataStore is offline."
msgstr "Az adattár nem elérhető."
#: dashboard/views/storage.py:57
#: dashboard/views/storage.py:64
msgid "virtual machine"
msgstr "virtuális gép"
......@@ -3448,39 +3453,39 @@ msgstr "%s törlése sikertelen."
msgid "Unable to create folder."
msgstr "Mappa létrehozása sikertelen."
#: dashboard/views/template.py:87
#: dashboard/views/template.py:96
msgid "Choose template"
msgstr "Válasszon sablont"
#: dashboard/views/template.py:102
#: dashboard/views/template.py:111
msgid "Select an option to proceed."
msgstr "Válasszon a folytatáshoz."
#: dashboard/views/template.py:133
#: dashboard/views/template.py:142
msgid "Create a new base VM"
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."
msgstr "A szűrés sikertelen."
#: dashboard/views/template.py:303
#: dashboard/views/template.py:433
msgid "Template successfully deleted."
msgstr "A sablon törlésre került."
#: dashboard/views/template.py:319
#: dashboard/views/template.py:449
msgid "Successfully modified template."
msgstr "A sablon módosításra került."
#: dashboard/views/template.py:378
#: dashboard/views/template.py:508
msgid "Disk successfully removed."
msgstr "A lemez eltávolításra került."
#: dashboard/views/template.py:394
#: dashboard/views/template.py:524
msgid "Disk remove confirmation"
msgstr "Lemez törlésének megerősítése"
#: dashboard/views/template.py:395
#: dashboard/views/template.py:525
#, python-format
msgid ""
"Are you sure you want to remove <strong>%(disk)s</strong> from <strong>"
......@@ -3489,23 +3494,23 @@ msgstr ""
"Biztosan eltávolítja a(z) <strong>%(disk)s</strong> lemezt a következőből: "
"%(app)s?"
#: dashboard/views/template.py:418
#: dashboard/views/template.py:548
msgid "Successfully created a new lease."
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."
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."
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."
msgstr "A bérlési mód törlésre került."
#: dashboard/views/template.py:475
#: dashboard/views/template.py:605
msgid ""
"You can't delete this lease because some templates are still using it, "
"modify these to proceed: "
......@@ -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 "
"folytatáshoz módosítsa őket: "
#: dashboard/views/template.py:500
#: dashboard/views/template.py:630
#, python-format
msgid ""
"%(owner)s offered you to take the ownership of his/her template called "
......@@ -3523,251 +3528,257 @@ msgstr ""
"%(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>"
#: dashboard/views/user.py:73
#: dashboard/views/user.py:96
msgid ""
"You've logged in with an administrator account, your session will expire "
"when the web browser is closed."
msgstr ""
#: dashboard/views/user.py:178
#: dashboard/views/user.py:201
#, python-format
msgid "Logged in as user %s."
msgstr "Bejelentkezve mint %s."
#: dashboard/views/user.py:211
#: dashboard/views/user.py:234
msgid "You don't have a profile."
msgstr "Nincs profilja."
#: dashboard/views/user.py:229
#: dashboard/views/user.py:252
#, fuzzy
#| msgid "Node successfully changed status."
msgid "Password successfully changed."
msgstr "A csomópont állapota megváltoztatásra került."
#: dashboard/views/user.py:251
#: dashboard/views/user.py:274
msgid "Successfully modified subscription."
msgstr "A feliratkozás módosításra került."
#: dashboard/views/user.py:314
#: dashboard/views/user.py:337
msgid "Create a User"
msgstr "Felhasználó létrehozása"
#: dashboard/views/user.py:345
#: dashboard/views/user.py:368
msgid "Successfully modified user."
msgstr "A felhasználó megváltoztatásra került."
#: dashboard/views/user.py:437
#: dashboard/views/user.py:462
msgid "Successfully modified SSH key."
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."
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."
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."
msgstr "A parancssablon módosításra került."
#: dashboard/views/user.py:514
#: dashboard/views/user.py:539
msgid "Command template successfully deleted."
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."
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."
msgstr ""
#: dashboard/views/util.py:321
#: dashboard/views/util.py:350
msgid "Could not start operation."
msgstr "A művelet megkezdése meghiúsult."
#: dashboard/views/util.py:338
#: dashboard/views/util.py:367
msgid "Operation failed."
msgstr "A művelet meghiúsult."
#: dashboard/views/util.py:343
#: dashboard/views/util.py:372
msgid "Operation succeeded."
msgstr "A művelet sikeresen végrehajtásra került."
#: dashboard/views/util.py:345
#: dashboard/views/util.py:374
msgid "Operation is started."
msgstr "A művelet megkezdődött."
#: dashboard/views/util.py:433
#: dashboard/views/util.py:462
#, python-format
msgid "Acl user/group %(w)s successfully modified."
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
msgid "Acl user/group %(w)s successfully added."
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
msgid "Acl user/group %(w)s successfully removed."
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 ""
"The original owner cannot be removed, however you can transfer ownership."
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
msgid "User \"%s\" has already access to this object."
msgstr "„%s” felhasználó már hozzáfér az objektumhoz."
#: dashboard/views/util.py:567
#: dashboard/views/util.py:596
#, python-format
msgid "Group \"%s\" has already access to this object."
msgstr "„%s” csoport már hozzáfér az objektumhoz."
#: dashboard/views/util.py:572
#: dashboard/views/util.py:601
#, python-format
msgid "User or group \"%s\" not found."
msgstr "Nem található „%s” felhasználó vagy csoport."
#: dashboard/views/util.py:588
#: dashboard/views/util.py:617
msgid "1 hour"
msgstr "1 óra"
#: dashboard/views/util.py:589
#: dashboard/views/util.py:618
msgid "6 hours"
msgstr "6 óra"
#: dashboard/views/util.py:590
#: dashboard/views/util.py:619
msgid "1 day"
msgstr "1 nap"
#: dashboard/views/util.py:591
#: dashboard/views/util.py:620
msgid "1 week"
msgstr "1 hét"
#: dashboard/views/util.py:592
#: dashboard/views/util.py:621
msgid "1 month"
msgstr "1 hónap"
#: dashboard/views/util.py:593
#: dashboard/views/util.py:622
msgid "6 months"
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."
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"
msgstr "Tulajdon átruházása"
#: dashboard/views/util.py:640
#: dashboard/views/util.py:669
msgid "Can not find specified user."
msgstr "Nem található a megadott felhasználó."
#: dashboard/views/util.py:656
#: dashboard/views/util.py:685
msgid "Ownership offer"
msgstr "Átruházási ajánlat"
#: dashboard/views/util.py:660
#: dashboard/views/util.py:689
msgid "Can not notify selected user."
msgstr "A kiválaszott felhasználó értesítése sikertelen."
#: dashboard/views/util.py:663
#: dashboard/views/util.py:692
#, python-format
msgid "User %s is notified about the offer."
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."
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."
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."
msgstr "A token érvénytelen vagy lejárt."
#: dashboard/views/util.py:711
#: dashboard/views/util.py:740
msgid "Ownership accepted"
msgstr "Átruházás elfogadva"
#: dashboard/views/util.py:712
#: dashboard/views/util.py:741
#, python-format
msgid "Your ownership offer of %(instance)s has been accepted by %(owner)s."
msgstr "%(instance)s gépre vonatkozó átruházási ajánlatát elfogadta %(owner)s."
#: dashboard/views/util.py:761
#: dashboard/views/util.py:790
msgid "Only the owners can delete the selected object."
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"
msgstr "konzolhozzáférés"
#: dashboard/views/vm.py:235
#: dashboard/views/vm.py:488
msgid "VM description successfully updated."
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."
msgstr "A token lejárt."
#: dashboard/views/vm.py:787
#: dashboard/views/vm.py:1040
msgid "VM successfully renamed."
msgstr "A virtuális gép átnevezésre került."
#: dashboard/views/vm.py:916
#: dashboard/views/vm.py:1169
#, python-format
msgid "Failed to execute %(op)s operation on instance %(instance)s."
msgstr "%(op)s végrehajtása meghiúsult a következőn: %(instance)s."
#: dashboard/views/vm.py:932
#: dashboard/views/vm.py:1185
#, python-format
msgid "You are not permitted to execute %(op)s on instance %(instance)s."
msgstr "Nem engedélyezett a(z) %(op)s végrehajtása a(z) %(instance)s gépen."
#: dashboard/views/vm.py:1131
#: dashboard/views/vm.py:1384
msgid "Customize VM"
msgstr "VM testreszabása"
#: dashboard/views/vm.py:1139
#: dashboard/views/vm.py:1392
msgid "Create a VM"
msgstr "VM létrehozása"
#: dashboard/views/vm.py:1196
#: dashboard/views/vm.py:1449
#, python-format
msgid "Successfully created %(count)d VM."
msgid_plural "Successfully created %(count)d VMs."
msgstr[0] "%(count)d VM létrehozásra került."
msgstr[1] "%(count)d VM létrehozásra került."
#: dashboard/views/vm.py:1201
#: dashboard/views/vm.py:1454
msgid "VM successfully created."
msgstr "VM létrehozásra került."
#: dashboard/views/vm.py:1263
#: dashboard/views/vm.py:1516
#, python-format
msgid "Instance limit (%d) exceeded."
msgstr "A példányok létrehozási korlátját (%d) túllépte."
#: dashboard/views/vm.py:1326
#: dashboard/views/vm.py:1579
msgid "About CIRCLE Client"
msgstr "A CIRCLE kliensről"
#: dashboard/views/vm.py:1417
#: dashboard/views/vm.py:1670
msgid "transfer ownership"
msgstr "tulajdon átruházása"
#: dashboard/views/vm.py:1427
#: dashboard/views/vm.py:1680
#, python-format
msgid ""
"%(owner)s offered you to take the ownership of his/her virtual machine "
......@@ -7203,7 +7214,8 @@ msgstr "Használjon cloud-init-et"
#: vm/models/instance.py:148
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
msgid "CI Meta Data"
......@@ -7418,18 +7430,18 @@ msgstr ""
msgid "create instance"
msgstr "példány létrehozása"
#: vm/models/instance.py:609
#: vm/models/instance.py:614
#, python-format
msgid "vm state changed to %(state)s on %(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
#| msgid "vm state changed to %(state)s on %(node)s"
msgid "vm state changed to %(state)s"
msgstr "VM állapota erre változott: %(state)s (ezen: %(node)s)"
#: vm/models/instance.py:811
#: vm/models/instance.py:816
#, python-format
msgid ""
"Your instance <a href=\"%(url)s\">%(instance)s</a> is going to expire. It "
......@@ -7441,7 +7453,7 @@ msgstr ""
"kerül. Kérjük, <a href=\"%(token)s\">újítsa meg</a> vagy <a href=\"%(url)s"
"\">törölje</a> most."
#: vm/models/instance.py:823
#: vm/models/instance.py:828
#, python-format
msgid ""
"%(failed)s notifications failed and %(success) succeeded. Failed ones are: "
......@@ -7450,7 +7462,7 @@ msgstr ""
"%(failed)s értesítés sikertelen és %(success) sikeres. A sikertelenek: "
"%(faileds)s."
#: vm/models/instance.py:825
#: vm/models/instance.py:830
#, python-format
msgid ""
"%(failed)s notifications failed and %(success) succeeded. Failed ones are: "
......@@ -7459,16 +7471,16 @@ msgstr ""
"%(failed)s értesítés sikertelen és %(success) sikeres. A sikertelenek: "
"%(faileds_ex)s."
#: vm/models/instance.py:833
#: vm/models/instance.py:838
#, python-format
msgid "%(success)s notifications succeeded."
msgstr "%(success)s sikeres értesítés."
#: vm/models/instance.py:838
#: vm/models/instance.py:843
msgid "notify owner about expiration"
msgstr "tulaj értesítése a lejáratról"
#: vm/models/instance.py:846
#: vm/models/instance.py:851
#, python-format
msgid "%(instance)s expiring soon"
msgstr "%(instance)s hamarosan lejár"
......@@ -7687,9 +7699,13 @@ msgid "download %(name)s (id: %(disk_id)s)"
msgstr "%(name)s letöltése (id: %(disk_id)s)"
#: vm/operations.py:347
#, python-format
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'."
#, 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' (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
#, fuzzy
......
......@@ -86,6 +86,14 @@ class Interface(Model):
return self.host.mac
except:
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
def generate_mac(cls, instance, vlan):
......
......@@ -341,16 +341,17 @@ class DownloadDiskOperation(InstanceOperation):
disk.save()
self.instance.disks.add(disk)
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(
"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))
activity.result_data['params']['disk_id'] = disk.id
"is: '%(checksum)s' (id: %(disk_id)d)."),
url=url, checksum=disk.checksum, disk_id=disk.id, disk_size=disk.size)
# TODO iso (cd) hot-plug is not supported by kvm/guests
if self.instance.is_running and disk.type not in ["iso"]:
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
......
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