[MediaWiki-commits] [Gerrit] labstore: Daemonize create-dbusers - change (operations/puppet)

2015-07-28 Thread Yuvipanda (Code Review)
Yuvipanda has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/227420

Change subject: labstore: Daemonize create-dbusers
..

labstore: Daemonize create-dbusers

- Runs every 60s
- Runs only for toollabs users
- Does not recover from crashes automatically! Need monitoring
  to alert whenever it crashes, however - will be added in a
  followup patch

Change-Id: Ifb81756974d2cfc83520dcbf232e005b619d9eef
---
M modules/labstore/files/create-dbusers
1 file changed, 26 insertions(+), 19 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/20/227420/1

diff --git a/modules/labstore/files/create-dbusers 
b/modules/labstore/files/create-dbusers
index 244deda..e54ca3a 100755
--- a/modules/labstore/files/create-dbusers
+++ b/modules/labstore/files/create-dbusers
@@ -22,6 +22,7 @@
 import random
 import configparser
 import io
+import time
 
 
 class User:
@@ -138,12 +139,14 @@
 
 
 if __name__ == '__main__':
-PROJECTS = ['tools']
-
 argparser = argparse.ArgumentParser()
 argparser.add_argument('--config', help='Path to YAML config file')
 argparser.add_argument('--debug', help='Turn on debug logging',
action='store_true')
+argparser.add_argument('--project', help='Project name to create db users 
for',
+   default='tools')
+argparser.add_argument('--delay', help='Number of seconds to wait between 
runs',
+   default=60)
 args = argparser.parse_args()
 
 logging.basicConfig(format='%(message)s',
@@ -159,26 +162,30 @@
 auto_bind=True,
 password=config['ldap']['password'])
 
-servicegroups = User.from_ldap_servicegroups(conn, 'tools')
 cgen = CredentialCreator(
 config['mysql']['hosts'],
 config['mysql']['username'],
 config['mysql']['password']
 )
 
