Skip to content

Commit 08c067c

Browse files
committed
Improved logging for planemo.
Per @nsoranzo's suggestions (and rebased with @nsoranzo's fixes).
1 parent fca4183 commit 08c067c

File tree

2 files changed

+31
-9
lines changed

2 files changed

+31
-9
lines changed

planemo/commands/cmd_shed_update.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,29 +95,31 @@ def update(realized_repository):
9595
# Now that we've uploaded (or skipped appropriately), collect results.
9696
if upload_ret_code == 2:
9797
collected_data['results']['failures'] += 1
98+
message = "Failed to update repository '%s' as it does not exist on the %s." % (realized_repository.name, shed_context.label)
9899
repo_result.update({
99100
'errorType': 'FailedUpdate',
100-
'errorMessage': 'Failed to update repository as it does not exist in target ToolShed',
101+
'errorMessage': message,
101102
})
102103
collected_data['tests'].append(repo_result)
103-
error("Failed to update repository it does not exist "
104-
"in target ToolShed.")
104+
error(message)
105105
return upload_ret_code
106106

107107
exit = 0
108108
metadata_ok = True
109+
repository_destination_label = "repository '%s' on the %s" % (realized_repository.name, shed_context.label)
109110
if not skip_metadata:
110111
repo_id = shed.handle_force_create(realized_repository, ctx, shed_context, **kwds)
111112
# failing to create the repo, give up
112113
if repo_id is None:
113114
exit = shed.report_non_existent_repository(realized_repository)
114115
metadata_ok = False
115-
error("Failed to update metadata for repository %s." % realized_repository.name)
116+
error("Failed to update metadata for %s." % repository_destination_label)
116117
else:
117118
metadata_ok = realized_repository.update(ctx, shed_context, repo_id)
118-
info("Repository metadata updated successfully for repository %s." % realized_repository.name)
119+
if metadata_ok:
120+
info("Repository metadata updated successfully for %s." % repository_destination_label)
119121
else:
120-
info("Skipping metadata update for repository %s." % realized_repository.name)
122+
info("Skipping metadata update for %s" % repository_destination_label)
121123

122124
if metadata_ok and upload_ok:
123125
pass
@@ -128,15 +130,18 @@ def update(realized_repository):
128130
'errorMessage': 'Failed to update repository metadata',
129131
})
130132
if not skip_upload:
131-
error("Repo updated but metadata was not.")
133+
error("Repository contents updated but failed to update metadata for %s." % repository_destination_label)
132134
exit = exit or 1
133135
else:
134136
collected_data['results']['failures'] += 1
135137
repo_result.update({
136138
'errorType': 'FailedUpdate',
137139
'errorMessage': 'Failed to update repository',
138140
})
139-
error("Failed to update a repository.")
141+
if metadata_ok:
142+
error("Failed to update repository contents for %s." % repository_destination_label)
143+
else:
144+
error("Failed to update repository contents and metadata for %s." % repository_destination_label)
140145
exit = exit or 1
141146
collected_data['tests'].append(repo_result)
142147
return exit

planemo/shed/__init__.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,12 @@
8484
SHED_SHORT_NAMES = {
8585
"toolshed": "https://toolshed.g2.bx.psu.edu/",
8686
"testtoolshed": "https://testtoolshed.g2.bx.psu.edu/",
87-
"local": "http://localhost:9009/"
87+
"local": "http://localhost:9009/",
88+
}
89+
SHED_LABELS = {
90+
"toolshed": "main Tool Shed",
91+
"testtoolshed": "test Tool Shed",
92+
"local": "local Tool Shed",
8893
}
8994
REPO_TYPE_UNRESTRICTED = "unrestricted"
9095
REPO_TYPE_TOOL_DEP = "tool_dependency_definition"
@@ -172,7 +177,13 @@ def _shed_context_owner(self):
172177
return owner
173178

174179

180+
@property
181+
def _shed_context_label(self):
182+
return self.shed_config.get("label") or "tool shed"
183+
184+
175185
ShedContext.owner = _shed_context_owner
186+
ShedContext.label = _shed_context_label
176187

177188

178189
def shed_init(ctx, path, **kwds):
@@ -466,6 +477,12 @@ def _shed_config_and_username(ctx, **kwds):
466477
else:
467478
shed_config["url"] = shed_target
468479

480+
if "label" not in shed_config:
481+
if shed_target and shed_target in SHED_LABELS:
482+
shed_config["label"] = SHED_LABELS[shed_target]
483+
else:
484+
shed_config["label"] = "custom tool shed at %s" % shed_target
485+
469486
default_shed_username = global_config.get("shed_username", None)
470487
username = shed_config.get("username", default_shed_username)
471488

0 commit comments

Comments
 (0)