More verbosity on invalid gerrit config

Change-Id: Iddbd5881abe3d20baab14d8960efc60b7a8fd2fa
diff --git a/src/com/mirantis/mk/Gerrit.groovy b/src/com/mirantis/mk/Gerrit.groovy
index d7a958a..99c91b7 100644
--- a/src/com/mirantis/mk/Gerrit.groovy
+++ b/src/com/mirantis/mk/Gerrit.groovy
@@ -49,7 +49,8 @@
     def depth = config.get('depth', 0)
     def timeout = config.get('timeout', 20)
 
-    if(_validGerritConfig(config)){
+    def invalidParams = _getInvalidGerritParams(config)
+    if (invalidParams.isEmpty()) {
         // default parameters
         def scmExtensions = [
             [$class: 'CleanCheckout'],
@@ -112,7 +113,7 @@
         }
         return true
     }else{
-        throw new Exception("Cannot perform gerrit checkout, given config file is not valid")
+        throw new Exception("Cannot perform gerrit checkout, missed config options: " + invalidParams)
     }
     return false
 }
@@ -240,11 +241,9 @@
     return []
 }
 
-def _validGerritConfig(LinkedHashMap config){
-    return config.get("gerritScheme","") != null && config.get("gerritScheme","") != "" &&
-           config.get("gerritName","") != null && config.get("gerritName","") != "" &&
-           config.get("gerritHost","") != null && config.get("gerritHost","") != "" &&
-           config.get("gerritPort","") != null && config.get("gerritPort","") != "" &&
-           config.get("gerritProject","") != null && config.get("gerritProject","") != "" &&
-           config.get("gerritBranch","") != null && config.get("gerritBranch","") != ""
+def _getInvalidGerritParams(LinkedHashMap config){
+    def requiredParams = ["gerritScheme", "gerritName", "gerritHost", "gerritPort", "gerritProject", "gerritBranch"]
+    def missedParams = requiredParams - config.keySet()
+    def badParams = config.subMap(requiredParams).findAll{it.value in [null, '']}.keySet()
+    return badParams + missedParams
 }
\ No newline at end of file