Merge "Add dryrun flag to welcome_message.py"
diff --git a/jeepyb/cmd/notify_impact.py b/jeepyb/cmd/notify_impact.py
index 2214ffb..7038c8f 100644
--- a/jeepyb/cmd/notify_impact.py
+++ b/jeepyb/cmd/notify_impact.py
@@ -91,7 +91,7 @@
'but I am in dry run mode' % subscriber)
-def create_bug(git_log, args, lp_project, subscribers):
+def create_bug(git_log, args, lp_project, config):
"""Create a bug for a change.
Create a launchpad bug in lp_project, titled with the first line of
@@ -127,23 +127,22 @@
# If the author of the merging patch matches our configured
# subscriber lists, then subscribe the configured victims.
- for email_address in subscribers.get('author_map', {}):
+ for email_address in config.get('author_map', {}):
email_re = re.compile('^Author:.*%s.*' % email_address)
for line in bug_descr.split('\n'):
m = email_re.match(line)
if m:
- author_class = subscribers['author_map'][email_address]
+ author_class = config['author_map'][email_address]
if author_class:
- subscribers = \
- subscribers.get('subscriber_map', {}).get(author_class, [])
- for subscriber in subscribers:
+ config = config.get('subscriber_map', {}).get(author_class, [])
+ for subscriber in config:
actions.subscribe(buginfo, subscriber)
return buglink
-def process_impact(git_log, args, subscribers):
+def process_impact(git_log, args, config):
"""Process DocImpact flag.
If the 'DocImpact' flag is present for a change that is merged,
@@ -154,7 +153,7 @@
"""
if args.impact.lower() == 'docimpact':
if args.hook == "change-merged":
- create_bug(git_log, args, 'openstack-manuals', subscribers)
+ create_bug(git_log, args, 'openstack-manuals', config)
return
email_content = EMAIL_TEMPLATE % (args.impact,
@@ -207,8 +206,8 @@
parser.add_argument('--impact', default=None)
parser.add_argument('--dest-address', default=None)
- # Automatic subscribers
- parser.add_argument('--auto-subscribers', type=argparse.FileType('r'),
+ # Automatic config
+ parser.add_argument('--config', type=argparse.FileType('r'),
default=None)
# Don't actually create the bug
@@ -241,16 +240,16 @@
# Where the entries in the author map are email addresses
# to match in author lines, and the subscriber map is a
# list of launchpad user ids.
- subscribers = {}
- if args.auto_subscribers:
- subscribers = yaml.load(args.auto_subscribers.read())
+ config = {}
+ if args.config:
+ config = yaml.load(args.config.read())
# Get git log
git_log = extract_git_log(args)
# Process impacts found in git log
if impacted(git_log, args.impact):
- process_impact(git_log, args, subscribers)
+ process_impact(git_log, args, config)
if __name__ == "__main__":
main()
diff --git a/jeepyb/cmd/update_bug.py b/jeepyb/cmd/update_bug.py
index f714e18..be24c46 100644
--- a/jeepyb/cmd/update_bug.py
+++ b/jeepyb/cmd/update_bug.py
@@ -316,11 +316,13 @@
parser.add_argument('--project', default=None)
parser.add_argument('--branch', default=None)
parser.add_argument('--commit', default=None)
+ parser.add_argument('--topic', default=None)
# change-merged
parser.add_argument('--submitter', default=None)
# patchset-created
parser.add_argument('--uploader', default=None)
parser.add_argument('--patchset', default=None)
+ parser.add_argument('--is-draft', default=None)
args = parser.parse_args()
diff --git a/jeepyb/projects.py b/jeepyb/projects.py
index 6d15549..090a891 100644
--- a/jeepyb/projects.py
+++ b/jeepyb/projects.py
@@ -35,8 +35,7 @@
try:
return registry[project_full_name]['launchpad']
except KeyError:
- return _hardcoded_git2lp(project_full_name)
- # return u.short_project_name(project_full_name)
+ return u.short_project_name(project_full_name)
def _is_no_launchpad(project_full_name, obj_type):
@@ -116,61 +115,3 @@
'stackforge/cookbook-openstack-orchestration',
'stackforge/openstack-chef-repo',
]
-
-
-def _hardcoded_git2lp(project_full_name):
- """Convert Git repo name to Launchpad project.
-
- This function should be removed when projects.yaml will be updated.
- To specify launchpad project name you just need add parameter 'lp' to your
- project declaration in projects.yaml
-
- Example:
- - project: some/project
- launchpad: awesomeproject
- description: Best project ever.
- """
-
- project_map = {
- 'openstack/api-site': 'openstack-api-site',
- 'openstack/compute-api': 'openstack-api-site',
- 'openstack/database-api': 'openstack-api-site',
- 'openstack/django_openstack_auth': 'django-openstack-auth',
- 'openstack/identity-api': 'openstack-api-site',
- 'openstack/image-api': 'openstack-api-site',
- 'openstack/netconn-api': 'openstack-api-site',
- 'openstack/object-api': 'openstack-api-site',
- 'openstack/oslo-incubator': 'oslo',
- 'openstack/python-quantumclient': 'python-neutronclient',
- 'openstack/quantum': 'neutron',
- 'openstack/savanna': 'savanna',
- 'openstack/savanna-dashboard': 'savanna',
- 'openstack/savanna-extra': 'savanna',
- 'openstack/savanna-image-elements': 'savanna',
- 'openstack/tripleo-heat-templates': 'tripleo',
- 'openstack/tripleo-image-elements': 'tripleo',
- 'openstack/tripleo-incubator': 'tripleo',
- 'openstack/volume-api': 'openstack-api-site',
- 'stackforge/cookbook-openstack-block-storage': 'openstack-chef',
- 'stackforge/cookbook-openstack-common': 'openstack-chef',
- 'stackforge/cookbook-openstack-compute': 'openstack-chef',
- 'stackforge/cookbook-openstack-dashboard': 'openstack-chef',
- 'stackforge/cookbook-openstack-identity': 'openstack-chef',
- 'stackforge/cookbook-openstack-image': 'openstack-chef',
- 'stackforge/cookbook-openstack-metering': 'openstack-chef',
- 'stackforge/cookbook-openstack-network': 'openstack-chef',
- 'stackforge/cookbook-openstack-object-storage': 'openstack-chef',
- 'stackforge/cookbook-openstack-ops-database': 'openstack-chef',
- 'stackforge/cookbook-openstack-ops-messaging': 'openstack-chef',
- 'stackforge/cookbook-openstack-orchestration': 'openstack-chef',
- 'stackforge/fuel-astute': 'fuel',
- 'stackforge/fuel-main': 'fuel',
- 'stackforge/fuel-ostf': 'fuel',
- 'stackforge/fuel-web': 'fuel',
- 'stackforge/openstack-chef-repo': 'openstack-chef',
- 'stackforge/puppet-openstack_dev_env': 'puppet-openstack',
- 'stackforge/puppet-quantum': 'puppet-neutron',
- 'stackforge/puppet-savanna': 'savanna',
- }
- return project_map.get(project_full_name,
- u.short_project_name(project_full_name))