Sandro Bonazzola has uploaded a new change for review.

Change subject: customization: defaults aligned to minimum requirements
......................................................................

customization: defaults aligned to minimum requirements

Defaults aligned to minimum requirements.
Added values validation against minimum requirements.
The confirmation of entered values can be disabled using
a CoreEnv variable.

Change-Id: I6fbaabc72d8c6459d23054d147b70712c4e33e30
Signed-off-by: Sandro Bonazzola <[email protected]>
---
M src/ovirt_hosted_engine_setup/constants.py
M src/plugins/ovirt-hosted-engine-setup/core/misc.py
M src/plugins/ovirt-hosted-engine-setup/vm/cpu.py
M src/plugins/ovirt-hosted-engine-setup/vm/image.py
M src/plugins/ovirt-hosted-engine-setup/vm/memory.py
5 files changed, 82 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-hosted-engine-setup 
refs/changes/76/16776/1

diff --git a/src/ovirt_hosted_engine_setup/constants.py 
b/src/ovirt_hosted_engine_setup/constants.py
index 4edcf52..dca7a7f 100644
--- a/src/ovirt_hosted_engine_setup/constants.py
+++ b/src/ovirt_hosted_engine_setup/constants.py
@@ -136,6 +136,7 @@
 @util.codegen
 class CoreEnv(object):
     ANSWER_FILE = 'OVEHOSTED_CORE/answerFile'
+    REQUIREMENTS_CHECK_ENABLED = 'OVEHOSTED_CORE/checkRequirements'
 
 
 @util.export
@@ -330,7 +331,7 @@
     DEFAULT_STORAGE_DATACENTER_NAME = 'hosted_datacenter'
     DEFAULT_VDSMD_SERVICE = 'vdsmd'
     DEFAULT_IMAGE_DESC = 'Hosted Engine Image'
-    DEFAULT_IMAGE_SIZE_GB = 20  # based on minimum requirements.
+    DEFAULT_IMAGE_SIZE_GB = 25  # based on minimum requirements.
     DEFAULT_MEM_SIZE_MB = 4096  # based on minimum requirements.
     DEFAULT_BOOT = 'cdrom'  # boot device - drive C or cdrom or pxe
     DEFAULT_CDROM = '/dev/null'
@@ -339,13 +340,16 @@
     DEFAULT_BRIDGE_NAME = 'ovirtmgmt'
     DEFAULT_PKI_SUBJECT = '/C=EN/L=Test/O=Test/CN=Test'
     DEFAULT_VM_PASSWD_VALIDITY_SECS = "10800"  # 3 hours to for engine install
-    DEFAULT_VM_VCPUS = 1
+    DEFAULT_VM_VCPUS = 2  # based on minimum requirements.
 
 
 @util.export
 @util.codegen
 class Confirms(object):
     DEPLOY_PROCEED = 'DEPLOY_PROCEED'
+    CPU_PROCEED = 'CPU_PROCEED'
+    DISK_PROCEED = 'DISK_PROCEED'
+    MEMORY_PROCEED = 'MEMORY_PROCEED'
 
 
 # vim: expandtab tabstop=4 shiftwidth=4
diff --git a/src/plugins/ovirt-hosted-engine-setup/core/misc.py 
b/src/plugins/ovirt-hosted-engine-setup/core/misc.py
index 1bd24f9..4be62d7 100644
--- a/src/plugins/ovirt-hosted-engine-setup/core/misc.py
+++ b/src/plugins/ovirt-hosted-engine-setup/core/misc.py
@@ -74,6 +74,11 @@
         ):
             raise context.Abort('Aborted by user')
 
+        self.environment.setdefault(
+            ohostedcons.CoreEnv.REQUIREMENTS_CHECK_ENABLED,
+            True
+        )
+
     @plugin.event(
         stage=plugin.Stages.STAGE_CUSTOMIZATION,
     )
diff --git a/src/plugins/ovirt-hosted-engine-setup/vm/cpu.py 
b/src/plugins/ovirt-hosted-engine-setup/vm/cpu.py
index e9bce50..a47ab16 100644
--- a/src/plugins/ovirt-hosted-engine-setup/vm/cpu.py
+++ b/src/plugins/ovirt-hosted-engine-setup/vm/cpu.py
@@ -70,15 +70,36 @@
                     name='ovehosted_vmenv_cpu',
                     note=_(
                         'Please specify the number of virtual CPUs for the VM '
-                        '[@DEFAULT@]: '
+                        '[Minimum requirement: @DEFAULT@]: '
                     ),
                     prompt=True,
                     default=ohostedcons.Defaults.DEFAULT_VM_VCPUS,
                 )
             try:
-                int(self.environment[ohostedcons.VMEnv.VCPUS])
                 valid = True
