bfg-common 1.5.517 → 1.5.519

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/assets/localization/local_be.json +2 -1
  2. package/assets/localization/local_en.json +2 -1
  3. package/assets/localization/local_hy.json +2 -1
  4. package/assets/localization/local_kk.json +2 -1
  5. package/assets/localization/local_ru.json +2 -1
  6. package/assets/localization/local_zh.json +2 -1
  7. package/components/atoms/sortableView/SortableView.vue +2 -2
  8. package/components/common/monitor/overview/OverviewNew.vue +3 -0
  9. package/components/common/monitor/overview/filters/Filters.vue +4 -1
  10. package/components/common/monitor/overview/filters/lib/config/filterOptions.ts +7 -1
  11. package/components/common/pages/backups/modals/createBackup/CreateBackup.vue +195 -195
  12. package/components/common/pages/backups/modals/createBackup/New.vue +267 -267
  13. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  14. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +29 -29
  15. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +69 -69
  16. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  17. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +38 -38
  18. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +34 -34
  19. package/components/common/pages/backups/modals/createBackup/datastores/tableView/old/TableView.vue +95 -95
  20. package/components/common/pages/backups/modals/createBackup/datastores/tableView/old/lib/config/keys.ts +14 -14
  21. package/components/common/pages/backups/modals/createBackup/datastores/tableView/old/lib/config/table.ts +127 -127
  22. package/components/common/pages/backups/modals/createBackup/datastores/tableView/old/lib/models/types.ts +10 -10
  23. package/components/common/pages/backups/modals/createBackup/disks/Disks.vue +34 -34
  24. package/components/common/pages/backups/modals/createBackup/disks/tableView/old/TableView.vue +119 -119
  25. package/components/common/pages/backups/modals/createBackup/disks/tableView/old/lib/config/keys.ts +12 -12
  26. package/components/common/pages/backups/modals/createBackup/disks/tableView/old/lib/config/table.ts +125 -125
  27. package/components/common/pages/backups/modals/createBackup/disks/tableView/old/lib/models/types.ts +10 -10
  28. package/components/common/pages/backups/modals/createBackup/general/General.vue +33 -33
  29. package/components/common/pages/backups/modals/createBackup/lib/config/steps.ts +123 -123
  30. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +13 -13
  31. package/components/common/pages/backups/modals/createBackup/lib/models/interfaces.ts +8 -8
  32. package/components/common/wizards/datastore/add/steps/hostAccessibility/table/new/lib/config/compatibleTable.ts +5 -4
  33. package/package.json +1 -1
