blob: 3145785ffd772a85792b6e03d6b1c0518d786df1 [file] [log] [blame]
Daniel P. Berrange409437e2016-07-20 14:23:13 +01001#
2# Migration test hardware configuration description
3#
4# Copyright (c) 2016 Red Hat, Inc.
5#
6# This library is free software; you can redistribute it and/or
7# modify it under the terms of the GNU Lesser General Public
8# License as published by the Free Software Foundation; either
Gan Qixin3a645d32020-11-11 02:42:21 +08009# version 2.1 of the License, or (at your option) any later version.
Daniel P. Berrange409437e2016-07-20 14:23:13 +010010#
11# This library is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14# Lesser General Public License for more details.
15#
16# You should have received a copy of the GNU Lesser General Public
17# License along with this library; if not, see <http://www.gnu.org/licenses/>.
18#
19
20
21class Hardware(object):
22 def __init__(self, cpus=1, mem=1,
23 src_cpu_bind=None, src_mem_bind=None,
24 dst_cpu_bind=None, dst_mem_bind=None,
25 prealloc_pages = False,
26 huge_pages=False, locked_pages=False):
27 self._cpus = cpus
28 self._mem = mem # GiB
29 self._src_mem_bind = src_mem_bind # List of NUMA nodes
30 self._src_cpu_bind = src_cpu_bind # List of pCPUs
31 self._dst_mem_bind = dst_mem_bind # List of NUMA nodes
32 self._dst_cpu_bind = dst_cpu_bind # List of pCPUs
33 self._prealloc_pages = prealloc_pages
34 self._huge_pages = huge_pages
35 self._locked_pages = locked_pages
36
37
38 def serialize(self):
39 return {
40 "cpus": self._cpus,
41 "mem": self._mem,
42 "src_mem_bind": self._src_mem_bind,
43 "dst_mem_bind": self._dst_mem_bind,
44 "src_cpu_bind": self._src_cpu_bind,
45 "dst_cpu_bind": self._dst_cpu_bind,
46 "prealloc_pages": self._prealloc_pages,
47 "huge_pages": self._huge_pages,
48 "locked_pages": self._locked_pages,
49 }
50
51 @classmethod
52 def deserialize(cls, data):
53 return cls(
54 data["cpus"],
55 data["mem"],
56 data["src_cpu_bind"],
57 data["src_mem_bind"],
58 data["dst_cpu_bind"],
59 data["dst_mem_bind"],
60 data["prealloc_pages"],
61 data["huge_pages"],
62 data["locked_pages"])