Configure gerrit trigger

PROD-16423

Change-Id: Id99189525bc02e08c5c9eafa4110aa0f356d48e8
diff --git a/_states/jenkins_gerrit.py b/_states/jenkins_gerrit.py
new file mode 100644
index 0000000..26b1259
--- /dev/null
+++ b/_states/jenkins_gerrit.py
@@ -0,0 +1,51 @@
+import logging
+
+logger = logging.getLogger(__name__)
+
+def __virtual__():
+    '''
+    Only load if jenkins_common module exist.
+    '''
+    if 'jenkins_common.call_groovy_script' not in __salt__:
+        return (
+            False,
+            'The jenkins_gerrit state module cannot be loaded: '
+            'jenkins_common not found')
+    return True
+
+
+def present(name, hostname, username, frontendurl, auth_key_file, authkey,
+            port="29418", auth_key_file_password=None, email="", proxy=""):
+    """
+    Jenkins gerrit-trigger state method
+
+    :param name: server name
+    :param host: server hostname
+    :param username: username
+    :param email: trigger email (optional)
+    :param port: server ssh port
+    :param proxy: proxy url (optional)
+    :param frontendurl: server frontend URL
+    :param auth_key_file: path to key file
+    :param authkey: ssh key
+    :param auth_key_file_password: password for keyfile (optional)
+    :returns: salt-specified state dict
+    """
+    template = __salt__['jenkins_common.load_template'](
+        'salt://jenkins/files/groovy/gerrit.template',
+        __env__)
+    return __salt__['jenkins_common.api_call'](name, template,
+                        ["CREATED", "EXISTS"],
+                        {
+                            "name": name,
+                            "hostname": hostname,
+                            "port": port if port else "29418",
+                            "proxy": proxy if proxy else "",
+                            "username": username,
+                            "email": email if email else "",
+                            "frontendurl": frontendurl,
+                            "auth_key_file": auth_key_file,
+                            "authkey": authkey,
+                            "auth_key_file_password": auth_key_file_password if auth_key_file_password else None
+                        },
+                        "Gerrit server")