def _copy_subs(self): if self.interactive: print "\nCopying forward subscriptions:" ptask_version_spec = self.new_ptask_version exceptions = [] for sub in self.source_version.subscriptions: try: new_sub = ProductSubscription.create( ptask_version_spec, sub.product_version_spec, ) except ProductSubscriptionError as e: exceptions.append((sub, e)) else: print " " + Style.bright + \ str(sub.product_version_spec) + Style.normal if exceptions: msgs = [] for (sub, e) in exceptions: msgs.append(sub.product_version_spec + ": " + str(e)) raise ActionError( "Unable to copy forward some subscriptions:\n\n" + \ "\n".join(msgs) )
def execute(self): if self._existing_sub: try: ProductSubscription.delete(self.existing_sub.ptask_version_spec, self.existing_sub.product_version_spec) except ProductSubscriptionError as e: raise ActionError("Subscription removal failed: " + str(e)) else: if self.interactive: print "\nExisting subscription removed.\n" try: sub = ProductSubscription.create(self.ptask_version, self.product_version) except ProductSubscriptionError as e: raise ActionError("Subscription failed: " + str(e)) else: if self.interactive: print "New subscription created." if self._no_refresh: return # refresh the subscriptions on disk refresh_action_cls = ActionRegistry().get_action("refresh", "subs") if not refresh_action_cls: raise ActionError("Could not find sub refresh action.") try: refresh_action = refresh_action_cls(self.ptask) refresh_action.interactive = False refresh_action() except ActionError as e: raise ActionError("Failed to refresh subs on disk: " + str(e))
def _source_subs(self, source_ptask, dest_ptask): if self.interactive: print "\nSourcing subscriptions:" dest_ptask_version_spec = dest_ptask.latest_version.spec exceptions = [] for sub in source_ptask.latest_version.subscriptions: try: new_sub = ProductSubscription.create( dest_ptask_version_spec, sub.product_version_spec, ) except ProductSubscriptionError as e: exceptions.append((sub, e)) else: print " " + Style.bright + \ str(sub.product_version_spec) + Style.normal if exceptions: msgs = [] for (sub, e) in exceptions: msgs.append(sub.product_version_spec + ": " + str(e)) raise ActionError( "Unable to copy forward some subscriptions:\n\n" + \ "\n".join(msgs) ) else: # build the import directory... if self.interactive: print "\nRefreshing subscriptions." # refresh the subscriptions on disk refresh_action_cls = ActionRegistry().get_action('refresh', 'subs') if not refresh_action_cls: raise ActionError("Could not find sub refresh action.") try: refresh_action = refresh_action_cls(dest_ptask) refresh_action.interactive = False refresh_action() except ActionError as e: raise ActionError("Failed to refresh subs on disk: " + str(e))
def execute(self): for sub in self._subs: update_map = self._update_map[sub.id] cur_ver = update_map['old'] new_ver = update_map['new'] if not new_ver: continue # unsubscribe from the current version try: ProductSubscription.delete( self._ptask_version.spec, cur_ver.spec) except ProductSubscriptionError as e: raise ActionError("Unsubscribe failed: " + str(e)) # subscribe to the new version try: sub = ProductSubscription.create(self._ptask_version, new_ver) except ProductSubscriptionError as e: raise ActionError("Subscribe failed: " + str(e)) if not self._no_refresh: # refresh the subscriptions on disk refresh_action_cls = ActionRegistry().get_action('refresh', 'subs') if not refresh_action_cls: raise ActionError("Could not find sub refresh action.") try: refresh_action = refresh_action_cls(self.ptask) refresh_action.interactive = False refresh_action() except ActionError as e: raise ActionError("Failed to refresh subs on disk: " + str(e)) if self.interactive: print "\nUpdate complete!\n"
def execute(self): if self._existing_sub: try: ProductSubscription.delete( self.existing_sub.ptask_version_spec, self.existing_sub.product_version_spec, ) except ProductSubscriptionError as e: raise ActionError("Subscription removal failed: " + str(e)) else: if self.interactive: print "\nExisting subscription removed.\n" try: sub = ProductSubscription.create( self.ptask_version, self.product_version, ) except ProductSubscriptionError as e: raise ActionError("Subscription failed: " + str(e)) else: if self.interactive: print "New subscription created." if self._no_refresh: return # refresh the subscriptions on disk refresh_action_cls = ActionRegistry().get_action('refresh', 'subs') if not refresh_action_cls: raise ActionError("Could not find sub refresh action.") try: refresh_action = refresh_action_cls(self.ptask) refresh_action.interactive = False refresh_action() except ActionError as e: raise ActionError("Failed to refresh subs on disk: " + str(e))