diff --git a/osclib/select_command.py b/osclib/select_command.py index 4fd0cce4..f99bee02 100644 --- a/osclib/select_command.py +++ b/osclib/select_command.py @@ -111,6 +111,7 @@ class SelectCommand(object): # If the project is not frozen enough yet freeze it if not self.api.prj_frozen_enough(target_project): print('Freeze the prj first') + return False # FreezeCommand(self.api).perform(target_project) self.target_project = target_project diff --git a/osclib/stagingapi.py b/osclib/stagingapi.py index 55311abd..e1193416 100644 --- a/osclib/stagingapi.py +++ b/osclib/stagingapi.py @@ -467,6 +467,11 @@ class StagingAPI(object): self._remove_package_from_prj_pseudometa(project, package) subprj = self.map_ring_package_to_subject(project, package) delete_package(self.apiurl, subprj, package, force=True, msg=msg) + + for sub_prj, sub_pkg in self.get_sub_packages(package): + sub_prj = self.map_ring_package_to_subject(project, sub_pkg) + delete_package(self.apiurl, sub_prj, sub_pkg, force=True, msg=msg) + self.set_review(request_id, project, state=review, msg=msg) def create_package_container(self, project, package, disable_build=False): @@ -896,6 +901,11 @@ class StagingAPI(object): sub_prj = self.map_ring_package_to_subject(project, sub_pkg) self.create_and_wipe_package(sub_prj, sub_pkg) + # create a link so unselect can find it + root = ET.Element('link', package=tar_pkg, project=project) + url = self.makeurl(['source', sub_prj, sub_pkg, '_link']) + http_PUT(url, data=ET.tostring(root)) + return tar_pkg def submit_to_prj(self, act, project):