@@ -1,127 +1,127 @@
1
- import type { UI_I_Localization } from '~/lib/models/interfaces'
2
- import type {
3
- UI_I_HeadItem,
4
- UI_I_ColumnKey,
5
- UI_I_BodyItem,
6
- } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
7
- import type { UI_I_BackupDatastore } from '~/components/common/pages/backups/modals/lib/models/interfaces'
8
- import {
9
- constructHeadItem,
10
- constructColumnKey,
11
- } from '~/components/atoms/table/dataGrid/lib/utils/constructDataTable'
12
- import { datastoreLocalizationByState } from '~/components/common/lib/config/states'
13
- import { tableKeys } from '~/components/common/pages/backups/modals/createBackup/datastores/tableView/old/lib/config/keys'
14
-
15
- const getItems = (
16
- localization: UI_I_Localization
17
- ): [string, boolean, string, string][] => {
18
- return [
19
- [localization.common.name, true, '180px', tableKeys[0]],
20
- [localization.inventorySummary.state, true, '180px', tableKeys[1]],
21
- [localization.common.capacity, true, '180px', tableKeys[2]],
22
- [localization.common.provisioned, true, '180px', tableKeys[3]],
23
- [localization.common.free, true, '180px', tableKeys[4]],
24
- [localization.common.used, true, '180px', tableKeys[5]],
25
- [localization.common.type, true, '180px', tableKeys[6]],
26
- [localization.common.location, true, '180px', tableKeys[7]],
27
- ]
28
- }
29
- export const columnKeys = (
30
- localization: UI_I_Localization
31
- ): UI_I_ColumnKey[] => {
32
- const result: UI_I_ColumnKey[] = []
33
- getItems(localization).forEach((item, i) => {
34
- result.push(
35
- constructColumnKey(`col${i}`, item[0], item[1], `show-column-${item[3]}`)
36
- )
37
- })
38
- return result
39
- }
40
- export const headItems = (localization: UI_I_Localization): UI_I_HeadItem[] => {
41
- const result: UI_I_HeadItem[] = []
42
- getItems(localization).forEach((item, i) => {
43
- result.push(
44
- constructHeadItem(
45
- `col${i}`,
46
- item[0],
47
- item[3],
48
- true,
49
- item[2],
50
- undefined,
51
- item[3]
52
- )
53
- )
54
- })
55
- return result
56
- }
57
-
58
- export const bodyItems = (
59
- data: UI_I_BackupDatastore[],
60
- localization: UI_I_Localization
61
- ): UI_I_BodyItem[][] => {
62
- const { $binary }: any = useNuxtApp()
63
- const lang = useLocalStorage('lang') === 'ru_RU' ? 'ru' : 'en'
64
-
65
- const bodyItems: UI_I_BodyItem[][] = []
66
- data.forEach((datastore: UI_I_BackupDatastore) => {
67
- // ??
68
- const state =
69
- localization.common[datastoreLocalizationByState[datastore[tableKeys[1]]]]
70
-
71
- bodyItems.push([
72
- {
73
- key: 'col0',
74
- text: datastore[tableKeys[0]],
75
- id: datastore.id,
76
- testId: `backup-datastore-table-item-${datastore.id}`,
77
- },
78
- {
79
- key: 'col1',
80
- text: state,
81
- id: datastore.id,
82
- testId: `backup-datastore-table-item-${datastore.id}`,
83
- },
84
- {
85
- key: 'col2',
86
- text: $binary.round(datastore.capacity[tableKeys[2]], false, lang),
87
- id: datastore.id,
88
- testId: `backup-datastore-table-item-${datastore.id}`,
89
- },
90
- {
91
- key: 'col3',
92
- text: $binary.round(
93
- datastore.capacity[tableKeys[3]],
94
- false,
95
- lang
96
- ),
97
- id: datastore.id,
98
- testId: `backup-datastore-table-item-${datastore.id}`,
99
- },
100
- {
101
- key: 'col4',
102
- text: $binary.round(datastore.capacity[tableKeys[4]], false, lang),
103
- id: datastore.id,
104
- testId: `backup-datastore-table-item-${datastore.id}`,
105
- },
106
- {
107
- key: 'col5',
108
- text: $binary.round(datastore.capacity[tableKeys[5]], false, lang),
109
- id: datastore.id,
110
- testId: `backup-datastore-table-item-${datastore.id}`,
111
- },
112
- {
113
- key: 'col6',
114
- text: datastore[tableKeys[6]],
115
- id: datastore.id,
116
- testId: `backup-datastore-table-item-${datastore.id}`,
117
- },
118
- {
119
- key: 'col7',
120
- text: datastore[tableKeys[7]],
121
- id: datastore.id,
122
- testId: `backup-datastore-table-item-${datastore.id}`,
123
- },
124
- ])
125
- })
126
- return bodyItems
127
- }
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import type {
3
+ UI_I_HeadItem,
4
+ UI_I_ColumnKey,
5
+ UI_I_BodyItem,
6
+ } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
7
+ import type { UI_I_BackupDatastore } from '~/components/common/pages/backups/modals/lib/models/interfaces'
8
+ import {
9
+ constructHeadItem,
10
+ constructColumnKey,
11
+ } from '~/components/atoms/table/dataGrid/lib/utils/constructDataTable'
12
+ import { datastoreLocalizationByState } from '~/components/common/lib/config/states'
13
+ import { tableKeys } from '~/components/common/pages/backups/modals/createBackup/datastores/tableView/old/lib/config/keys'
14
+
15
+ const getItems = (
16
+ localization: UI_I_Localization
17
+ ): [string, boolean, string, string][] => {
18
+ return [
19
+ [localization.common.name, true, '180px', tableKeys[0]],
20
+ [localization.inventorySummary.state, true, '180px', tableKeys[1]],
21
+ [localization.common.capacity, true, '180px', tableKeys[2]],
22
+ [localization.common.provisioned, true, '180px', tableKeys[3]],
23
+ [localization.common.free, true, '180px', tableKeys[4]],
24
+ [localization.common.used, true, '180px', tableKeys[5]],
25
+ [localization.common.type, true, '180px', tableKeys[6]],
26
+ [localization.common.location, true, '180px', tableKeys[7]],
27
+ ]
28
+ }
29
+ export const columnKeys = (
30
+ localization: UI_I_Localization
31
+ ): UI_I_ColumnKey[] => {
32
+ const result: UI_I_ColumnKey[] = []
33
+ getItems(localization).forEach((item, i) => {
34
+ result.push(
35
+ constructColumnKey(`col${i}`, item[0], item[1], `show-column-${item[3]}`)
36
+ )
37
+ })
38
+ return result
39
+ }
40
+ export const headItems = (localization: UI_I_Localization): UI_I_HeadItem[] => {
41
+ const result: UI_I_HeadItem[] = []
42
+ getItems(localization).forEach((item, i) => {
43
+ result.push(
44
+ constructHeadItem(
45
+ `col${i}`,
46
+ item[0],
47
+ item[3],
48
+ true,
49
+ item[2],
50
+ undefined,
51
+ item[3]
52
+ )
53
+ )
54
+ })
55
+ return result
56
+ }
57
+
58
+ export const bodyItems = (
59
+ data: UI_I_BackupDatastore[],
60
+ localization: UI_I_Localization
61
+ ): UI_I_BodyItem[][] => {
62
+ const { $binary }: any = useNuxtApp()
63
+ const lang = useLocalStorage('lang') === 'ru_RU' ? 'ru' : 'en'
64
+
65
+ const bodyItems: UI_I_BodyItem[][] = []
66
+ data.forEach((datastore: UI_I_BackupDatastore) => {
67
+ // ??
68
+ const state =
69
+ localization.common[datastoreLocalizationByState[datastore[tableKeys[1]]]]
70
+
71
+ bodyItems.push([
72
+ {
73
+ key: 'col0',
74
+ text: datastore[tableKeys[0]],
75
+ id: datastore.id,
76
+ testId: `backup-datastore-table-item-${datastore.id}`,
77
+ },
78
+ {
79
+ key: 'col1',
80
+ text: state,
81
+ id: datastore.id,
82
+ testId: `backup-datastore-table-item-${datastore.id}`,
83
+ },
84
+ {
85
+ key: 'col2',
86
+ text: $binary.round(datastore.capacity[tableKeys[2]], false, lang),
87
+ id: datastore.id,
88
+ testId: `backup-datastore-table-item-${datastore.id}`,
89
+ },
90
+ {
91
+ key: 'col3',
92
+ text: $binary.round(
93
+ datastore.capacity[tableKeys[3]],
94
+ false,
95
+ lang
96
+ ),
97
+ id: datastore.id,
98
+ testId: `backup-datastore-table-item-${datastore.id}`,
99
+ },
100
+ {
101
+ key: 'col4',
102
+ text: $binary.round(datastore.capacity[tableKeys[4]], false, lang),
103
+ id: datastore.id,
104
+ testId: `backup-datastore-table-item-${datastore.id}`,
105
+ },
106
+ {
107
+ key: 'col5',
108
+ text: $binary.round(datastore.capacity[tableKeys[5]], false, lang),
109
+ id: datastore.id,
110
+ testId: `backup-datastore-table-item-${datastore.id}`,
111
+ },
112
+ {
113
+ key: 'col6',
114
+ text: datastore[tableKeys[6]],
115
+ id: datastore.id,
116
+ testId: `backup-datastore-table-item-${datastore.id}`,
117
+ },
118
+ {
119
+ key: 'col7',
120
+ text: datastore[tableKeys[7]],
121
+ id: datastore.id,
122
+ testId: `backup-datastore-table-item-${datastore.id}`,
123
+ },
124
+ ])
125
+ })
126
+ return bodyItems
127
+ }
@@ -1,10 +1,10 @@
1
- export type UI_T_DatastoreTableKeysTuple = [
2
- 'name',
3
- 'state',
4
- 'capacity_mb',
5
- 'provisioned_mb',
6
- 'free_mb',
7
- 'used_mb',
8
- 'type_text',
9
- 'location'
10
- ]
1
+ export type UI_T_DatastoreTableKeysTuple = [
2
+ 'name',
3
+ 'state',
4
+ 'capacity_mb',
5
+ 'provisioned_mb',
6
+ 'free_mb',
7
+ 'used_mb',
8
+ 'type_text',
9
+ 'location'
10
+ ]
@@ -1,34 +1,34 @@
1
- <template>
2
- <common-pages-backups-modals-create-backup-disks-old
3
- v-if="!isNewView"
4
- v-model="model"
5
- :disks="props.disks"
6
- :disks-loading="props.disksLoading"
7
- />
8
- <common-pages-backups-modals-create-backup-disks-new
9
- v-else
10
- v-model="model"
11
- :disks="props.disks"
12
- :disks-loading="props.disksLoading"
13
- />
14
- </template>
15
-
16
- <script lang="ts" setup>
17
- import type {
18
- UI_I_CreateBackupForm,
19
- UI_I_Pvm
20
- } from "~/components/common/pages/backups/modals/lib/models/interfaces";
21
-
22
- const model = defineModel<UI_I_CreateBackupForm>({ required: true })
23
-
24
- const props = defineProps<{
25
- disks: UI_I_Pvm['disk_devices']
26
- disksLoading: boolean
27
- }>()
28
-
29
- const { $store }: any = useNuxtApp()
30
-
31
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
32
- </script>
33
-
34
- <style lang="scss" scoped></style>
1
+ <template>
2
+ <common-pages-backups-modals-create-backup-disks-old
3
+ v-if="!isNewView"
4
+ v-model="model"
5
+ :disks="props.disks"
6
+ :disks-loading="props.disksLoading"
7
+ />
8
+ <common-pages-backups-modals-create-backup-disks-new
9
+ v-else
10
+ v-model="model"
11
+ :disks="props.disks"
12
+ :disks-loading="props.disksLoading"
13
+ />
14
+ </template>
15
+
16
+ <script lang="ts" setup>
17
+ import type {
18
+ UI_I_CreateBackupForm,
19
+ UI_I_Pvm
20
+ } from "~/components/common/pages/backups/modals/lib/models/interfaces";
21
+
22
+ const model = defineModel<UI_I_CreateBackupForm>({ required: true })
23
+
24
+ const props = defineProps<{
25
+ disks: UI_I_Pvm['disk_devices']
26
+ disksLoading: boolean
27
+ }>()
28
+
29
+ const { $store }: any = useNuxtApp()
30
+
31
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
32
+ </script>
33
+
34
+ <style lang="scss" scoped></style>
@@ -1,119 +1,119 @@
1
- <template>
2
- <div class="data-table-view overflow-hidden">
3
- <div class="data-table-view__inner">
4
- <atoms-table-data-grid
5
- v-model:selected-row="selectedRowsLocal"
6
- v-model:column-keys="columnKeys"
7
- v-model:page-size="pagination.pageSize"
8
- v-model:page="pagination.page"
9
- class="data-table"
10
- type="checkbox"
11
- test-id="disks-table"
12
- :head-items="headItems"
13
- :body-items="bodyItems"
14
- :total-items="props.totalItems"
15
- :total-pages="props.totalPages"
16
- :items-per-page="itemsPerPage"
17
- :loading="loading"
18
- hide-pagination
19
- server-off
20
- />
21
- </div>
22
- </div>
23
- </template>
24
-
25
- <script lang="ts" setup>
26
- import type {UI_I_Pagination} from "~/lib/models/table/interfaces";
27
- import type {
28
- UI_I_HeadItem,
29
- UI_I_ColumnKey,
30
- UI_I_BodyItem,
31
- } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
32
- import type { UI_I_Localization } from '~/lib/models/interfaces'
33
- import type {
34
- UI_I_CreateBackupFormDiskDevice,
35
- UI_I_Pvm
36
- } from "~/components/common/pages/backups/modals/lib/models/interfaces";
37
- import { itemsPerPage } from '~/components/atoms/table/dataGrid/lib/config/itemsPerPage'
38
- import * as table from '~/components/common/pages/backups/modals/createBackup/disks/tableView/old/lib/config/table'
39
-
40
- const props = defineProps<{
41
- dataTable: UI_I_Pvm['disk_devices']
42
- loading: boolean
43
- totalItems: number
44
- totalPages: number
45
- }>()
46
- const localization = computed<UI_I_Localization>(() => useLocal())
47
-
48
- const selectedRows = defineModel<UI_I_CreateBackupFormDiskDevice[]>('selected', { required: true })
49
-
50
- const pagination = ref<UI_I_Pagination>({
51
- page: 1,
52
- pageSize: 100,
53
- })
54
-
55
- const selectedRowsLocal = ref<string[]>(
56
- selectedRows.value?.map((item) => item.location) || []
57
- )
58
- watch(
59
- selectedRowsLocal,
60
- (newValue) => {
61
- const selected: UI_I_CreateBackupFormDiskDevice[] = []
62
- bodyItems.value.forEach((row) => {
63
- if (newValue.includes(row[0].id + '')) {
64
- selected.push(row[0].data)
65
- }
66
- })
67
- selectedRows.value = selected
68
- },
69
- { deep: true }
70
- )
71
-
72
- const columnKeys = ref<UI_I_ColumnKey[]>(table.columnKeys(localization.value))
73
-
74
- const headItems = computed<UI_I_HeadItem[]>(() =>
75
- table.headItems(localization.value)
76
- )
77
-
78
- const bodyItems = computed<UI_I_BodyItem[][]>(() => {
79
- let result: UI_I_BodyItem[][] = []
80
- if (props.dataTable.length) {
81
- result = table.bodyItems(props.dataTable)
82
- }
83
-
84
- return result
85
- })
86
-
87
- // ToDo проверить почему опусташает selectedRows
88
-
89
- // watch(
90
- // bodyItems,
91
- // () => {
92
- // setTimeout(() => {
93
- // selectedRows.value = []
94
- // }, 0)
95
- // },
96
- // { deep: true, immediate: true }
97
- // )
98
- </script>
99
-
100
- <style lang="scss" scoped>
101
- .data-table-view {
102
- height: inherit;
103
- margin-bottom: 10px;
104
- margin-right: 10px;
105
-
106
- &__inner {
107
- height: inherit;
108
- }
109
- :deep(.data-table) {
110
- height: inherit;
111
- .datagrid-outer-wrapper {
112
- height: inherit;
113
- }
114
- }
115
- }
116
- .vm-icon {
117
- margin-right: 5px;
118
- }
119
- </style>
1
+ <template>
2
+ <div class="data-table-view overflow-hidden">
3
+ <div class="data-table-view__inner">
4
+ <atoms-table-data-grid
5
+ v-model:selected-row="selectedRowsLocal"
6
+ v-model:column-keys="columnKeys"
7
+ v-model:page-size="pagination.pageSize"
8
+ v-model:page="pagination.page"
9
+ class="data-table"
10
+ type="checkbox"
11
+ test-id="disks-table"
12
+ :head-items="headItems"
13
+ :body-items="bodyItems"
14
+ :total-items="props.totalItems"
15
+ :total-pages="props.totalPages"
16
+ :items-per-page="itemsPerPage"
17
+ :loading="loading"
18
+ hide-pagination
19
+ server-off
20
+ />
21
+ </div>
22
+ </div>
23
+ </template>
24
+
25
+ <script lang="ts" setup>
26
+ import type {UI_I_Pagination} from "~/lib/models/table/interfaces";
27
+ import type {
28
+ UI_I_HeadItem,
29
+ UI_I_ColumnKey,
30
+ UI_I_BodyItem,
31
+ } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
32
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
33
+ import type {
34
+ UI_I_CreateBackupFormDiskDevice,
35
+ UI_I_Pvm
36
+ } from "~/components/common/pages/backups/modals/lib/models/interfaces";
37
+ import { itemsPerPage } from '~/components/atoms/table/dataGrid/lib/config/itemsPerPage'
38
+ import * as table from '~/components/common/pages/backups/modals/createBackup/disks/tableView/old/lib/config/table'
39
+
40
+ const props = defineProps<{
41
+ dataTable: UI_I_Pvm['disk_devices']
42
+ loading: boolean
43
+ totalItems: number
44
+ totalPages: number
45
+ }>()
46
+ const localization = computed<UI_I_Localization>(() => useLocal())
47
+
48
+ const selectedRows = defineModel<UI_I_CreateBackupFormDiskDevice[]>('selected', { required: true })
49
+
50
+ const pagination = ref<UI_I_Pagination>({
51
+ page: 1,
52
+ pageSize: 100,
53
+ })
54
+
55
+ const selectedRowsLocal = ref<string[]>(
56
+ selectedRows.value?.map((item) => item.location) || []
57
+ )
58
+ watch(
59
+ selectedRowsLocal,
60
+ (newValue) => {
61
+ const selected: UI_I_CreateBackupFormDiskDevice[] = []
62
+ bodyItems.value.forEach((row) => {
63
+ if (newValue.includes(row[0].id + '')) {
64
+ selected.push(row[0].data)
65
+ }
66
+ })
67
+ selectedRows.value = selected
68
+ },
69
+ { deep: true }
70
+ )
71
+
72
+ const columnKeys = ref<UI_I_ColumnKey[]>(table.columnKeys(localization.value))
73
+
74
+ const headItems = computed<UI_I_HeadItem[]>(() =>
75
+ table.headItems(localization.value)
76
+ )
77
+
78
+ const bodyItems = computed<UI_I_BodyItem[][]>(() => {
79
+ let result: UI_I_BodyItem[][] = []
80
+ if (props.dataTable.length) {
81
+ result = table.bodyItems(props.dataTable)
82
+ }
83
+
84
+ return result
85
+ })
86
+
87
+ // ToDo проверить почему опусташает selectedRows
88
+
89
+ // watch(
90
+ // bodyItems,
91
+ // () => {
92
+ // setTimeout(() => {
93
+ // selectedRows.value = []
94
+ // }, 0)
95
+ // },
96
+ // { deep: true, immediate: true }
97
+ // )
98
+ </script>
99
+
100
+ <style lang="scss" scoped>
101
+ .data-table-view {
102
+ height: inherit;
103
+ margin-bottom: 10px;
104
+ margin-right: 10px;
105
+
106
+ &__inner {
107
+ height: inherit;
108
+ }
109
+ :deep(.data-table) {
110
+ height: inherit;
111
+ .datagrid-outer-wrapper {
112
+ height: inherit;
113
+ }
114
+ }
115
+ }
116
+ .vm-icon {
117
+ margin-right: 5px;
118
+ }
119
+ </style>
@@ -1,12 +1,12 @@
1
- import type { UI_T_DiskTableKeysTuple } from '~/components/common/pages/backups/modals/createBackup/disks/tableView/old/lib/models/types'
2
-
3
- export const tableKeys: UI_T_DiskTableKeysTuple = [
4
- 'source',
5
- 'device_type',
6
- 'bus',
7
- 'target',
8
- 'capacity_mb',
9
- 'used_mb',
10
- 'free_mb',
11
- 'volume_path',
12
- ]
1
+ import type { UI_T_DiskTableKeysTuple } from '~/components/common/pages/backups/modals/createBackup/disks/tableView/old/lib/models/types'
2
+
3
+ export const tableKeys: UI_T_DiskTableKeysTuple = [
4
+ 'source',
5
+ 'device_type',
6
+ 'bus',
7
+ 'target',
8
+ 'capacity_mb',
9
+ 'used_mb',
10
+ 'free_mb',
11
+ 'volume_path',
12
+ ]