-for sg in servicegroups:
-# FIXME: for non tools/maps projects this path is different
-replica_path = os.path.join(
-'/srv/project/', sg.project, 'project',
-re.sub(r'^%s\.' % sg.project, '', sg.name),
-'replica.my.cnf'
-)
-if not os.path.exists(replica_path):
-if not cgen.check_user_exists(sg):
-# No replica.my.cnf and no user in db
-# Generate new creds and put them in there!
-logging.info('Creating DB accounts for %s with db username 
%s', sg.name, sg.db_username)
-cgen.write_credentials_file(replica_path, sg)
-logging.info(Created replica.my.cnf for %s, with username 
%s, sg.name, sg.db_username)
-else:
-logging.info('Missing replica.my.cnf for user %s despite 
grants present in db', sg.name)
+while True:
+logging.info('Starting createdb-users run')
+servicegroups = User.from_ldap_servicegroups(conn, args.project)
+for sg in servicegroups:
+# FIXME: for non tools/maps projects this path is different
+replica_path = os.path.join(
+'/srv/project/', sg.project, 'project',
+re.sub(r'^%s\.' % sg.project, '', sg.name),
+'replica.my.cnf'
+)
+if not os.path.exists(replica_path):
+if not cgen.check_user_exists(sg):
+# No replica.my.cnf and no user in db
+# Generate new creds and put them in there!
+logging.info('Creating DB accounts for %s with db username 
%s', sg.name, sg.db_username)
+cgen.write_credentials_file(replica_path, sg)
+logging.info(Created replica.my.cnf for %s, with username 
%s, sg.name, sg.db_username)
+else:
+logging.info('Missing replica.my.cnf for user %s despite 
grants present in db', sg.name)
+logging.info('Completed createdb-users run')
+time.sleep(args.delay)

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifb81756974d2cfc83520dcbf232e005b619d9eef
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Yuvipanda yuvipa...@wikimedia.org

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


[MediaWiki-commits] [Gerrit] labstore: Daemonize create-dbusers - change (operations/puppet)

2015-07-28 Thread Yuvipanda (Code Review)
Yuvipanda has submitted this change and it was merged.

Change subject: labstore: Daemonize create-dbusers
..


labstore: Daemonize create-dbusers

- Runs every 60s
- Runs only for toollabs users
- Does not recover from crashes automatically! Need monitoring
  to alert whenever it crashes, however - will be added in a
  followup patch

Bug: T104453
Change-Id: Ifb81756974d2cfc83520dcbf232e005b619d9eef
---
M modules/labstore/files/create-dbusers
1 file changed, 26 insertions(+), 19 deletions(-)

Approvals:
  Yuvipanda: Verified; Looks good to me, approved



diff --git a/modules/labstore/files/create-dbusers 
b/modules/labstore/files/create-dbusers
index 244deda..e54ca3a 100755
--- a/modules/labstore/files/create-dbusers
+++ b/modules/labstore/files/create-dbusers
@@ -22,6 +22,7 @@
 import random
 import configparser
 import io
+import time
 
 
 class User:
@@ -138,12 +139,14 @@
 
 
 if __name__ == '__main__':
-PROJECTS = ['tools']
-
 argparser = argparse.ArgumentParser()
 argparser.add_argument('--config', help='Path to YAML config file')
 argparser.add_argument('--debug', help='Turn on debug logging',
action='store_true')
+argparser.add_argument('--project', help='Project name to create db users 
for',
+   default='tools')
+argparser.add_argument('--delay', help='Number of seconds to wait between 
runs',
+   default=60)
 args = argparser.parse_args()
 
 logging.basicConfig(format='%(message)s',
@@ -159,26 +162,30 @@
 auto_bind=True,
 password=config['ldap']['password'])
 
-servicegroups = User.from_ldap_servicegroups(conn, 'tools')
 cgen = CredentialCreator(
 config['mysql']['hosts'],
 config['mysql']['username'],
 config['mysql']['password']
 )
 
-for sg in servicegroups:
-# FIXME: for non tools/maps projects this path is different
-replica_path = os.path.join(
-'/srv/project/', sg.project, 'project',
-re.sub(r'^%s\.' % sg.project, '', sg.name),
-'replica.my.cnf'
-)
-if not os.path.exists(replica_path):
-if not cgen.check_user_exists(sg):
-# No replica.my.cnf and no user in db
-# Generate new creds and put them in there!
-logging.info('Creating DB accounts for %s with db username 
%s', sg.name, sg.db_username)
-cgen.write_credentials_file(replica_path, sg)
-logging.info(Created replica.my.cnf for %s, with username 
%s, sg.name, sg.db_username)
-else:
-logging.info('Missing replica.my.cnf for user %s despite 
grants present in db', sg.name)
+while True:
+logging.info('Starting createdb-users run')
+servicegroups = User.from_ldap_servicegroups(conn, args.project)
+for sg in servicegroups:
+# FIXME: for non tools/maps projects this path is different
+replica_path = os.path.join(
+'/srv/project/', sg.project, 'project',
+re.sub(r'^%s\.' % sg.project, '', sg.name),
+'replica.my.cnf'
+)
+if not os.path.exists(replica_path):
+if not cgen.check_user_exists(sg):
+# No replica.my.cnf and no user in db
+# Generate new creds and put them in there!
+logging.info('Creating DB accounts for %s with db username 
%s', sg.name, sg.db_username)
+cgen.write_credentials_file(replica_path, sg)
+logging.info(Created replica.my.cnf for %s, with username 
%s, sg.name, sg.db_username)
+else:
+logging.info('Missing replica.my.cnf for user %s despite 
grants present in db', sg.name)
+logging.info('Completed createdb-users run')
+time.sleep(args.delay)

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ifb81756974d2cfc83520dcbf232e005b619d9eef
Gerrit-PatchSet: 2
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Yuvipanda yuvipa...@wikimedia.org
Gerrit-Reviewer: Yuvipanda yuvipa...@wikimedia.org
Gerrit-Reviewer: jenkins-bot 

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