[MediaWiki-commits] [Gerrit] labs/toollabs[master]: Do not hardcore database hosts in list-user-databases

2017-02-25 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/336171 )

Change subject: Do not hardcore database hosts in list-user-databases
..


Do not hardcore database hosts in list-user-databases

The database host that served c2.labsdb was decommissioned and is no
longer accessible.  This causes list-user-databases to fail because
c2.labsdb is in the hardcoded list of database servers to check for a
user's databases.

There is no easy authoritative source for a list of active database
servers; role::labs::db::maintain_dbusers lists all database servers,
but does not differentiate between hosts that are accessible from the
Labs network and hosts that are firewalled.  Therefore this change
removes the hardcoded list completely and instead requires that
list-user-databases is called with an explicit list of database
servers to check for a user's database.

For the active database servers current at the time of this change,
list-user-databases would be invoked as:

| $ list-user-databases -H labsdb1001.eqiad.wmnet \
|   -H labsdb1003.eqiad.wmnet \
|   -H labsdb1005.eqiad.wmnet \
|   /path/to/replica.my.cnf

Change-Id: I861375502a04a839db69fa1b92e4acfecf6470e1
---
M debian/changelog
M misctools/list-user-databases
M misctools/list-user-databases.1.in
3 files changed, 23 insertions(+), 10 deletions(-)

Approvals:
  Tim Landscheidt: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/debian/changelog b/debian/changelog
index c6f5d53..b43d6cf 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,9 @@
 toollabs (1.19~dev) unstable; urgency=medium
 
   * Remove toolwatcher
+  * Do not hardcore database hosts in list-user-databases
 
- -- Tim Landscheidt   Tue, 07 Feb 2017 15:57:45 +
+ -- Tim Landscheidt   Sun, 26 Feb 2017 00:15:16 +
 
 toollabs (1.18) unstable; urgency=medium
 
diff --git a/misctools/list-user-databases b/misctools/list-user-databases
index cc9f374..5dc81eb 100755
--- a/misctools/list-user-databases
+++ b/misctools/list-user-databases
@@ -7,12 +7,13 @@
 
 import mysql.connector
 
