diff --git a/osclib/select_command.py b/osclib/select_command.py index be298da1..35f3671a 100644 --- a/osclib/select_command.py +++ b/osclib/select_command.py @@ -63,9 +63,9 @@ class SelectCommand(object): supersede = False staged_requests = { - self.api.packages_staged[package]['rq_id']: package for package in self.api.packages_staged + int(self.api.packages_staged[package]['rq_id']): package for package in self.api.packages_staged } - if self._package(request) in staged_requests: + if request in staged_requests: supersede = self._supersede(request) if request not in staged_requests and not supersede: diff --git a/osclib/stagingapi.py b/osclib/stagingapi.py index eeca7194..f8d73671 100644 --- a/osclib/stagingapi.py +++ b/osclib/stagingapi.py @@ -291,23 +291,12 @@ class StagingAPI(object): :param destination_project: Destination project """ - # Get the relevant information about source - meta = self.get_prj_pseudometa(source_project) - found = False - for req in meta['requests']: - if int(req['id']) == int(req_id): - found = True - break - if not found: - return None + if not self.rm_from_prj(source_project, request_id=req_id, + msg='Moved to {}'.format(destination_project)): + return False # Copy the package - self.rq_to_prj(req_id, destination_project) - # Delete the old one - self.rm_from_prj(source_project, request_id=req_id, - msg='Moved to {}'.format(destination_project)) - - return True + return self.rq_to_prj(req_id, destination_project) def get_staging_projects(self): """ @@ -677,7 +666,7 @@ class StagingAPI(object): package = self.get_package_for_request_id(project, request_id) if not package or not request_id: print('no package or no request_id') - return + return False orig_project = project if self._supersede: @@ -689,6 +678,7 @@ class StagingAPI(object): # Deleting the main package removes local links as well self.delete_request(self.project, project, request_id) + return True def delete_request(self, project, stage, request): requestxml = f""