From 8a28d5fbee3de131508bd2f5c9701586ccd587cf Mon Sep 17 00:00:00 2001
From: Tommy Larsson <45052383+larssont@users.noreply.github.com>
Date: Sat, 16 Nov 2019 10:23:05 +0100
Subject: [PATCH] Add ombi password authentication option (#28742)

* Add password authentication option

* Add vol.Exclusive for auth config params
---
 homeassistant/components/ombi/__init__.py   | 13 +++++++++----
 homeassistant/components/ombi/manifest.json |  2 +-
 requirements_all.txt                        |  2 +-
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/homeassistant/components/ombi/__init__.py b/homeassistant/components/ombi/__init__.py
index 860c7d4dcb4..750772ce8f5 100644
--- a/homeassistant/components/ombi/__init__.py
+++ b/homeassistant/components/ombi/__init__.py
@@ -7,6 +7,7 @@ import voluptuous as vol
 from homeassistant.const import (
     CONF_API_KEY,
     CONF_HOST,
+    CONF_PASSWORD,
     CONF_PORT,
     CONF_SSL,
     CONF_USERNAME,
@@ -57,13 +58,15 @@ CONFIG_SCHEMA = vol.Schema(
     {
         DOMAIN: vol.Schema(
             {
-                vol.Required(CONF_API_KEY): cv.string,
                 vol.Required(CONF_HOST): cv.string,
                 vol.Required(CONF_USERNAME): cv.string,
+                vol.Exclusive(CONF_API_KEY, "auth"): cv.string,
+                vol.Exclusive(CONF_PASSWORD, "auth"): cv.string,
                 vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
                 vol.Optional(CONF_URLBASE, default=DEFAULT_URLBASE): urlbase,
                 vol.Optional(CONF_SSL, default=DEFAULT_SSL): cv.boolean,
-            }
+            },
+            cv.has_at_least_one_key("auth"),
         )
     },
     extra=vol.ALLOW_EXTRA,
@@ -77,12 +80,14 @@ def setup(hass, config):
         ssl=config[DOMAIN][CONF_SSL],
         host=config[DOMAIN][CONF_HOST],
         port=config[DOMAIN][CONF_PORT],
-        api_key=config[DOMAIN][CONF_API_KEY],
-        username=config[DOMAIN][CONF_USERNAME],
         urlbase=config[DOMAIN][CONF_URLBASE],
+        username=config[DOMAIN][CONF_USERNAME],
+        password=config[DOMAIN].get(CONF_PASSWORD),
+        api_key=config[DOMAIN].get(CONF_API_KEY),
     )
 
     try:
+        ombi.authenticate()
         ombi.test_connection()
     except pyombi.OmbiError as err:
         _LOGGER.warning("Unable to setup Ombi: %s", err)
diff --git a/homeassistant/components/ombi/manifest.json b/homeassistant/components/ombi/manifest.json
index fb6daf00f66..0407aa5a106 100644
--- a/homeassistant/components/ombi/manifest.json
+++ b/homeassistant/components/ombi/manifest.json
@@ -4,5 +4,5 @@
     "documentation": "https://www.home-assistant.io/integrations/ombi/",
     "dependencies": [],
     "codeowners": ["@larssont"],
-    "requirements": ["pyombi==0.1.5"]
+    "requirements": ["pyombi==0.1.10"]
 }
diff --git a/requirements_all.txt b/requirements_all.txt
index e6dbb050c7c..4e95af20556 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -1379,7 +1379,7 @@ pynzbgetapi==0.2.0
 pyobihai==1.2.0
 
 # homeassistant.components.ombi
-pyombi==0.1.5
+pyombi==0.1.10
 
 # homeassistant.components.openuv
 pyopenuv==1.0.9
-- 
GitLab