-# Servers to search databases on.
-DATABASE_SERVERS = ('c1.labsdb', 'c2.labsdb', 'c3.labsdb', 'tools.labsdb')
-
 if __name__ == '__main__':
 # Get list of defaults files to extract user information from.
 parser = argparse.ArgumentParser(description='List databases owned by 
users, given by the credentials files.')
+parser.add_argument('-H', '--host',
+action='append',
+required=True,
+help='database hosts to check')
 parser.add_argument('mycnffilenames',
 metavar='MYCNFFILENAME',
 nargs='+',
@@ -25,7 +26,7 @@
 username = c.get('client', 'user').strip("'")
 password = c.get('client', 'password').strip("'")
 databases_found = []
-for server in DATABASE_SERVERS:
+for server in args.host:
 conn = mysql.connector.connect(user=username,
password=password,
host=server,
diff --git a/misctools/list-user-databases.1.in 
b/misctools/list-user-databases.1.in
index d32ec71..0af7574 100644
--- a/misctools/list-user-databases.1.in
+++ b/misctools/list-user-databases.1.in
@@ -2,16 +2,27 @@
 .SH NAME
 list-user-databases \- list databases a MySQL account has access to
 .SH SYNOPSIS
-.B list-user-databases
+.B list-user-databases -H
+.I host
+.RB [ -H
+.I host
+\[char46]..]
 .I filename
-.RI [filename ...]
+.RI [ filename
+\[char46]..]
 .SH DESCRIPTION
 .B list-user-databases
-lists all databases on the replica servers and
-.I tools.labsdb
-that the user has access to whose
+lists all databases on the given database servers that the user has
+access to whose
 .I replica.my.cnf
 file has been given as a command line argument.
+
+A list of potential database servers to check against can be gathered
+from
+.IR operation/puppet 's
+.IR modules/role/manifests/labs/db/maintain_dbusers.pp .
+Note that some of the database servers listed there are not accessible
+from Labs and connection attempts will time out.
 .SH EXIT STATUS
 In case of success,
 .B list-user-databases

-- 
To view, visit https://gerrit.wikimedia.org/r/336171
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I861375502a04a839db69fa1b92e4acfecf6470e1
Gerrit-PatchSet: 2
Gerrit-Project: labs/toollabs
Gerrit-Branch: master
Gerrit-Owner: Tim Landscheidt 
Gerrit-Reviewer: Coren 
Gerrit-Reviewer: Merlijn van Deen 
Gerrit-Reviewer: Tim Landscheidt 
Gerrit-Reviewer: Yuvipanda 
Gerrit-Reviewer: jenkins-bot <>

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinf

[MediaWiki-commits] [Gerrit] labs/toollabs[master]: Do not hardcore database hosts in list-user-databases

2017-02-05 Thread Tim Landscheidt (Code Review)
Tim Landscheidt has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/336171 )

Change subject: Do not hardcore database hosts in list-user-databases
..

Do not hardcore database hosts in list-user-databases

The database host that served c2.labsdb was decommissioned and is no
longer accessible.  This causes list-user-databases to fail because
c2.labsdb is in the hardcoded list of database servers to check for a
user's databases.

There is no easy authoritative source for a list of active database
servers; role::labs::db::maintain_dbusers lists all database servers,
but does not differentiate between hosts that are accessible from the
Labs network and hosts that are firewalled.  Therefore this change
removes the hardcoded list completely and instead requires that
list-user-databases is called with an explicit list of database
servers to check for a user's database.

For the active database servers current at the time of this change,
list-user-databases would be invoked as:

| $ list-user-databases -H labsdb1001.eqiad.wmnet \
|   -H labsdb1003.eqiad.wmnet \
|   -H labsdb1005.eqiad.wmnet \
|   /path/to/replica.my.cnf

Change-Id: I861375502a04a839db69fa1b92e4acfecf6470e1
---
M debian/changelog
M misctools/list-user-databases
M misctools/list-user-databases.1.in
3 files changed, 27 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/toollabs 
refs/changes/71/336171/1

diff --git a/debian/changelog b/debian/changelog
index b17cf44..32d9cfa 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+toollabs (1.19) unstable; urgency=medium
+
+  * Do not hardcore database hosts in list-user-databases
+
+ -- Tim Landscheidt   Sun, 05 Feb 2017 22:22:41 +
+
 toollabs (1.18) unstable; urgency=medium
 
   * jsub: Change IOError string substitution conversion from '%e'
diff --git a/misctools/list-user-databases b/misctools/list-user-databases
index cc9f374..5dc81eb 100755
--- a/misctools/list-user-databases
+++ b/misctools/list-user-databases
@@ -7,12 +7,13 @@
 
 import mysql.connector
 
-# Servers to search databases on.
-DATABASE_SERVERS = ('c1.labsdb', 'c2.labsdb', 'c3.labsdb', 'tools.labsdb')
-
 if __name__ == '__main__':
 # Get list of defaults files to extract user information from.
 parser = argparse.ArgumentParser(description='List databases owned by 
users, given by the credentials files.')
+parser.add_argument('-H', '--host',
+action='append',
+required=True,
+help='database hosts to check')
 parser.add_argument('mycnffilenames',
 metavar='MYCNFFILENAME',
 nargs='+',
@@ -25,7 +26,7 @@
 username = c.get('client', 'user').strip("'")
 password = c.get('client', 'password').strip("'")
 databases_found = []
-for server in DATABASE_SERVERS:
+for server in args.host:
 conn = mysql.connector.connect(user=username,
password=password,
host=server,
diff --git a/misctools/list-user-databases.1.in 
b/misctools/list-user-databases.1.in
index d32ec71..0af7574 100644
--- a/misctools/list-user-databases.1.in
+++ b/misctools/list-user-databases.1.in
@@ -2,16 +2,27 @@
 .SH NAME
 list-user-databases \- list databases a MySQL account has access to
 .SH SYNOPSIS
-.B list-user-databases
+.B list-user-databases -H
+.I host
+.RB [ -H
+.I host
+\[char46]..]
 .I filename
-.RI [filename ...]
+.RI [ filename
+\[char46]..]
 .SH DESCRIPTION
 .B list-user-databases
-lists all databases on the replica servers and
-.I tools.labsdb
-that the user has access to whose
+lists all databases on the given database servers that the user has
+access to whose
 .I replica.my.cnf
 file has been given as a command line argument.
+
+A list of potential database servers to check against can be gathered
+from
+.IR operation/puppet 's
+.IR modules/role/manifests/labs/db/maintain_dbusers.pp .
+Note that some of the database servers listed there are not accessible
+from Labs and connection attempts will time out.
 .SH EXIT STATUS
 In case of success,
 .B list-user-databases

-- 
To view, visit https://gerrit.wikimedia.org/r/336171
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I861375502a04a839db69fa1b92e4acfecf6470e1
Gerrit-PatchSet: 1
Gerrit-Project: labs/toollabs
Gerrit-Branch: master
Gerrit-Owner: Tim Landscheidt 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits