from actions import *
class Transaction(object):
- action_classes = [
- ActionInstall,
- ActionUpdate,
- ActionRemove,
- ActionCleanup,
- ActionReinstall,
- ActionDowngrade,
- ActionChange,
- ]
+ action_classes = {
+ "install" : [ActionScriptPreIn, ActionInstall, ActionScriptPostIn, ActionScriptPostTransIn],
+ "reinstall" : [ActionScriptPreIn, ActionInstall, ActionScriptPostIn, ActionScriptPostTransIn],
+ "remove" : [ActionScriptPreUn, ActionRemove, ActionScriptPostUn, ActionScriptPostTransUn],
+ "update" : [ActionScriptPreUp, ActionUpdate, ActionScriptPostUp, ActionScriptPostTransUp],
+ "cleanup" : [ActionCleanup,],
+ "downgrade" : [ActionScriptPreUp, ActionDowngrade, ActionScriptPostUp, ActionScriptPostTransUp],
+ "change" : [ActionChange,],
+ }
def __init__(self, pakfire):
self.pakfire = pakfire
if not steps:
return
+ actions = []
+ actions_post = []
+
for step in steps:
- action = step.get_type()
+ action_name = step.get_type()
pkg = packages.SolvPackage(pakfire, step.get_solvable())
- for action_cls in cls.action_classes:
- if action_cls.type == action:
- action = action_cls(pakfire, pkg)
+ try:
+ classes = transaction.action_classes[action_name]
+ except KeyError:
+ raise Exception, "Unknown action required: %s" % action_name
+
+ for action_cls in classes:
+ action = action_cls(pakfire, pkg)
+ assert isinstance(action, Action), action
- if not isinstance(action, Action):
- raise Exception, "Unknown action required: %s" % action
+ if isinstance(action, ActionScriptPostTrans):
+ actions_post.append(action)
+ else:
+ actions.append(action)
- transaction.actions.append(action)
+ transaction.actions += actions + actions_post
return transaction
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-08-03 13:36+0200\n"
+"POT-Creation-Date: 2011-08-03 14:24+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../pakfire/actions.py:74 ../pakfire/actions.py:131
+#: ../pakfire/actions.py:100 ../pakfire/actions.py:157
msgid "Installing"
msgstr ""
-#: ../pakfire/actions.py:84
+#: ../pakfire/actions.py:110
msgid "Updating"
msgstr ""
-#: ../pakfire/actions.py:98
+#: ../pakfire/actions.py:124
msgid "Removing"
msgstr ""
#. Cleaning up leftover files and stuff.
-#: ../pakfire/actions.py:116
+#: ../pakfire/actions.py:142
msgid "Cleanup"
msgstr ""
-#: ../pakfire/actions.py:141
+#: ../pakfire/actions.py:167
msgid "Downgrading"
msgstr ""
msgid "Check the system for any errors."
msgstr ""
-#: ../pakfire/cli.py:247 ../pakfire/transaction.py:165
+#: ../pakfire/cli.py:247 ../pakfire/transaction.py:175
msgid "Repository"
msgstr ""
msgid "Name"
msgstr ""
-#: ../pakfire/packages/base.py:71 ../pakfire/transaction.py:164
+#: ../pakfire/packages/base.py:71 ../pakfire/transaction.py:174
msgid "Arch"
msgstr ""
-#: ../pakfire/packages/base.py:72 ../pakfire/transaction.py:164
+#: ../pakfire/packages/base.py:72 ../pakfire/transaction.py:174
msgid "Version"
msgstr ""
msgid "Release"
msgstr ""
-#: ../pakfire/packages/base.py:74 ../pakfire/transaction.py:165
+#: ../pakfire/packages/base.py:74 ../pakfire/transaction.py:175
msgid "Size"
msgstr ""
msgid " Solutions:"
msgstr ""
-#: ../pakfire/transaction.py:99
+#: ../pakfire/transaction.py:109
msgid "Downloading packages:"
msgstr ""
-#: ../pakfire/transaction.py:164
+#: ../pakfire/transaction.py:174
msgid "Package"
msgstr ""
-#: ../pakfire/transaction.py:169
+#: ../pakfire/transaction.py:179
msgid "Installing:"
msgstr ""
-#: ../pakfire/transaction.py:170
+#: ../pakfire/transaction.py:180
msgid "Reinstalling:"
msgstr ""
-#: ../pakfire/transaction.py:171
+#: ../pakfire/transaction.py:181
msgid "Updating:"
msgstr ""
-#: ../pakfire/transaction.py:172
+#: ../pakfire/transaction.py:182
msgid "Downgrading:"
msgstr ""
-#: ../pakfire/transaction.py:173
+#: ../pakfire/transaction.py:183
msgid "Removing:"
msgstr ""
-#: ../pakfire/transaction.py:179
+#: ../pakfire/transaction.py:189
msgid "Transaction Summary"
msgstr ""
-#: ../pakfire/transaction.py:186
+#: ../pakfire/transaction.py:196
msgid "package"
msgstr ""
-#: ../pakfire/transaction.py:192
+#: ../pakfire/transaction.py:202
#, python-format
msgid "Total download size: %s"
msgstr ""
-#: ../pakfire/transaction.py:196
+#: ../pakfire/transaction.py:206
#, python-format
msgid "Installed size: %s"
msgstr ""
-#: ../pakfire/transaction.py:198
+#: ../pakfire/transaction.py:208
#, python-format
msgid "Freed size: %s"
msgstr ""
-#: ../pakfire/transaction.py:207
+#: ../pakfire/transaction.py:219
msgid "Is this okay?"
msgstr ""
-#: ../pakfire/transaction.py:213
+#: ../pakfire/transaction.py:225
msgid "Running transaction"
msgstr ""