[PATCH] Setting default memory of PPC to 2048

From: Daniel Henrique Barboza <dhbarboza82@gmail.com> At this moment Kimchi for Power systems does not support guests created with less that 2Gb of RAM. This patch set the default Power template to reflect it. Any user defined setting in template.conf will overwrite this default. This is intended. The user must have the final word in the customization of his/her VM templates. Signed-off-by: Daniel Henrique Barboza <dhbarboza82@gmail.com> --- src/kimchi/osinfo.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/kimchi/osinfo.py b/src/kimchi/osinfo.py index 78eb828..6506f2d 100644 --- a/src/kimchi/osinfo.py +++ b/src/kimchi/osinfo.py @@ -44,28 +44,28 @@ template_specs = {'x86': {'old': dict(disk_bus='ide', cdrom_bus='scsi', kbd_type="kbd", kbd_bus='usb', mouse_bus='usb', - tablet_bus='usb', memory=1280), + tablet_bus='usb', memory=2048), 'modern': dict(disk_bus='virtio', nic_model='virtio', cdrom_bus='scsi', kbd_bus='usb', kbd_type="kbd", mouse_bus='usb', tablet_bus='usb', - memory=1280)}, + memory=2048)}, 'ppc64le': {'old': dict(disk_bus='virtio', nic_model='virtio', cdrom_bus='scsi', kbd_bus='usb', kbd_type="keyboard", mouse_bus='usb', tablet_bus='usb', - memory=1280), + memory=2048), 'modern': dict(disk_bus='virtio', nic_model='virtio', cdrom_bus='scsi', kbd_bus='usb', kbd_type="keyboard", mouse_bus='usb', tablet_bus='usb', - memory=1280)}} + memory=2048)}} custom_specs = {'fedora': {'22': dict(video_model='qxl')}} @@ -89,6 +89,16 @@ icon_available_distros = [icon[5:-4] for icon in glob.glob1('%s/images/' % paths.ui_dir, 'icon-*.png')] +def _get_arch(): + for arch, sub_archs in SUPPORTED_ARCHS.iteritems(): + if os.uname()[4] in sub_archs: + return arch + + +def _get_default_template_mem(host_arch): + return template_specs[host_arch]['modern'].get('memory', 1024) + + def _get_tmpl_defaults(): """ ConfigObj returns a dict like below when no changes were made in the @@ -107,7 +117,7 @@ def _get_tmpl_defaults(): # Create dict with default values tmpl_defaults = defaultdict(dict) tmpl_defaults['main']['networks'] = ['default'] - tmpl_defaults['main']['memory'] = 1024 + tmpl_defaults['main']['memory'] = _get_default_template_mem(_get_arch()) tmpl_defaults['storage']['pool'] = 'default' tmpl_defaults['storage']['disk.0'] = {'size': 10, 'format': 'qcow2'} tmpl_defaults['processor']['cpus'] = 1 @@ -157,12 +167,6 @@ def _get_tmpl_defaults(): defaults = _get_tmpl_defaults() -def _get_arch(): - for arch, sub_archs in SUPPORTED_ARCHS.iteritems(): - if os.uname()[4] in sub_archs: - return arch - - def get_template_default(template_type, field): host_arch = _get_arch() # Assuming 'power' = 'ppc64le' because lookup() does the same, -- 2.4.3

On 31/07/2015 15:00, dhbarboza82@gmail.com wrote:
From: Daniel Henrique Barboza <dhbarboza82@gmail.com>
At this moment Kimchi for Power systems does not support guests created with less that 2Gb of RAM. This patch set the default Power template to reflect it.
Any user defined setting in template.conf will overwrite this default. This is intended. The user must have the final word in the customization of his/her VM templates.
Signed-off-by: Daniel Henrique Barboza <dhbarboza82@gmail.com> --- src/kimchi/osinfo.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-)
diff --git a/src/kimchi/osinfo.py b/src/kimchi/osinfo.py index 78eb828..6506f2d 100644 --- a/src/kimchi/osinfo.py +++ b/src/kimchi/osinfo.py @@ -44,28 +44,28 @@ template_specs = {'x86': {'old': dict(disk_bus='ide', cdrom_bus='scsi', kbd_type="kbd", kbd_bus='usb', mouse_bus='usb', - tablet_bus='usb', memory=1280), + tablet_bus='usb', memory=2048), 'modern': dict(disk_bus='virtio', nic_model='virtio', cdrom_bus='scsi', kbd_bus='usb', kbd_type="kbd", mouse_bus='usb', tablet_bus='usb', - memory=1280)}, + memory=2048)}, 'ppc64le': {'old': dict(disk_bus='virtio', nic_model='virtio', cdrom_bus='scsi', kbd_bus='usb', kbd_type="keyboard", mouse_bus='usb', tablet_bus='usb', - memory=1280), + memory=2048), 'modern': dict(disk_bus='virtio', nic_model='virtio', cdrom_bus='scsi', kbd_bus='usb', kbd_type="keyboard", mouse_bus='usb', tablet_bus='usb', - memory=1280)}} + memory=2048)}}
custom_specs = {'fedora': {'22': dict(video_model='qxl')}} @@ -89,6 +89,16 @@ icon_available_distros = [icon[5:-4] for icon in glob.glob1('%s/images/' % paths.ui_dir, 'icon-*.png')]
+def _get_arch(): + for arch, sub_archs in SUPPORTED_ARCHS.iteritems(): + if os.uname()[4] in sub_archs: + return arch + + +def _get_default_template_mem(host_arch): + return template_specs[host_arch]['modern'].get('memory', 1024)
You are assuming the OS is a modern distro to every case which may be not true in always cases. I know the memory value is the same in both cases - old and modern, but it is a easy point of failure. As we know have the template.conf file, I suggest to create one specific by arch. So we will have one for x86 and other one for Power. The conf file for Power can have the default value already set and while loading it, we get the right one according to arch. What do you think about it?
+ + def _get_tmpl_defaults(): """ ConfigObj returns a dict like below when no changes were made in the @@ -107,7 +117,7 @@ def _get_tmpl_defaults(): # Create dict with default values tmpl_defaults = defaultdict(dict) tmpl_defaults['main']['networks'] = ['default'] - tmpl_defaults['main']['memory'] = 1024 + tmpl_defaults['main']['memory'] = _get_default_template_mem(_get_arch()) tmpl_defaults['storage']['pool'] = 'default' tmpl_defaults['storage']['disk.0'] = {'size': 10, 'format': 'qcow2'} tmpl_defaults['processor']['cpus'] = 1 @@ -157,12 +167,6 @@ def _get_tmpl_defaults(): defaults = _get_tmpl_defaults()
-def _get_arch(): - for arch, sub_archs in SUPPORTED_ARCHS.iteritems(): - if os.uname()[4] in sub_archs: - return arch - - def get_template_default(template_type, field): host_arch = _get_arch() # Assuming 'power' = 'ppc64le' because lookup() does the same,

