コード例 #1
0
ファイル: version.py プロジェクト: liudger/dpa-pipe
    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)
            )
コード例 #2
0
ファイル: create.py プロジェクト: liudger/dpa-pipe
    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))
コード例 #3
0
ファイル: create.py プロジェクト: liudger/dpa-pipe
    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))
コード例 #4
0
ファイル: create.py プロジェクト: chippey/dpa-pipe
    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))
コード例 #5
0
ファイル: update.py プロジェクト: DarkRoseAM/dpa-pipe
    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"
コード例 #6
0
ファイル: create.py プロジェクト: liudger/dpa-pipe
    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))