Resolve pylint message R0902

R0902: Too many instance attributes

Change-Id: I84403802267bc7f87130de00ba1b2b89a0b44864
diff --git a/container-images/gerrit-init/tools/validate_db.py b/container-images/gerrit-init/tools/validate_db.py
index f87d637..ebfd5b1 100755
--- a/container-images/gerrit-init/tools/validate_db.py
+++ b/container-images/gerrit-init/tools/validate_db.py
@@ -28,6 +28,16 @@
 
 LOG = get_logger("validate-db")
 
+class DatabaseConfig:
+
+  def __init__(self, name, host, port, user, pwd):
+    self.name = name
+    self.host = host
+    self.port = port
+    self.user = user
+    self.pwd = pwd
+
+
 class AbstractGerritDB(ABC):
 
   def __init__(self, config, secure_config):
@@ -74,15 +84,16 @@
     self.url = self._create_db_url()
 
   def _read_config(self, config, secure_config):
-    self.name = config.get("database.database", default="ReviewDB")
+    name = config.get("database.database", default="ReviewDB")
+    self.db_config = DatabaseConfig(name, None, None, None, None)
 
   def _create_db_url(self):
     suffix = '.h2.db'
-    if os.path.isabs(self.name):
-      if self.name.endswith(suffix):
-        return self.name
-      return self.name + suffix
-    return os.path.join(self.site, "db", self.name) + suffix
+    if os.path.isabs(self.db_config.name):
+      if self.db_config.name.endswith(suffix):
+        return self.db_config.name
+      return self.db_config.name + suffix
+    return os.path.join(self.site, "db", self.db_config.name) + suffix
 
   def wait_for_db_server(self):
     # Not required. H2 is an embedded database.
@@ -114,19 +125,20 @@
     self.connection = None
 
   def _read_config(self, config, secure_config):
-    self.host = config.get("database.hostname", default="localhost")
-    self.port = config.get("database.port", default="3306")
-    self.name = config.get("database.database", default="reviewdb")
-    self.user = secure_config.get("database.username", default="")
-    self.pwd = secure_config.get("database.password", default="")
+    name = config.get("database.database", default="reviewdb")
+    host = config.get("database.hostname", default="localhost")
+    port = config.get("database.port", default="3306")
+    user = secure_config.get("database.username", default="")
+    pwd = secure_config.get("database.password", default="")
+    self.db_config = DatabaseConfig(name, host, port, user, pwd)
 
   def _create_db_url(self):
     server_url = "mysql+pymysql://%s:%s@%s:%s" % (
-      self.user,
-      self.pwd,
-      self.host,
-      self.port)
-    reviewdb_url = "%s/%s" % (server_url, self.name)
+      self.db_config.user,
+      self.db_config.pwd,
+      self.db_config.host,
+      self.db_config.port)
+    reviewdb_url = "%s/%s" % (server_url, self.db_config.name)
     return (server_url, reviewdb_url)
 
   def _connect_to_db(self, url):