181
181
def _get_binary_packages(ticket, request_parameters):
182
182
# Start with the set of golden binary packages
183
package_list = ticket.get_binaries()
183
package_list = set(ticket.get_binaries())
185
185
# Extract the list of added packages from the ticket request
186
added_list = request_parameters.get('added_binaries', '')
188
for package_name in added_list.split(','):
189
if package_name not in package_list:
190
# Only add packages not already in the global list
191
package_list.append(package_name)
187
package_list = package_list | set(
188
request_parameters.get('added_binaries', None).split(','))
189
except AttributeError:
190
# Expected when added_binaries is None.
193
193
# Finally remove the list of removed binaries from the ticket request
194
removed_list = request_parameters.get('removed_binaries', '')
196
for package_name in removed_list.split(','):
198
package_list.remove(package_name)
200
# This is ok, multiple queued tickets could be trying
201
# to remove the same binary.
202
logger.info('Package to remove not found: '
203
'{}'.format(package_list))
196
request_parameters.get('removed_binaries', None).split(','))
197
# Log a warning if any package in the removed_binaries is not in the
198
# package_list. This is not an error because multiple queued tickets
199
# may attempt to remove the same package. However, This could be an
200
# indicator of a mis-typed package name.
201
diff_list = removed_list - package_list
203
logger.warning('Package(s) to remove not found: '
204
'{}'.format(list(diff_list)))
205
package_list = package_list - removed_list
207
except AttributeError:
208
# Expected when removed_binaries is None.
211
return list(package_list)
208
214
def _handle_image_builder(args):
245
251
url = '%s/api/v1/ppa_copy/' % config['master']['ppa_assigner_url']
247
253
request_parameters = config['master']['request_parameters']
248
packages = request_parameters.get('added_binaries', '')
250
packages = packages.split(',')
255
packages = request_parameters.get('added_binaries', None).split(',')
256
except AttributeError:
257
# Expected when added_binaries is None.
253
261
'series': request_parameters['series'],