On 08/06/2015 10:38 AM, Aline Manera wrote:
On 31/07/2015 15:00, dhbarboza82@gmail.com wrote:
From: Daniel Henrique Barboza <dhbarboza82@gmail.com>
At this moment Kimchi for Power systems does not support guests created with less that 2Gb of RAM. This patch set the default Power template to reflect it.
Any user defined setting in template.conf will overwrite this default. This is intended. The user must have the final word in the customization of his/her VM templates.
Signed-off-by: Daniel Henrique Barboza <dhbarboza82@gmail.com> --- src/kimchi/osinfo.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-)
diff --git a/src/kimchi/osinfo.py b/src/kimchi/osinfo.py index 78eb828..6506f2d 100644 --- a/src/kimchi/osinfo.py +++ b/src/kimchi/osinfo.py @@ -44,28 +44,28 @@ template_specs = {'x86': {'old': dict(disk_bus='ide', cdrom_bus='scsi', kbd_type="kbd", kbd_bus='usb', mouse_bus='usb', - tablet_bus='usb', memory=1280), + tablet_bus='usb', memory=2048), 'modern': dict(disk_bus='virtio', nic_model='virtio', cdrom_bus='scsi', kbd_bus='usb', kbd_type="kbd", mouse_bus='usb', tablet_bus='usb', - memory=1280)}, + memory=2048)}, 'ppc64le': {'old': dict(disk_bus='virtio', nic_model='virtio', cdrom_bus='scsi', kbd_bus='usb', kbd_type="keyboard", mouse_bus='usb', tablet_bus='usb', - memory=1280), + memory=2048), 'modern': dict(disk_bus='virtio', nic_model='virtio', cdrom_bus='scsi', kbd_bus='usb', kbd_type="keyboard", mouse_bus='usb', tablet_bus='usb', - memory=1280)}} + memory=2048)}}
custom_specs = {'fedora': {'22': dict(video_model='qxl')}} @@ -89,6 +89,16 @@ icon_available_distros = [icon[5:-4] for icon in glob.glob1('%s/images/' % paths.ui_dir, 'icon-*.png')]
+def _get_arch(): + for arch, sub_archs in SUPPORTED_ARCHS.iteritems(): + if os.uname()[4] in sub_archs: + return arch + + +def _get_default_template_mem(host_arch): + return template_specs[host_arch]['modern'].get('memory', 1024)
You are assuming the OS is a modern distro to every case which may be not true in always cases. I know the memory value is the same in both cases - old and modern, but it is a easy point of failure.
As we know have the template.conf file, I suggest to create one specific by arch. So we will have one for x86 and other one for Power. The conf file for Power can have the default value already set and while loading it, we get the right one according to arch. What do you think about it?
Not sure. Perhaps it would be easier to just add the default x86 mem value '1024' to the old and modern dicts of x86_64 arch and just rely on the code to set the correct value. I'll test it here and see if it works.
+ + def _get_tmpl_defaults(): """ ConfigObj returns a dict like below when no changes were made in the @@ -107,7 +117,7 @@ def _get_tmpl_defaults(): # Create dict with default values tmpl_defaults = defaultdict(dict) tmpl_defaults['main']['networks'] = ['default'] - tmpl_defaults['main']['memory'] = 1024 + tmpl_defaults['main']['memory'] = _get_default_template_mem(_get_arch()) tmpl_defaults['storage']['pool'] = 'default' tmpl_defaults['storage']['disk.0'] = {'size': 10, 'format': 'qcow2'} tmpl_defaults['processor']['cpus'] = 1 @@ -157,12 +167,6 @@ def _get_tmpl_defaults(): defaults = _get_tmpl_defaults()
-def _get_arch(): - for arch, sub_archs in SUPPORTED_ARCHS.iteritems(): - if os.uname()[4] in sub_archs: - return arch - - def get_template_default(template_type, field): host_arch = _get_arch() # Assuming 'power' = 'ppc64le' because lookup() does the same,
participants (3)
-
Aline Manera
-
Daniel Henrique Barboza
-
dhbarboza82@gmail.com