+                if int(
+                    self.environment[ohostedcons.VMEnv.VCPUS]
+                ) < ohostedcons.Defaults.DEFAULT_VM_VCPUS:
+                    self.logger.warning(
+                        _('Minimum requirements for CPUs not met')
+                    )
+                    if (
+                        interactive and
+                        self.environment[
+                            ohostedcons.CoreEnv.REQUIREMENTS_CHECK_ENABLED
+                        ] and
+                        not self.dialog.confirm(
+                            name=ohostedcons.Confirms.CPU_PROCEED,
+                            description='Confirm CPUs',
+                            note=_(
+                                'Continue with specified CPUs? (yes/no) '
+                            ),
+                            prompt=True,
+                        )
+                    ):
+                        valid = False
             except ValueError:
+                valid = False
                 if not interactive:
                     raise RuntimeError(
                         _('Invalid number of cpu specified: {vcpu}').format(
diff --git a/src/plugins/ovirt-hosted-engine-setup/vm/image.py 
b/src/plugins/ovirt-hosted-engine-setup/vm/image.py
index 796e22b..790b182 100644
--- a/src/plugins/ovirt-hosted-engine-setup/vm/image.py
+++ b/src/plugins/ovirt-hosted-engine-setup/vm/image.py
@@ -82,15 +82,36 @@
                     name='ovehosted_vmenv_mem',
                     note=_(
                         'Please specify the disk size of the VM in GB '
-                        '[@DEFAULT@]: '
+                        '[Minimum requirement: @DEFAULT@]: '
                     ),
                     prompt=True,
                     default=ohostedcons.Defaults.DEFAULT_IMAGE_SIZE_GB,
                 )
             try:
-                int(self.environment[ohostedcons.StorageEnv.IMAGE_SIZE_GB])
                 valid = True
+                if int(
+                    self.environment[ohostedcons.StorageEnv.IMAGE_SIZE_GB]
+                ) < ohostedcons.Defaults.DEFAULT_IMAGE_SIZE_GB:
+                    self.logger.warning(
+                        _('Minimum requirements for disk size not met')
+                    )
+                    if (
+                        interactive and
+                        self.environment[
+                            ohostedcons.CoreEnv.REQUIREMENTS_CHECK_ENABLED
+                        ] and
+                        not self.dialog.confirm(
+                            name=ohostedcons.Confirms.DISK_PROCEED,
+                            description='Confirm disk size',
+                            note=_(
+                                'Continue with specified disk size? (yes/no) '
+                            ),
+                            prompt=True,
+                        )
+                    ):
+                        valid = False
             except ValueError:
+                valid = False
                 if not interactive:
                     raise RuntimeError(
                         _('Invalid disk size specified: {size}').format(
diff --git a/src/plugins/ovirt-hosted-engine-setup/vm/memory.py 
b/src/plugins/ovirt-hosted-engine-setup/vm/memory.py
index dd190b4..a9dc84d 100644
--- a/src/plugins/ovirt-hosted-engine-setup/vm/memory.py
+++ b/src/plugins/ovirt-hosted-engine-setup/vm/memory.py
@@ -70,15 +70,38 @@
                     name='ovehosted_vmenv_mem',
                     note=_(
                         'Please specify the memory size of the VM in MB '
-                        '[@DEFAULT@]: '
+                        '[Minimum requirement: @DEFAULT@]: '
                     ),
                     prompt=True,
                     default=ohostedcons.Defaults.DEFAULT_MEM_SIZE_MB,
                 )
             try:
-                int(self.environment[ohostedcons.VMEnv.MEM_SIZE_MB])
                 valid = True
+                if int(
+                    self.environment[ohostedcons.VMEnv.MEM_SIZE_MB]
+                ) < ohostedcons.Defaults.DEFAULT_MEM_SIZE_MB:
+                    self.logger.warning(
+                        _('Minimum requirements for memory size not met')
+                    )
+                    if (
+                        interactive and
+                        self.environment[
+                            ohostedcons.CoreEnv.REQUIREMENTS_CHECK_ENABLED
+                        ] and
+                        not self.dialog.confirm(
+                            name=ohostedcons.Confirms.MEMORY_PROCEED,
+                            description='Confirm memory size',
+                            note=_(
+                                'Continue with specified memory size? '
+                                '(yes/no) '
+                            ),
+                            prompt=True,
+                        )
+                    ):
+                        valid = False
+
             except ValueError:
+                valid = False
                 if not interactive:
                     raise RuntimeError(
                         _('Invalid memory size specified: {size}').format(


-- 
To view, visit http://gerrit.ovirt.org/16776
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6fbaabc72d8c6459d23054d147b70712c4e33e30
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-hosted-engine-setup
Gerrit-Branch: master
Gerrit-Owner: Sandro Bonazzola <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to