import requests
from six.moves import configparser
+from lftools import config as lftools_cfg
from lftools.jenkins import JJB_INI
from lftools.jenkins.token import get_token
log.info(get_token(ctx.obj['jenkins_url'], change=True))
+@click.command()
+@click.argument('name')
+@click.argument('url')
+def init(name, url):
+ """Initialize jenkins_jobs.ini config for new server section."""
+ _require_jjb_ini()
+
+ config = configparser.ConfigParser()
+ config.read(JJB_INI)
+
+ token = get_token(url, True)
+ try:
+ config.add_section(name)
+ except configparser.DuplicateSectionError as e:
+ log.error(e)
+ sys.exit(1)
+
+ config.set(name, 'url', url)
+ config.set(name, 'user', lftools_cfg.get_setting('global', 'username'))
+ config.set(name, 'password', token)
+
+ with open(JJB_INI, 'w') as configfile:
+ config.write(configfile)
+
+
@click.command(name='print')
@click.pass_context
def print_token(ctx):
token.add_command(change)
+token.add_command(init)
token.add_command(print_token)
token.add_command(reset)
--- /dev/null
+---
+features:
+ - |
+ Add jenkins token init command to initialize a new server section in
+ jenkins_jobs.ini. This command uses credentials found in lftools.ini to
+ initialize the new Jenkins server configuration.
+
+ Usage: lftools jenkins token init [OPTIONS] NAME URL