Просмотр исходного кода

磁盘页面所属Guest列显示 Guest名称及备注

James Iter 9 лет назад
Родитель
Сommit
95e038be87
2 измененных файлов с 23 добавлено и 1 удалено
  1. 3 1
      templates/disk_show.html
  2. 20 0
      views/disk.py

+ 3 - 1
templates/disk_show.html

@@ -390,7 +390,9 @@
                     <td>{{ format_disk_state(item.state)|safe }}</td>
                     <td>{{ item.size }} GB</td>
                     <td>{{ format_sequence_to_device_name(item.sequence) }}</td>
-                    <td><a href="javascript:;">{{ item.guest_uuid }}</a></td>
+                    <td><a href="/guest/detail/{{ item.guest_uuid }}" {% if 'guest' not in item %}style="display: none"{% endif %}>{% if 'guest' in item %}
+                        {{ item.guest.label }}/{{ item.guest.remark }}
+                    {% endif %}</a></td>
                     <td>{{ format_datetime_by_tus(item.create_time) }}</td>
                     <td>
                         <div class="dropdown inline-block">

+ 20 - 0
views/disk.py

@@ -64,6 +64,26 @@ def show():
     disks_ret = requests.get(url=disks_url)
     disks_ret = json.loads(disks_ret.content)
 
+    guest_uuids = list()
+
+    for disk in disks_ret['data']:
+        if disk['guest_uuid'].__len__() == 36:
+            guest_uuids.append(disk['guest_uuid'])
+
+    if guest_uuids.__len__() > 0:
+        guests_url = host_url + url_for('api_guests.r_get_by_filter')
+        guests_url += '?filter=uuid:in:' + ','.join(guest_uuids)
+        guests_ret = requests.get(url=guests_url)
+        guests_ret = json.loads(guests_ret.content)
+
+        guests_uuid_mapping = dict()
+        for guest in guests_ret['data']:
+            guests_uuid_mapping[guest['uuid']] = guest
+
+        for i, disk in enumerate(disks_ret['data']):
+            if disk['guest_uuid'].__len__() == 36:
+                disks_ret['data'][i]['guest'] = guests_uuid_mapping[disk['guest_uuid']]
+
     last_page = int(ceil(disks_ret['paging']['total'] / float(page_size)))
     page_length = 5
     pages = list()