]> git.ipfire.org Git - people/ms/pakfire.git/commitdiff
XMLRPC: Catch some connection problems.
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 14 Apr 2012 12:33:10 +0000 (14:33 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 14 Apr 2012 12:33:10 +0000 (14:33 +0200)
It would not be very useful to retry on 403, 404 and 500.

po/pakfire.pot
po/pakfire.pot.orig [new file with mode: 0644]
po/pakfire.pot.rej [new file with mode: 0644]
python/pakfire/cli.py
python/pakfire/client/base.py
python/pakfire/client/transport.py
python/pakfire/errors.py

index ef8e13529cf86276b615cc414c57f5c282fb56bc..10f4e2af1e9dc5a1b7fe34ebbb5e9aa54c890cf2 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-04-14 12:39+0200\n"
+"POT-Creation-Date: 2012-04-14 14:32+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"
@@ -424,11 +424,11 @@ msgstr ""
 msgid "Enabled"
 msgstr ""
 
-#: ../python/pakfire/cli.py:348 ../python/pakfire/cli.py:1042
+#: ../python/pakfire/cli.py:348 ../python/pakfire/cli.py:1050
 msgid "Priority"
 msgstr ""
 
-#: ../python/pakfire/cli.py:348 ../python/pakfire/cli.py:1087
+#: ../python/pakfire/cli.py:348 ../python/pakfire/cli.py:1095
 msgid "Packages"
 msgstr ""
 
@@ -458,7 +458,7 @@ msgid "Give name of at least one package to build."
 msgstr ""
 
 #: ../python/pakfire/cli.py:456 ../python/pakfire/cli.py:760
-#: ../python/pakfire/cli.py:845
+#: ../python/pakfire/cli.py:847
 msgid "Build the package for the given architecture."
 msgstr ""
 
@@ -574,288 +574,305 @@ msgstr ""
 msgid "Pakfire client command line interface."
 msgstr ""
 
-#: ../python/pakfire/cli.py:839
+#: ../python/pakfire/cli.py:841
 msgid "Build a package remotely."
 msgstr ""
 
-#: ../python/pakfire/cli.py:841
+#: ../python/pakfire/cli.py:843
 msgid "Give name of a package to build."
 msgstr ""
 
-#: ../python/pakfire/cli.py:850
+#: ../python/pakfire/cli.py:852
 msgid "Print some information about this host."
 msgstr ""
 
-#: ../python/pakfire/cli.py:856
+#: ../python/pakfire/cli.py:858
 msgid "Check the connection to the hub."
 msgstr ""
 
-#: ../python/pakfire/cli.py:861
+#: ../python/pakfire/cli.py:863
 msgid "Show information about build jobs."
 msgstr ""
 
-#: ../python/pakfire/cli.py:871
+#: ../python/pakfire/cli.py:873
 msgid "Show a list of all active jobs."
 msgstr ""
 
-#: ../python/pakfire/cli.py:876
+#: ../python/pakfire/cli.py:878
 msgid "Show a list of all recently finished of failed build jobs."
 msgstr ""
 
-#: ../python/pakfire/cli.py:881
+#: ../python/pakfire/cli.py:883
 msgid "Show details about given build job."
 msgstr ""
 
-#: ../python/pakfire/cli.py:882
+#: ../python/pakfire/cli.py:884
 msgid "The ID of the build job."
 msgstr ""
 
-#: ../python/pakfire/cli.py:887
+#: ../python/pakfire/cli.py:889
 msgid "Show information about builds."
 msgstr ""
 
-#: ../python/pakfire/cli.py:895
+#: ../python/pakfire/cli.py:897
 msgid "Show details about the given build."
 msgstr ""
 
-#: ../python/pakfire/cli.py:896
+#: ../python/pakfire/cli.py:898
 msgid "The ID of the build."
 msgstr ""
 
-#: ../python/pakfire/cli.py:944 ../python/pakfire/server.py:303
+#: ../python/pakfire/cli.py:903
+msgid "Test the connection to the hub."
+msgstr ""
+
+#: ../python/pakfire/cli.py:904
+msgid "Error code to test."
+msgstr ""
+
+#: ../python/pakfire/cli.py:952 ../python/pakfire/server.py:303
 msgid "Hostname"
 msgstr ""
 
-#: ../python/pakfire/cli.py:945
+#: ../python/pakfire/cli.py:953
 msgid "Pakfire hub"
 msgstr ""
 
-#: ../python/pakfire/cli.py:948
+#: ../python/pakfire/cli.py:956
 msgid "Username"
 msgstr ""
 
 #. Hardware information
-#: ../python/pakfire/cli.py:952 ../python/pakfire/server.py:307
+#: ../python/pakfire/cli.py:960 ../python/pakfire/server.py:307
 msgid "Hardware information"
 msgstr ""
 
-#: ../python/pakfire/cli.py:953 ../python/pakfire/server.py:308
+#: ../python/pakfire/cli.py:961 ../python/pakfire/server.py:308
 msgid "CPU model"
 msgstr ""
 
-#: ../python/pakfire/cli.py:954 ../python/pakfire/server.py:309
+#: ../python/pakfire/cli.py:962 ../python/pakfire/server.py:309
 msgid "Memory"
 msgstr ""
 
-#: ../python/pakfire/cli.py:956 ../python/pakfire/server.py:311
+#: ../python/pakfire/cli.py:964 ../python/pakfire/server.py:311
 msgid "Native arch"
 msgstr ""
 
-#: ../python/pakfire/cli.py:958
+#: ../python/pakfire/cli.py:966
 msgid "Default arch"
 msgstr ""
 
-#: ../python/pakfire/cli.py:960 ../python/pakfire/server.py:313
+#: ../python/pakfire/cli.py:968 ../python/pakfire/server.py:313
 msgid "Supported arches"
 msgstr ""
 
-#: ../python/pakfire/cli.py:973
+#: ../python/pakfire/cli.py:981
 msgid "Your IP address"
 msgstr ""
 
-#: ../python/pakfire/cli.py:978
+#: ../python/pakfire/cli.py:986
 msgid "You are authenticated to the build service:"
 msgstr ""
 
-#: ../python/pakfire/cli.py:984
+#: ../python/pakfire/cli.py:992
 msgid "User name"
 msgstr ""
 
-#: ../python/pakfire/cli.py:985
+#: ../python/pakfire/cli.py:993
 msgid "Real name"
 msgstr ""
 
-#: ../python/pakfire/cli.py:986
+#: ../python/pakfire/cli.py:994
 msgid "Email address"
 msgstr ""
 
-#: ../python/pakfire/cli.py:987
+#: ../python/pakfire/cli.py:995
 msgid "Registered"
 msgstr ""
 
-#: ../python/pakfire/cli.py:994
+#: ../python/pakfire/cli.py:1002
 msgid "You could not be authenticated to the build service."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1015
+#: ../python/pakfire/cli.py:1023
 msgid "No ongoing jobs found."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1018
+#: ../python/pakfire/cli.py:1026
 msgid "Active build jobs"
 msgstr ""
 
-#: ../python/pakfire/cli.py:1024
+#: ../python/pakfire/cli.py:1032
 msgid "No jobs found."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1027
+#: ../python/pakfire/cli.py:1035
 msgid "Recently processed build jobs"
 msgstr ""
 
-#: ../python/pakfire/cli.py:1034
+#: ../python/pakfire/cli.py:1042
 #, python-format
 msgid "A build with ID %s could not be found."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1037
+#: ../python/pakfire/cli.py:1045
 #, python-format
 msgid "Build: %(name)s"
 msgstr ""
 
-#: ../python/pakfire/cli.py:1041 ../python/pakfire/cli.py:1069
+#: ../python/pakfire/cli.py:1049 ../python/pakfire/cli.py:1077
 msgid "State"
 msgstr ""
 
-#: ../python/pakfire/cli.py:1045
+#: ../python/pakfire/cli.py:1053
 msgid "Jobs"
 msgstr ""
 
-#: ../python/pakfire/cli.py:1058
+#: ../python/pakfire/cli.py:1066
 #, python-format
 msgid "A job with ID %s could not be found."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1065
+#: ../python/pakfire/cli.py:1073
 #, python-format
 msgid "Job: %(name)s"
 msgstr ""
 
-#: ../python/pakfire/cli.py:1070 ../python/pakfire/packages/base.py:107
+#: ../python/pakfire/cli.py:1078 ../python/pakfire/packages/base.py:107
 #: ../python/pakfire/transaction.py:397
 msgid "Arch"
 msgstr ""
 
-#: ../python/pakfire/cli.py:1075 ../python/pakfire/packages/base.py:142
+#: ../python/pakfire/cli.py:1083 ../python/pakfire/packages/base.py:142
 msgid "Build host"
 msgstr ""
 
-#: ../python/pakfire/cli.py:1080
+#: ../python/pakfire/cli.py:1088
 msgid "Time created"
 msgstr ""
 
-#: ../python/pakfire/cli.py:1081
+#: ../python/pakfire/cli.py:1089
 msgid "Time started"
 msgstr ""
 
-#: ../python/pakfire/cli.py:1082
+#: ../python/pakfire/cli.py:1090
 msgid "Time finished"
 msgstr ""
 
-#: ../python/pakfire/cli.py:1083
+#: ../python/pakfire/cli.py:1091
 msgid "Duration"
 msgstr ""
 
-#: ../python/pakfire/cli.py:1106
+#: ../python/pakfire/cli.py:1119
+msgid "Invalid error code given."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1122
+#, python-format
+msgid "Reponse from the server: %s"
+msgstr ""
+
+#: ../python/pakfire/cli.py:1128
 msgid "Pakfire daemon command line interface."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1139
+#: ../python/pakfire/cli.py:1161
 msgid "Pakfire key command line interface."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1183 ../python/pakfire/cli.py:1193
+#: ../python/pakfire/cli.py:1205 ../python/pakfire/cli.py:1215
 msgid "Import a key from file."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1185
+#: ../python/pakfire/cli.py:1207
 msgid "The real name of the owner of this key."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1187
+#: ../python/pakfire/cli.py:1209
 msgid "The email address of the owner of this key."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1195
+#: ../python/pakfire/cli.py:1217
 msgid "Filename of that key to import."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1201
+#: ../python/pakfire/cli.py:1223
 msgid "Export a key to a file."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1203
+#: ../python/pakfire/cli.py:1225
 msgid "The ID of the key to export."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1205
+#: ../python/pakfire/cli.py:1227
 msgid "Write the key to this file."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1211
+#: ../python/pakfire/cli.py:1233
 msgid "Delete a key from the local keyring."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1213
+#: ../python/pakfire/cli.py:1235
 msgid "The ID of the key to delete."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1219
+#: ../python/pakfire/cli.py:1241
 msgid "List all imported keys."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1225
+#: ../python/pakfire/cli.py:1247
 msgid "Sign one or more packages."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1227
+#: ../python/pakfire/cli.py:1249
 msgid "Key that is used sign the package(s)."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1229
+#: ../python/pakfire/cli.py:1251
 msgid "Package(s) to sign."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1235
+#: ../python/pakfire/cli.py:1257
 msgid "Verify one or more packages."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1239
+#: ../python/pakfire/cli.py:1261
 msgid "Package(s) to verify."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1246
+#: ../python/pakfire/cli.py:1268
 msgid "Generating the key may take a moment..."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1294
+#: ../python/pakfire/cli.py:1316
 #, python-format
 msgid "Signing %s..."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1311
+#: ../python/pakfire/cli.py:1333
 #, python-format
 msgid "Verifying %s..."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1321
+#: ../python/pakfire/cli.py:1343
 msgid "This signature is valid."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1324
+#: ../python/pakfire/cli.py:1346
 msgid "Unknown key"
 msgstr ""
 
-#: ../python/pakfire/cli.py:1325
+#: ../python/pakfire/cli.py:1347
 msgid "Could not check if this signature is valid."
 msgstr ""
 
-#: ../python/pakfire/cli.py:1328 ../python/pakfire/keyring.py:96
+#: ../python/pakfire/cli.py:1350 ../python/pakfire/keyring.py:96
 #, python-format
 msgid "Created: %s"
 msgstr ""
 
-#: ../python/pakfire/cli.py:1332 ../python/pakfire/keyring.py:99
+#: ../python/pakfire/cli.py:1354 ../python/pakfire/keyring.py:99
 #, python-format
 msgid "Expires: %s"
 msgstr ""
@@ -864,11 +881,39 @@ msgstr ""
 msgid "Less than 2GB of free space. Cannot request a new job."
 msgstr ""
 
-#: ../python/pakfire/client/transport.py:85
+#. Log all XMLRPC protocol errors.
+#: ../python/pakfire/client/transport.py:78
+msgid "XMLRPC protocol error:"
+msgstr ""
+
+#: ../python/pakfire/client/transport.py:79
+#, python-format
+msgid "URL: %s"
+msgstr ""
+
+#: ../python/pakfire/client/transport.py:80
+msgid "  HTTP headers:"
+msgstr ""
+
+#: ../python/pakfire/client/transport.py:83
+#, python-format
+msgid "Error code: %s"
+msgstr ""
+
+#: ../python/pakfire/client/transport.py:84
+#, python-format
+msgid "Error message: %s"
+msgstr ""
+
+#: ../python/pakfire/client/transport.py:104
 #, python-format
 msgid "Trying again in %(timeout)s second(s). %(tries)s tries left."
 msgstr ""
 
+#: ../python/pakfire/client/transport.py:109
+msgid "Maximum number of tries was reached. Giving up."
+msgstr ""
+
 #: ../python/pakfire/compress.py:85 ../python/pakfire/compress.py:95
 #, python-format
 msgid "Given algorithm '%s' is not supported."
@@ -940,6 +985,24 @@ msgstr ""
 msgid "Transaction test was not successful"
 msgstr ""
 
+#: ../python/pakfire/errors.py:98
+msgid "Generic XMLRPC error."
+msgstr ""
+
+#: ../python/pakfire/errors.py:102
+msgid ""
+"You are forbidden to perform this action. Maybe you need to check your "
+"credentials."
+msgstr ""
+
+#: ../python/pakfire/errors.py:106
+msgid "Could not find the requested URL."
+msgstr ""
+
+#: ../python/pakfire/errors.py:110
+msgid "An unforseable problem on the XML-RPC transport connection occured."
+msgstr ""
+
 #: ../python/pakfire/i18n.py:54
 #, python-format
 msgid "%(commas)s and %(last)s"
diff --git a/po/pakfire.pot.orig b/po/pakfire.pot.orig
new file mode 100644 (file)
index 0000000..55c0227
--- /dev/null
@@ -0,0 +1,1571 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-04-06 22:37+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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../python/pakfire/actions.py:71
+#, python-format
+msgid "%s has got no signatures"
+msgstr ""
+
+#: ../python/pakfire/actions.py:77
+#, python-format
+msgid "%s has got no valid signatures"
+msgstr ""
+
+#: ../python/pakfire/actions.py:168
+#, python-format
+msgid "Cannot run scriptlet because no interpreter is available: %s"
+msgstr ""
+
+#: ../python/pakfire/actions.py:172
+#, python-format
+msgid "Cannot run scriptlet because the interpreter is not executable: %s"
+msgstr ""
+
+#: ../python/pakfire/actions.py:211
+#, python-format
+msgid ""
+"The scriptlet returned an error:\n"
+"%s"
+msgstr ""
+
+#: ../python/pakfire/actions.py:214
+#, python-format
+msgid "The scriptlet ran more than %s seconds and was killed."
+msgstr ""
+
+#: ../python/pakfire/actions.py:218
+#, python-format
+msgid ""
+"The scriptlet returned with an unhandled error:\n"
+"%s"
+msgstr ""
+
+#: ../python/pakfire/actions.py:272 ../python/pakfire/actions.py:310
+#: ../python/pakfire/actions.py:333 ../python/pakfire/actions.py:356
+#: ../python/pakfire/actions.py:373 ../python/pakfire/actions.py:392
+#, python-format
+msgid "Running transaction test for %s"
+msgstr ""
+
+#: ../python/pakfire/actions.py:281 ../python/pakfire/actions.py:385
+msgid "Installing"
+msgstr ""
+
+#: ../python/pakfire/actions.py:319
+msgid "Updating"
+msgstr ""
+
+#: ../python/pakfire/actions.py:339
+msgid "Removing"
+msgstr ""
+
+#. Cleaning up leftover files and stuff.
+#: ../python/pakfire/actions.py:363
+msgid "Cleanup"
+msgstr ""
+
+#: ../python/pakfire/actions.py:401
+msgid "Downgrading"
+msgstr ""
+
+#: ../python/pakfire/base.py:315
+msgid "Local install repository"
+msgstr ""
+
+#: ../python/pakfire/base.py:372
+#, python-format
+msgid "Could not find any installed package providing \"%s\"."
+msgstr ""
+
+#: ../python/pakfire/base.py:378
+#, python-format
+msgid "Multiple reinstall candidates for \"%(pattern)s\": %(pkgs)s"
+msgstr ""
+
+#: ../python/pakfire/base.py:382 ../python/pakfire/base.py:450
+#: ../python/pakfire/base.py:487 ../python/pakfire/base.py:546
+#: ../python/pakfire/base.py:567 ../python/pakfire/transaction.py:354
+msgid "Nothing to do"
+msgstr ""
+
+#: ../python/pakfire/base.py:407
+#, python-format
+msgid "Could not find package %s in a remote repository."
+msgstr ""
+
+#: ../python/pakfire/base.py:479
+#, python-format
+msgid "Excluding %s."
+msgstr ""
+
+#: ../python/pakfire/base.py:531
+#, python-format
+msgid "\"%s\" package does not seem to be installed."
+msgstr ""
+
+#: ../python/pakfire/base.py:681
+msgid "Build command has failed."
+msgstr ""
+
+#: ../python/pakfire/base.py:716
+msgid "New repository"
+msgstr ""
+
+#: ../python/pakfire/base.py:752
+msgid "Everything is fine."
+msgstr ""
+
+#: ../python/pakfire/builder.py:144
+msgid "You have not set the distribution for which you want to build."
+msgstr ""
+
+#: ../python/pakfire/builder.py:145
+msgid "Please do so in builder.conf or on the CLI."
+msgstr ""
+
+#: ../python/pakfire/builder.py:146
+msgid "Distribution configuration is missing."
+msgstr ""
+
+#: ../python/pakfire/builder.py:160
+#, python-format
+msgid "Cannot build for %s on this host."
+msgstr ""
+
+#. Log the package information.
+#: ../python/pakfire/builder.py:190
+msgid "Package information:"
+msgstr ""
+
+#. Install all packages.
+#: ../python/pakfire/builder.py:410
+msgid "Install packages needed for build..."
+msgstr ""
+
+#: ../python/pakfire/builder.py:415
+msgid "Extracting"
+msgstr ""
+
+#: ../python/pakfire/builder.py:715
+msgid "You cannot run a build when no package was given."
+msgstr ""
+
+#: ../python/pakfire/builder.py:720
+#, python-format
+msgid "Could not find makefile in build root: %s"
+msgstr ""
+
+#: ../python/pakfire/builder.py:745
+msgid "Build failed."
+msgstr ""
+
+#: ../python/pakfire/builder.py:747
+msgid "The build command failed. See logfile for details."
+msgstr ""
+
+#: ../python/pakfire/builder.py:761
+msgid "Running installation test..."
+msgstr ""
+
+#: ../python/pakfire/builder.py:767
+msgid "Installation test succeeded."
+msgstr ""
+
+#. Create a progressbar.
+#: ../python/pakfire/builder.py:804
+msgid "Signing packages..."
+msgstr ""
+
+#: ../python/pakfire/builder.py:838
+msgid "Dumping package information:"
+msgstr ""
+
+#. Walk through the whole tree and collect all files
+#. that are on the same disk (not crossing mountpoints).
+#: ../python/pakfire/builder.py:868
+msgid "Creating filelist..."
+msgstr ""
+
+#. Create a nice progressbar.
+#: ../python/pakfire/builder.py:887
+msgid "Compressing files..."
+msgstr ""
+
+#: ../python/pakfire/builder.py:906
+#, python-format
+msgid "Cache file was successfully created at %s."
+msgstr ""
+
+#: ../python/pakfire/builder.py:907
+#, python-format
+msgid "  Containing %(files)s files, it has a size of %(size)s."
+msgstr ""
+
+#. Make a nice progress bar as always.
+#: ../python/pakfire/builder.py:918
+msgid "Extracting files..."
+msgstr ""
+
+#. Update all packages.
+#: ../python/pakfire/builder.py:938
+msgid "Updating packages from cache..."
+msgstr ""
+
+#. Package the result.
+#. Make all these little package from the build environment.
+#: ../python/pakfire/builder.py:1076
+msgid "Creating packages:"
+msgstr ""
+
+#. Execute the buildscript of this stage.
+#: ../python/pakfire/builder.py:1090
+#, python-format
+msgid "Running stage %s:"
+msgstr ""
+
+#: ../python/pakfire/builder.py:1108
+#, python-format
+msgid "Could not remove static libraries: %s"
+msgstr ""
+
+#: ../python/pakfire/builder.py:1114
+msgid "Compressing man pages did not complete successfully."
+msgstr ""
+
+#: ../python/pakfire/builder.py:1134
+msgid "Extracting debuginfo did not complete with success. Aborting build."
+msgstr ""
+
+#: ../python/pakfire/cli.py:50
+msgid "Pakfire command line interface."
+msgstr ""
+
+#: ../python/pakfire/cli.py:57
+msgid "The path where pakfire should operate in."
+msgstr ""
+
+#: ../python/pakfire/cli.py:129
+msgid "Enable verbose output."
+msgstr ""
+
+#: ../python/pakfire/cli.py:132
+msgid "Path to a configuration file to load."
+msgstr ""
+
+#: ../python/pakfire/cli.py:136
+msgid "Disable a repository temporarily."
+msgstr ""
+
+#: ../python/pakfire/cli.py:139
+msgid "Enable a repository temporarily."
+msgstr ""
+
+#: ../python/pakfire/cli.py:143
+msgid "Run pakfire in offline mode."
+msgstr ""
+
+#: ../python/pakfire/cli.py:148
+msgid "Install one or more packages to the system."
+msgstr ""
+
+#: ../python/pakfire/cli.py:150
+msgid "Give name of at least one package to install."
+msgstr ""
+
+#: ../python/pakfire/cli.py:156
+msgid "Reinstall one or more packages."
+msgstr ""
+
+#: ../python/pakfire/cli.py:158
+msgid "Give name of at least one package to reinstall."
+msgstr ""
+
+#: ../python/pakfire/cli.py:164
+msgid "Remove one or more packages from the system."
+msgstr ""
+
+#: ../python/pakfire/cli.py:166
+msgid "Give name of at least one package to remove."
+msgstr ""
+
+#: ../python/pakfire/cli.py:172
+msgid "Give a name of a package to update or leave emtpy for all."
+msgstr ""
+
+#: ../python/pakfire/cli.py:174
+msgid "Exclude package from update."
+msgstr ""
+
+#: ../python/pakfire/cli.py:176 ../python/pakfire/cli.py:201
+msgid "Allow changing the vendor of packages."
+msgstr ""
+
+#: ../python/pakfire/cli.py:178 ../python/pakfire/cli.py:203
+msgid "Allow changing the architecture of packages."
+msgstr ""
+
+#: ../python/pakfire/cli.py:183
+msgid "Update the whole system or one specific package."
+msgstr ""
+
+#: ../python/pakfire/cli.py:190
+msgid "Check, if there are any updates available."
+msgstr ""
+
+#: ../python/pakfire/cli.py:197
+msgid "Downgrade one or more packages."
+msgstr ""
+
+#: ../python/pakfire/cli.py:199
+msgid "Give a name of a package to downgrade."
+msgstr ""
+
+#: ../python/pakfire/cli.py:209
+msgid "Print some information about the given package(s)."
+msgstr ""
+
+#: ../python/pakfire/cli.py:211
+msgid "Give at least the name of one package."
+msgstr ""
+
+#: ../python/pakfire/cli.py:217
+msgid "Search for a given pattern."
+msgstr ""
+
+#: ../python/pakfire/cli.py:219
+msgid "A pattern to search for."
+msgstr ""
+
+#: ../python/pakfire/cli.py:225
+msgid "Get a list of packages that provide a given file or feature."
+msgstr ""
+
+#: ../python/pakfire/cli.py:227
+msgid "File or feature to search for."
+msgstr ""
+
+#: ../python/pakfire/cli.py:233
+msgid "Get list of packages that belong to the given group."
+msgstr ""
+
+#: ../python/pakfire/cli.py:235
+msgid "Group name to search for."
+msgstr ""
+
+#: ../python/pakfire/cli.py:241
+msgid "Install all packages that belong to the given group."
+msgstr ""
+
+#: ../python/pakfire/cli.py:243
+msgid "Group name."
+msgstr ""
+
+#: ../python/pakfire/cli.py:249
+msgid "List all currently enabled repositories."
+msgstr ""
+
+#: ../python/pakfire/cli.py:253
+msgid "Cleanup commands."
+msgstr ""
+
+#: ../python/pakfire/cli.py:261
+msgid "Cleanup all temporary files."
+msgstr ""
+
+#: ../python/pakfire/cli.py:267
+msgid "Check the system for any errors."
+msgstr ""
+
+#: ../python/pakfire/cli.py:273
+msgid "Check the dependencies for a particular package."
+msgstr ""
+
+#: ../python/pakfire/cli.py:275
+msgid "Give name of at least one package to check."
+msgstr ""
+
+#: ../python/pakfire/cli.py:348 ../python/pakfire/transaction.py:363
+msgid "Repository"
+msgstr ""
+
+#: ../python/pakfire/cli.py:348
+msgid "Enabled"
+msgstr ""
+
+#: ../python/pakfire/cli.py:348 ../python/pakfire/cli.py:1042
+msgid "Priority"
+msgstr ""
+
+#: ../python/pakfire/cli.py:348 ../python/pakfire/cli.py:1087
+msgid "Packages"
+msgstr ""
+
+#: ../python/pakfire/cli.py:360
+msgid "Cleaning up everything..."
+msgstr ""
+
+#: ../python/pakfire/cli.py:381
+msgid "You cannot run pakfire-builder in a pakfire chroot."
+msgstr ""
+
+#: ../python/pakfire/cli.py:384 ../python/pakfire/cli.py:734
+msgid "Pakfire builder command line interface."
+msgstr ""
+
+#: ../python/pakfire/cli.py:444
+msgid "Update the package indexes."
+msgstr ""
+
+#: ../python/pakfire/cli.py:450 ../python/pakfire/cli.py:754
+msgid "Build one or more packages."
+msgstr ""
+
+#: ../python/pakfire/cli.py:452 ../python/pakfire/cli.py:643
+#: ../python/pakfire/cli.py:756
+msgid "Give name of at least one package to build."
+msgstr ""
+
+#: ../python/pakfire/cli.py:456 ../python/pakfire/cli.py:760
+#: ../python/pakfire/cli.py:845
+msgid "Build the package for the given architecture."
+msgstr ""
+
+#: ../python/pakfire/cli.py:458 ../python/pakfire/cli.py:488
+#: ../python/pakfire/cli.py:762
+msgid "Path were the output files should be copied to."
+msgstr ""
+
+#: ../python/pakfire/cli.py:460 ../python/pakfire/cli.py:477
+#: ../python/pakfire/cli.py:764
+msgid "Mode to run in. Is either 'release' or 'development' (default)."
+msgstr ""
+
+#: ../python/pakfire/cli.py:462
+msgid "Run a shell after a successful build."
+msgstr ""
+
+#: ../python/pakfire/cli.py:464
+msgid "Do not perform the install test."
+msgstr ""
+
+#: ../python/pakfire/cli.py:469
+msgid "Go into a shell."
+msgstr ""
+
+#: ../python/pakfire/cli.py:471
+msgid "Give name of a package."
+msgstr ""
+
+#: ../python/pakfire/cli.py:475
+msgid "Emulated architecture in the shell."
+msgstr ""
+
+#: ../python/pakfire/cli.py:482
+msgid "Generate a source package."
+msgstr ""
+
+#: ../python/pakfire/cli.py:484
+msgid "Give name(s) of a package(s)."
+msgstr ""
+
+#: ../python/pakfire/cli.py:493
+msgid "Create a build environment cache."
+msgstr ""
+
+#: ../python/pakfire/cli.py:503
+msgid "Create a new build environment cache."
+msgstr ""
+
+#: ../python/pakfire/cli.py:508
+msgid "Remove all cached build environments."
+msgstr ""
+
+#: ../python/pakfire/cli.py:588
+#, python-format
+msgid "Removing environment cache file: %s..."
+msgstr ""
+
+#: ../python/pakfire/cli.py:594
+#, python-format
+msgid "Could not remove file: %s"
+msgstr ""
+
+#: ../python/pakfire/cli.py:600
+msgid "Pakfire server command line interface."
+msgstr ""
+
+#: ../python/pakfire/cli.py:641
+msgid "Send a scrach build job to the server."
+msgstr ""
+
+#: ../python/pakfire/cli.py:645
+msgid "Limit build to only these architecture(s)."
+msgstr ""
+
+#: ../python/pakfire/cli.py:651
+msgid "Send a keepalive to the server."
+msgstr ""
+
+#: ../python/pakfire/cli.py:658
+msgid "Update all repositories."
+msgstr ""
+
+#: ../python/pakfire/cli.py:664
+msgid "Repository management commands."
+msgstr ""
+
+#: ../python/pakfire/cli.py:672
+msgid "Create a new repository index."
+msgstr ""
+
+#: ../python/pakfire/cli.py:674
+msgid "Path to the packages."
+msgstr ""
+
+#: ../python/pakfire/cli.py:676
+msgid "Path to input packages."
+msgstr ""
+
+#: ../python/pakfire/cli.py:678
+msgid "Key to sign the repository with."
+msgstr ""
+
+#: ../python/pakfire/cli.py:683
+msgid "Dump some information about this machine."
+msgstr ""
+
+#: ../python/pakfire/cli.py:766
+msgid "Do not verify build dependencies."
+msgstr ""
+
+#: ../python/pakfire/cli.py:799
+msgid "Pakfire client command line interface."
+msgstr ""
+
+#: ../python/pakfire/cli.py:839
+msgid "Build a package remotely."
+msgstr ""
+
+#: ../python/pakfire/cli.py:841
+msgid "Give name of a package to build."
+msgstr ""
+
+#: ../python/pakfire/cli.py:850
+msgid "Print some information about this host."
+msgstr ""
+
+#: ../python/pakfire/cli.py:856
+msgid "Check the connection to the hub."
+msgstr ""
+
+#: ../python/pakfire/cli.py:861
+msgid "Show information about build jobs."
+msgstr ""
+
+#: ../python/pakfire/cli.py:871
+msgid "Show a list of all active jobs."
+msgstr ""
+
+#: ../python/pakfire/cli.py:876
+msgid "Show a list of all recently finished of failed build jobs."
+msgstr ""
+
+#: ../python/pakfire/cli.py:881
+msgid "Show details about given build job."
+msgstr ""
+
+#: ../python/pakfire/cli.py:882
+msgid "The ID of the build job."
+msgstr ""
+
+#: ../python/pakfire/cli.py:887
+msgid "Show information about builds."
+msgstr ""
+
+#: ../python/pakfire/cli.py:895
+msgid "Show details about the given build."
+msgstr ""
+
+#: ../python/pakfire/cli.py:896
+msgid "The ID of the build."
+msgstr ""
+
+#: ../python/pakfire/cli.py:944 ../python/pakfire/server.py:303
+msgid "Hostname"
+msgstr ""
+
+#: ../python/pakfire/cli.py:945
+msgid "Pakfire hub"
+msgstr ""
+
+#: ../python/pakfire/cli.py:948
+msgid "Username"
+msgstr ""
+
+#. Hardware information
+#: ../python/pakfire/cli.py:952 ../python/pakfire/server.py:307
+msgid "Hardware information"
+msgstr ""
+
+#: ../python/pakfire/cli.py:953 ../python/pakfire/server.py:308
+msgid "CPU model"
+msgstr ""
+
+#: ../python/pakfire/cli.py:954 ../python/pakfire/server.py:309
+msgid "Memory"
+msgstr ""
+
+#: ../python/pakfire/cli.py:956 ../python/pakfire/server.py:311
+msgid "Native arch"
+msgstr ""
+
+#: ../python/pakfire/cli.py:958
+msgid "Default arch"
+msgstr ""
+
+#: ../python/pakfire/cli.py:960 ../python/pakfire/server.py:313
+msgid "Supported arches"
+msgstr ""
+
+#: ../python/pakfire/cli.py:973
+msgid "Your IP address"
+msgstr ""
+
+#: ../python/pakfire/cli.py:978
+msgid "You are authenticated to the build service:"
+msgstr ""
+
+#: ../python/pakfire/cli.py:984
+msgid "User name"
+msgstr ""
+
+#: ../python/pakfire/cli.py:985
+msgid "Real name"
+msgstr ""
+
+#: ../python/pakfire/cli.py:986
+msgid "Email address"
+msgstr ""
+
+#: ../python/pakfire/cli.py:987
+msgid "Registered"
+msgstr ""
+
+#: ../python/pakfire/cli.py:994
+msgid "You could not be authenticated to the build service."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1015
+msgid "No ongoing jobs found."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1018
+msgid "Active build jobs"
+msgstr ""
+
+#: ../python/pakfire/cli.py:1024
+msgid "No jobs found."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1027
+msgid "Recently processed build jobs"
+msgstr ""
+
+#: ../python/pakfire/cli.py:1034
+#, python-format
+msgid "A build with ID %s could not be found."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1037
+#, python-format
+msgid "Build: %(name)s"
+msgstr ""
+
+#: ../python/pakfire/cli.py:1041 ../python/pakfire/cli.py:1069
+msgid "State"
+msgstr ""
+
+#: ../python/pakfire/cli.py:1045
+msgid "Jobs"
+msgstr ""
+
+#: ../python/pakfire/cli.py:1058
+#, python-format
+msgid "A job with ID %s could not be found."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1065
+#, python-format
+msgid "Job: %(name)s"
+msgstr ""
+
+#: ../python/pakfire/cli.py:1070 ../python/pakfire/packages/base.py:107
+#: ../python/pakfire/transaction.py:362
+msgid "Arch"
+msgstr ""
+
+#: ../python/pakfire/cli.py:1075 ../python/pakfire/packages/base.py:142
+msgid "Build host"
+msgstr ""
+
+#: ../python/pakfire/cli.py:1080
+msgid "Time created"
+msgstr ""
+
+#: ../python/pakfire/cli.py:1081
+msgid "Time started"
+msgstr ""
+
+#: ../python/pakfire/cli.py:1082
+msgid "Time finished"
+msgstr ""
+
+#: ../python/pakfire/cli.py:1083
+msgid "Duration"
+msgstr ""
+
+#: ../python/pakfire/cli.py:1106
+msgid "Pakfire daemon command line interface."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1139
+msgid "Pakfire key command line interface."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1185
+msgid "Initialize the local keyring."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1191 ../python/pakfire/cli.py:1201
+msgid "Import a key from file."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1193
+msgid "The real name of the owner of this key."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1195
+msgid "The email address of the owner of this key."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1203
+msgid "Filename of that key to import."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1209
+msgid "Export a key to a file."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1211
+msgid "The ID of the key to export."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1213
+msgid "Write the key to this file."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1219
+msgid "Delete a key from the local keyring."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1221
+msgid "The ID of the key to delete."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1227
+msgid "List all imported keys."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1233
+msgid "Sign one or more packages."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1235
+msgid "Key that is used sign the package(s)."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1237
+msgid "Package(s) to sign."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1243
+msgid "Verify one or more packages."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1247
+msgid "Package(s) to verify."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1258
+msgid "Generating the key may take a moment..."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1306
+#, python-format
+msgid "Signing %s..."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1323
+#, python-format
+msgid "Verifying %s..."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1333
+msgid "This signature is valid."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1336
+msgid "Unknown key"
+msgstr ""
+
+#: ../python/pakfire/cli.py:1337
+msgid "Could not check if this signature is valid."
+msgstr ""
+
+#: ../python/pakfire/cli.py:1340 ../python/pakfire/keyring.py:114
+#, python-format
+msgid "Created: %s"
+msgstr ""
+
+#: ../python/pakfire/cli.py:1344 ../python/pakfire/keyring.py:117
+#, python-format
+msgid "Expires: %s"
+msgstr ""
+
+#: ../python/pakfire/client/builder.py:173
+msgid "Less than 2GB of free space. Cannot request a new job."
+msgstr ""
+
+#: ../python/pakfire/client/transport.py:85
+#, python-format
+msgid "Trying again in %(timeout)s second(s). %(tries)s tries left."
+msgstr ""
+
+#: ../python/pakfire/compress.py:85 ../python/pakfire/compress.py:95
+#, python-format
+msgid "Given algorithm '%s' is not supported."
+msgstr ""
+
+#: ../python/pakfire/config.py:191
+#, python-format
+msgid "Unhandled configuration update: %s"
+msgstr ""
+
+#: ../python/pakfire/config.py:205
+msgid "Configuration:"
+msgstr ""
+
+#: ../python/pakfire/config.py:207
+#, python-format
+msgid "Section: %s"
+msgstr ""
+
+#: ../python/pakfire/config.py:212
+msgid "No settings in this section."
+msgstr ""
+
+#: ../python/pakfire/config.py:214
+msgid "Loaded from files:"
+msgstr ""
+
+#: ../python/pakfire/downloader.py:155
+msgid "Downloading source files:"
+msgstr ""
+
+#: ../python/pakfire/downloader.py:158
+msgid "Cannot download source code in offline mode."
+msgstr ""
+
+#: ../python/pakfire/downloader.py:181
+#, python-format
+msgid "Downloaded empty file: %s"
+msgstr ""
+
+#: ../python/pakfire/errors.py:30
+msgid "An unhandled error occured."
+msgstr ""
+
+#: ../python/pakfire/errors.py:46
+msgid "Could not compress/decompress data."
+msgstr ""
+
+#: ../python/pakfire/errors.py:58
+msgid "One or more dependencies could not been resolved."
+msgstr ""
+
+#: ../python/pakfire/errors.py:61
+msgid "An error occured when pakfire tried to download files."
+msgstr ""
+
+#: ../python/pakfire/errors.py:74
+msgid ""
+"The requested action cannot be done on offline mode.\n"
+"Please connect your system to the network, remove --offline from the command "
+"line and try again."
+msgstr ""
+
+#: ../python/pakfire/errors.py:86
+msgid "Running pakfire-build in a pakfire container?"
+msgstr ""
+
+#: ../python/pakfire/errors.py:94 ../python/pakfire/transaction.py:433
+msgid "Transaction test was not successful"
+msgstr ""
+
+#: ../python/pakfire/i18n.py:54
+#, python-format
+msgid "%(commas)s and %(last)s"
+msgstr ""
+
+#: ../python/pakfire/keyring.py:86
+msgid "The local keyring is already initialized. Aborting."
+msgstr ""
+
+#: ../python/pakfire/keyring.py:89
+msgid "Initializing local keyring..."
+msgstr ""
+
+#: ../python/pakfire/keyring.py:102
+#, python-format
+msgid "Fingerprint: %s"
+msgstr ""
+
+#: ../python/pakfire/keyring.py:106
+#, python-format
+msgid "Subkey: %s"
+msgstr ""
+
+#: ../python/pakfire/keyring.py:108
+msgid "This key has expired!"
+msgstr ""
+
+#: ../python/pakfire/keyring.py:111
+msgid "This is a secret key."
+msgstr ""
+
+#: ../python/pakfire/keyring.py:119
+msgid "This key does not expire."
+msgstr ""
+
+#: ../python/pakfire/keyring.py:172
+#, python-format
+msgid "Generating new key for %(realname)s <%(email)s>..."
+msgstr ""
+
+#: ../python/pakfire/keyring.py:173
+msgid "This may take a while..."
+msgstr ""
+
+#: ../python/pakfire/keyring.py:192
+#, python-format
+msgid "Successfully import key %s."
+msgstr ""
+
+#: ../python/pakfire/keyring.py:212
+msgid "Host key:"
+msgstr ""
+
+#: ../python/pakfire/keyring.py:215
+msgid "No host key available."
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:99
+msgid "Name"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:110 ../python/pakfire/transaction.py:362
+msgid "Version"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:111
+msgid "Release"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:115 ../python/pakfire/transaction.py:363
+msgid "Size"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:119
+msgid "Repo"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:122
+msgid "Summary"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:123
+msgid "Groups"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:124
+msgid "URL"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:125
+msgid "License"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:128
+msgid "Description"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:135
+msgid "Maintainer"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:137
+msgid "Vendor"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:139
+msgid "UUID"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:140
+msgid "Build ID"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:141
+msgid "Build date"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:144
+msgid "Signatures"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:149
+msgid "Provides"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:154
+msgid "Pre-requires"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:159
+msgid "Requires"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:164
+msgid "Conflicts"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:169
+msgid "Obsoletes"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:177
+msgid "File"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:367
+msgid "Not set"
+msgstr ""
+
+#: ../python/pakfire/packages/base.py:528
+#, python-format
+msgid "Config file saved as %s."
+msgstr ""
+
+#: ../python/pakfire/packages/file.py:93
+#, python-format
+msgid "Could not extract file: /%(src)s - %(dst)s"
+msgstr ""
+
+#: ../python/pakfire/packages/file.py:159
+#, python-format
+msgid "Filename: %s"
+msgstr ""
+
+#: ../python/pakfire/packages/file.py:256
+#, python-format
+msgid "File in archive is missing in file metadata: %s. Skipping."
+msgstr ""
+
+#: ../python/pakfire/packages/file.py:312
+#, python-format
+msgid "Config file created as %s"
+msgstr ""
+
+#: ../python/pakfire/packages/file.py:326
+#, python-format
+msgid "Could not remove file: /%s"
+msgstr ""
+
+#: ../python/pakfire/packages/lexer.py:722
+#, python-format
+msgid "Template does not exist: %s"
+msgstr ""
+
+#: ../python/pakfire/packages/make.py:80
+msgid "Package name is undefined."
+msgstr ""
+
+#: ../python/pakfire/packages/make.py:83
+msgid "Package version is undefined."
+msgstr ""
+
+#: ../python/pakfire/packages/make.py:420
+#, python-format
+msgid "Searching for automatic dependencies for %s..."
+msgstr ""
+
+#: ../python/pakfire/packages/make.py:474
+#, python-format
+msgid "Regular experession is invalid and has been skipped: %s"
+msgstr ""
+
+#. Let the user know what has been done.
+#: ../python/pakfire/packages/make.py:490
+#, python-format
+msgid "Filter '%(pattern)s' filtered %(dep)s."
+msgstr ""
+
+#. Load progressbar.
+#: ../python/pakfire/packages/packager.py:380
+#: ../python/pakfire/packages/packager.py:668
+msgid "Packaging"
+msgstr ""
+
+#: ../python/pakfire/packages/packager.py:696
+#, python-format
+msgid "Building source package %s:"
+msgstr ""
+
+#: ../python/pakfire/repository/database.py:116
+msgid "The format of the database is not supported by this version of pakfire."
+msgstr ""
+
+#: ../python/pakfire/repository/database.py:224
+#, python-format
+msgid "Cannot use database with version greater than %s."
+msgstr ""
+
+#: ../python/pakfire/repository/database.py:226
+#, python-format
+msgid "Migrating database from format %(old)s to %(new)s."
+msgstr ""
+
+#. Create progress bar.
+#: ../python/pakfire/repository/local.py:102
+#: ../python/pakfire/repository/local.py:272
+#, python-format
+msgid "%s: Adding packages..."
+msgstr ""
+
+#. Make a nice progress bar.
+#: ../python/pakfire/repository/local.py:205
+msgid "Compressing database..."
+msgstr ""
+
+#: ../python/pakfire/repository/remote.py:122
+msgid "You cannot force to update metadata in offline mode."
+msgstr ""
+
+#: ../python/pakfire/repository/remote.py:147
+#, python-format
+msgid "No metadata available for repository %s. Cannot download any."
+msgstr ""
+
+#: ../python/pakfire/repository/remote.py:172
+#, python-format
+msgid "Could not update metadata for %s from any mirror server"
+msgstr ""
+
+#: ../python/pakfire/repository/remote.py:181
+msgid "The downloaded metadata was less recent than the current one."
+msgstr ""
+
+#: ../python/pakfire/repository/remote.py:220
+#, python-format
+msgid "Cannot download package database for %s in offline mode."
+msgstr ""
+
+#: ../python/pakfire/repository/remote.py:231
+#, python-format
+msgid "%s: package database"
+msgstr ""
+
+#: ../python/pakfire/repository/remote.py:305
+#, python-format
+msgid "Cannot download this file in offline mode: %s"
+msgstr ""
+
+#: ../python/pakfire/repository/remote.py:325
+msgid "The checksum of the downloaded file did not match."
+msgstr ""
+
+#: ../python/pakfire/repository/remote.py:326
+msgid "Trying an other mirror."
+msgstr ""
+
+#: ../python/pakfire/satsolver.py:230 ../python/pakfire/satsolver.py:256
+msgid "The solver returned one problem:"
+msgstr ""
+
+#. Ask the user if he or she want to modify the request. If not, just exit.
+#: ../python/pakfire/satsolver.py:272
+msgid "Do you want to manually alter the request?"
+msgstr ""
+
+#: ../python/pakfire/satsolver.py:275
+msgid "You can now try to satisfy the solver by modifying your request."
+msgstr ""
+
+#: ../python/pakfire/satsolver.py:280
+msgid "Which problem to you want to resolve?"
+msgstr ""
+
+#: ../python/pakfire/satsolver.py:282
+msgid "Press enter to try to re-solve the request."
+msgstr ""
+
+#: ../python/pakfire/satsolver.py:313
+#, python-format
+msgid "    Solution: %s"
+msgstr ""
+
+#: ../python/pakfire/satsolver.py:322
+msgid "    Solutions:"
+msgstr ""
+
+#: ../python/pakfire/server.py:279 ../python/pakfire/system.py:125
+msgid "Could not be determined"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:95
+#, python-format
+msgid "file %(name)s from %(pkg1)s conflicts with file from package %(pkg2)s"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:101
+#, python-format
+msgid "file %(name)s from %(pkg)s conflicts with files from %(pkgs)s"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:109
+#, python-format
+msgid ""
+"There is not enough space left on %(name)s. Need at least %(size)s to "
+"perform transaction."
+msgstr ""
+
+#: ../python/pakfire/transaction.py:295
+#, python-format
+msgid "Not enough space to download %s of packages."
+msgstr ""
+
+#: ../python/pakfire/transaction.py:298
+msgid "Downloading packages:"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:362
+msgid "Package"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:367
+msgid "Installing:"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:368
+msgid "Reinstalling:"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:369
+msgid "Updating:"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:370
+msgid "Downgrading:"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:371
+msgid "Removing:"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:377
+msgid "Transaction Summary"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:384
+msgid "package"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:390
+#, python-format
+msgid "Total download size: %s"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:394
+#, python-format
+msgid "Installed size: %s"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:397
+#, python-format
+msgid "Freed size: %s"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:408
+msgid "Is this okay?"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:414
+msgid "Running Transaction Test"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:426
+msgid "Transaction Test Succeeded"
+msgstr ""
+
+#. Make a nice progressbar.
+#: ../python/pakfire/transaction.py:459
+msgid "Verifying signatures..."
+msgstr ""
+
+#: ../python/pakfire/transaction.py:491
+#, python-format
+msgid "Found %s signature error(s)!"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:496
+msgid "Going on because we are running in permissive mode."
+msgstr ""
+
+#: ../python/pakfire/transaction.py:497
+msgid "This is dangerous!"
+msgstr ""
+
+#: ../python/pakfire/transaction.py:518
+msgid "Running transaction"
+msgstr ""
+
+#: ../python/pakfire/util.py:68
+#, python-format
+msgid "%s [y/N]"
+msgstr ""
+
+#: ../python/pakfire/util.py:260
+msgid "Killing orphans..."
+msgstr ""
+
+#: ../python/pakfire/util.py:267
+#, python-format
+msgid "Process ID %s is still running in chroot. Killing..."
+msgstr ""
+
+#: ../python/pakfire/util.py:279
+msgid "Waiting for processes to terminate..."
+msgstr ""
+
+#: ../python/src/problem.c:159
+#, c-format
+msgid "%s does not belong to a distupgrade repository"
+msgstr ""
+
+#: ../python/src/problem.c:166
+#, c-format
+msgid "%s has inferior architecture"
+msgstr ""
+
+#: ../python/src/problem.c:173
+#, c-format
+msgid "problem with installed package %s"
+msgstr ""
+
+#: ../python/src/problem.c:179
+#, c-format
+msgid "conflicting requests"
+msgstr ""
+
+#: ../python/src/problem.c:184
+#, c-format
+msgid "nothing provides requested %s"
+msgstr ""
+
+#: ../python/src/problem.c:190
+#, c-format
+msgid "some dependency problem"
+msgstr ""
+
+#: ../python/src/problem.c:195
+#, c-format
+msgid "package %s is not installable"
+msgstr ""
+
+#: ../python/src/problem.c:202
+#, c-format
+msgid "nothing provides %s needed by %s"
+msgstr ""
+
+#: ../python/src/problem.c:209
+#, c-format
+msgid "cannot install both %s and %s"
+msgstr ""
+
+#: ../python/src/problem.c:216
+#, c-format
+msgid "package %s conflicts with %s provided by %s"
+msgstr ""
+
+#: ../python/src/problem.c:224
+#, c-format
+msgid "package %s obsoletes %s provided by %s"
+msgstr ""
+
+#: ../python/src/problem.c:232
+#, c-format
+msgid "installed package %s obsoletes %s provided by %s"
+msgstr ""
+
+#: ../python/src/problem.c:240
+#, c-format
+msgid "package %s implicitely obsoletes %s provided by %s"
+msgstr ""
+
+#: ../python/src/problem.c:248
+#, c-format
+msgid "package %s requires %s, but none of the providers can be installed"
+msgstr ""
+
+#: ../python/src/problem.c:255
+#, c-format
+msgid "package %s conflicts with %s provided by itself"
+msgstr ""
+
+#: ../python/src/problem.c:264
+#, c-format
+msgid "bad rule type"
+msgstr ""
+
+#: ../python/src/solution.c:86
+#, c-format
+msgid "do not keep %s installed"
+msgstr ""
+
+#: ../python/src/solution.c:89
+#, c-format
+msgid "do not install a solvable %s"
+msgstr ""
+
+#: ../python/src/solution.c:92
+#, c-format
+msgid "do not install %s"
+msgstr ""
+
+#: ../python/src/solution.c:98
+#, c-format
+msgid "do not forbid installation of %s"
+msgstr ""
+
+#: ../python/src/solution.c:101
+#, c-format
+msgid "do not deinstall all solvables %s"
+msgstr ""
+
+#: ../python/src/solution.c:104
+#, c-format
+msgid "do not deinstall %s"
+msgstr ""
+
+#: ../python/src/solution.c:109
+#, c-format
+msgid "do not install most recent version of %s"
+msgstr ""
+
+#: ../python/src/solution.c:114
+#, c-format
+msgid "do not lock %s"
+msgstr ""
+
+#: ../python/src/solution.c:119
+#, c-format
+msgid "do something different"
+msgstr ""
+
+#: ../python/src/solution.c:126
+#, c-format
+msgid "keep %s despite the inferior architecture"
+msgstr ""
+
+#: ../python/src/solution.c:129
+#, c-format
+msgid "install %s despite the inferior architecture"
+msgstr ""
+
+#: ../python/src/solution.c:135
+#, c-format
+msgid "keep obsolete %s"
+msgstr ""
+
+#: ../python/src/solution.c:138
+#, c-format
+msgid "install %s from excluded repository"
+msgstr ""
+
+#: ../python/src/solution.c:150
+#, c-format
+msgid "allow downgrade of %s to %s"
+msgstr ""
+
+#: ../python/src/solution.c:154
+#, c-format
+msgid "allow architecture change of %s to %s"
+msgstr ""
+
+#: ../python/src/solution.c:159
+#, c-format
+msgid "allow vendor change from '%s' (%s) to '%s' (%s)"
+msgstr ""
+
+#: ../python/src/solution.c:163
+#, c-format
+msgid "allow vendor change from '%s' (%s) to no vendor (%s)"
+msgstr ""
+
+#: ../python/src/solution.c:169
+#, c-format
+msgid "allow replacement of %s with %s"
+msgstr ""
+
+#. XXX Maybe we can make a more beautiful message here?!
+#: ../tools/pakfire-multicall.py:25
+msgid ""
+"There has been an error when trying to import one or more of the modules, "
+"that are required to run Pakfire."
+msgstr ""
+
+#: ../tools/pakfire-multicall.py:27
+msgid "Please check your installation of Pakfire."
+msgstr ""
+
+#: ../tools/pakfire-multicall.py:29
+msgid "The error that lead to this:"
+msgstr ""
+
+#: ../tools/pakfire-multicall.py:70
+msgid "An error has occured when running Pakfire."
+msgstr ""
+
+#: ../tools/pakfire-multicall.py:73
+msgid "Error message:"
+msgstr ""
+
+#: ../tools/pakfire-multicall.py:80
+msgid "Further description:"
+msgstr ""
diff --git a/po/pakfire.pot.rej b/po/pakfire.pot.rej
new file mode 100644 (file)
index 0000000..8f93f64
--- /dev/null
@@ -0,0 +1,228 @@
+--- po/pakfire.pot
++++ po/pakfire.pot
+@@ -8,7 +8,7 @@
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2012-04-05 18:51+0200\n"
++"POT-Creation-Date: 2012-04-06 23:28+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"
+@@ -84,50 +84,50 @@
+ msgid "Downgrading"
+ msgstr ""
+-#: ../python/pakfire/base.py:316
++#: ../python/pakfire/base.py:315
+ msgid "Local install repository"
+ msgstr ""
+-#: ../python/pakfire/base.py:373
++#: ../python/pakfire/base.py:372
+ #, python-format
+ msgid "Could not find any installed package providing \"%s\"."
+ msgstr ""
+-#: ../python/pakfire/base.py:379
++#: ../python/pakfire/base.py:378
+ #, python-format
+ msgid "Multiple reinstall candidates for \"%(pattern)s\": %(pkgs)s"
+ msgstr ""
+-#: ../python/pakfire/base.py:383 ../python/pakfire/base.py:451
+-#: ../python/pakfire/base.py:488 ../python/pakfire/base.py:547
+-#: ../python/pakfire/base.py:568 ../python/pakfire/transaction.py:354
++#: ../python/pakfire/base.py:382 ../python/pakfire/base.py:450
++#: ../python/pakfire/base.py:487 ../python/pakfire/base.py:546
++#: ../python/pakfire/base.py:567 ../python/pakfire/transaction.py:354
+ msgid "Nothing to do"
+ msgstr ""
+-#: ../python/pakfire/base.py:408
++#: ../python/pakfire/base.py:407
+ #, python-format
+ msgid "Could not find package %s in a remote repository."
+ msgstr ""
+-#: ../python/pakfire/base.py:480
++#: ../python/pakfire/base.py:479
+ #, python-format
+ msgid "Excluding %s."
+ msgstr ""
+-#: ../python/pakfire/base.py:532
++#: ../python/pakfire/base.py:531
+ #, python-format
+ msgid "\"%s\" package does not seem to be installed."
+ msgstr ""
+-#: ../python/pakfire/base.py:682
++#: ../python/pakfire/base.py:681
+ msgid "Build command has failed."
+ msgstr ""
+-#: ../python/pakfire/base.py:717
++#: ../python/pakfire/base.py:716
+ msgid "New repository"
+ msgstr ""
+-#: ../python/pakfire/base.py:753
++#: ../python/pakfire/base.py:752
+ msgid "Everything is fine."
+ msgstr ""
+@@ -400,7 +400,7 @@
+ msgid "Give name of at least one package to check."
+ msgstr ""
+-#: ../python/pakfire/cli.py:348 ../python/pakfire/transaction.py:362
++#: ../python/pakfire/cli.py:348 ../python/pakfire/transaction.py:363
+ msgid "Repository"
+ msgstr ""
+@@ -716,7 +716,7 @@
+ msgstr ""
+ #: ../python/pakfire/cli.py:1070 ../python/pakfire/packages/base.py:107
+-#: ../python/pakfire/transaction.py:361
++#: ../python/pakfire/transaction.py:362
+ msgid "Arch"
+ msgstr ""
+@@ -924,11 +924,11 @@
+ msgid "Running pakfire-build in a pakfire container?"
+ msgstr ""
+-#: ../python/pakfire/errors.py:94 ../python/pakfire/transaction.py:432
++#: ../python/pakfire/errors.py:94 ../python/pakfire/transaction.py:433
+ msgid "Transaction test was not successful"
+ msgstr ""
+-#: ../python/pakfire/i18n.py:54
++#: ../python/pakfire/i18n.py:56
+ #, python-format
+ msgid "%(commas)s and %(last)s"
+ msgstr ""
+@@ -989,7 +989,7 @@
+ msgid "Name"
+ msgstr ""
+-#: ../python/pakfire/packages/base.py:110 ../python/pakfire/transaction.py:361
++#: ../python/pakfire/packages/base.py:110 ../python/pakfire/transaction.py:362
+ msgid "Version"
+ msgstr ""
+@@ -997,7 +997,7 @@
+ msgid "Release"
+ msgstr ""
+-#: ../python/pakfire/packages/base.py:115 ../python/pakfire/transaction.py:362
++#: ../python/pakfire/packages/base.py:115 ../python/pakfire/transaction.py:363
+ msgid "Size"
+ msgstr ""
+@@ -1274,84 +1274,84 @@
+ msgid "Downloading packages:"
+ msgstr ""
+-#: ../python/pakfire/transaction.py:361
++#: ../python/pakfire/transaction.py:362
+ msgid "Package"
+ msgstr ""
+-#: ../python/pakfire/transaction.py:366
++#: ../python/pakfire/transaction.py:367
+ msgid "Installing:"
+ msgstr ""
+-#: ../python/pakfire/transaction.py:367
++#: ../python/pakfire/transaction.py:368
+ msgid "Reinstalling:"
+ msgstr ""
+-#: ../python/pakfire/transaction.py:368
++#: ../python/pakfire/transaction.py:369
+ msgid "Updating:"
+ msgstr ""
+-#: ../python/pakfire/transaction.py:369
++#: ../python/pakfire/transaction.py:370
+ msgid "Downgrading:"
+ msgstr ""
+-#: ../python/pakfire/transaction.py:370
++#: ../python/pakfire/transaction.py:371
+ msgid "Removing:"
+ msgstr ""
+-#: ../python/pakfire/transaction.py:376
++#: ../python/pakfire/transaction.py:377
+ msgid "Transaction Summary"
+ msgstr ""
+-#: ../python/pakfire/transaction.py:383
++#: ../python/pakfire/transaction.py:384
+ msgid "package"
+ msgstr ""
+-#: ../python/pakfire/transaction.py:389
++#: ../python/pakfire/transaction.py:390
+ #, python-format
+ msgid "Total download size: %s"
+ msgstr ""
+-#: ../python/pakfire/transaction.py:393
++#: ../python/pakfire/transaction.py:394
+ #, python-format
+ msgid "Installed size: %s"
+ msgstr ""
+-#: ../python/pakfire/transaction.py:396
++#: ../python/pakfire/transaction.py:397
+ #, python-format
+ msgid "Freed size: %s"
+ msgstr ""
+-#: ../python/pakfire/transaction.py:407
++#: ../python/pakfire/transaction.py:408
+ msgid "Is this okay?"
+ msgstr ""
+-#: ../python/pakfire/transaction.py:413
++#: ../python/pakfire/transaction.py:414
+ msgid "Running Transaction Test"
+ msgstr ""
+-#: ../python/pakfire/transaction.py:425
++#: ../python/pakfire/transaction.py:426
+ msgid "Transaction Test Succeeded"
+ msgstr ""
+ #. Make a nice progressbar.
+-#: ../python/pakfire/transaction.py:458
++#: ../python/pakfire/transaction.py:459
+ msgid "Verifying signatures..."
+ msgstr ""
+-#: ../python/pakfire/transaction.py:490
++#: ../python/pakfire/transaction.py:491
+ #, python-format
+ msgid "Found %s signature error(s)!"
+ msgstr ""
+-#: ../python/pakfire/transaction.py:495
++#: ../python/pakfire/transaction.py:496
+ msgid "Going on because we are running in permissive mode."
+ msgstr ""
+-#: ../python/pakfire/transaction.py:496
++#: ../python/pakfire/transaction.py:497
+ msgid "This is dangerous!"
+ msgstr ""
+-#: ../python/pakfire/transaction.py:517
++#: ../python/pakfire/transaction.py:518
+ msgid "Running transaction"
+ msgstr ""
index cccd9868fc816de292090b91302b2f74c0cbe334..31d5b6d8b347924b03433fa509a8231ff72239a2 100644 (file)
@@ -809,6 +809,7 @@ class CliClient(Cli):
                self.parse_command_info()
                self.parse_command_jobs()
                self.parse_command_builds()
+               self.parse_command_test()
 
                # Finally parse all arguments from the command line and save them.
                self.args = self.parser.parse_args()
@@ -821,6 +822,7 @@ class CliClient(Cli):
                        "jobs_active" : self.handle_jobs_active,
                        "jobs_latest" : self.handle_jobs_latest,
                        "builds_show" : self.handle_builds_show,
+                       "test"        : self.handle_test,
                }
 
                # Read configuration for the pakfire client.
@@ -896,6 +898,12 @@ class CliClient(Cli):
                sub_show.add_argument("build_id", nargs=1, help=_("The ID of the build."))
                sub_show.add_argument("action", action="store_const", const="builds_show")
 
+       def parse_command_test(self):
+               sub_test = self.sub_commands.add_parser("test",
+                       help=_("Test the connection to the hub."))
+               sub_test.add_argument("error_code", nargs=1, help=_("Error code to test."))
+               sub_test.add_argument("action", action="store_const", const="test")
+
        def handle_build(self):
                (package,) = self.args.package
 
@@ -1099,6 +1107,20 @@ class CliClient(Cli):
                        print " ", line
                print # New line.
 
+       def handle_test(self):
+               error_code = self.args.error_code[0]
+
+               try:
+                       error_code = int(error_code)
+               except ValueError:
+                       error_code = 0
+
+               if error_code < 100 or error_code > 999:
+                       raise Error, _("Invalid error code given.")
+
+               res = self.client.test_code(error_code)
+               print _("Reponse from the server: %s") % res
+
 
 class CliDaemon(Cli):
        def __init__(self):
index 9c2e127942f74103ed20dbde2c099ae297373aff..ab9ecd9747c502cc93ac24788a4650c560a65500 100644 (file)
@@ -64,6 +64,11 @@ class PakfireClient(object):
                """
                return self.conn.noop()
 
+       def test_code(self, error_code):
+               assert error_code >= 100 and error_code <= 999
+
+               return self.conn.test_code(error_code)
+
        def get_my_address(self):
                """
                        Get my own address (as seen by the hub).
index 1a424fdf9c11cbf074f72298c96d6b38a82af817..c5036ce99fa2a2c41b66debbaa1c03b0ca2849af 100644 (file)
@@ -45,32 +45,51 @@ class XMLRPCMixin:
                        try:
                                ret = xmlrpclib.Transport.single_request(self, *args, **kwargs)
 
-                       except (socket.error, ssl.SSLError, httplib.BadStatusLine, \
-                               xmlrpclib.Fault, xmlrpclib.ProtocolError, xmlrpclib.ResponseError), error_code:
+                       # Catch errors related to the connection. Just try again.
+                       except (socket.error, ssl.SSLError):
                                pass
 
-                       #except socket.error, e:
-                       #       # These kinds of errors are not fatal, but they can happen on
-                       #       # a bad internet connection or whatever.
-                       #       #   32 Broken pipe
-                       #       #  110 Connection timeout
-                       #       #  111 Connection refused
-                       #       if not e.errno in (32, 110, 111,):
-                       #               raise
-                       #
-                       #       log.warning(_("Socket error: %s") % e)
-                       #
-                       #except xmlrpclib.ProtocolError, e:
-                       #       # Log all XMLRPC protocol errors.
-                       #       log.error("XMLRPC protocol error:")
-                       #       log.error("  URL: %s" % e.url)
-                       #       log.error("  HTTP headers:")
-                       #       for header in e.headers.items():
-                       #               log.error("    %s: %s" % header)
-                       #       log.error("  Error code: %s" % e.errcode)
-                       #       log.error("  Error message: %s" % e.errmsg)
-                       #       raise
-                       #
+                       # Presumably, the server closed the connection before sending anything.
+                       except httplib.BadStatusLine:
+                               pass
+
+                       # The XML reponse could not be parsed.
+                       except xmlrpclib.ResponseError:
+                               pass
+
+                       except xmlrpclib.ProtocolError, e:
+                               if e.errcode == 403:
+                                       # Possibly, the user credentials are invalid.
+                                       # Cannot go on.
+                                       raise XMLRPCForbiddenError(e)
+
+                               elif e.errcode == 404:
+                                       # Some invalid URL was called.
+                                       # Cannot go on.
+                                       raise XMLRPCNotFoundError(e)
+
+                               elif e.errcode == 503:
+                                       # Possibly the hub is not running but the SSL proxy
+                                       # is. Just try again in a short time.
+                                       pass
+
+                               else:
+                                       # Log all XMLRPC protocol errors.
+                                       log.error(_("XMLRPC protocol error:"))
+                                       log.error("  %s" % _("URL: %s") % e.url)
+                                       log.error("  %s" % _("  HTTP headers:"))
+                                       for header in e.headers.items():
+                                               log.error("    %s: %s" % header)
+                                       log.error("  %s" % _("Error code: %s") % e.errcode)
+                                       log.error("  %s" % _("Error message: %s") % e.errmsg)
+
+                                       # If an unhandled error code appeared, we raise an
+                                       # error.
+                                       raise
+
+                       except xmlrpclib.Fault:
+                               raise
+
                        else:
                                # If request was successful, we can break the loop.
                                break
@@ -87,13 +106,12 @@ class XMLRPCMixin:
                        time.sleep(timeout)
 
                else:
-                       log.error("Maximum number of tries was reached. Giving up.")
-                       # XXX need better exception here.
-                       raise Exception, "Could not fulfill request."
+                       raise XMLRPCTransportError, _("Maximum number of tries was reached. Giving up.")
 
                return ret
 
 
+
 class XMLRPCTransport(XMLRPCMixin, xmlrpclib.Transport):
        """
                Handles the XMLRPC connection over HTTP.
index 2017b65e719bb6ad29e99c8c04d6a308c45f4f2e..c0f711fc088371928913b3eb934d22f14b29a5f2 100644 (file)
@@ -92,3 +92,19 @@ class SignatureError(Error):
 
 class TransactionCheckError(Error):
        message = _("Transaction test was not successful")
+
+
+class XMLRPCError(Error):
+       message = _("Generic XMLRPC error.")
+
+
+class XMLRPCForbiddenError(XMLRPCError):
+       message = _("You are forbidden to perform this action. Maybe you need to check your credentials.")
+
+
+class XMLRPCNotFoundError(XMLRPCError):
+       message = _("Could not find the requested URL.")
+
+
+class XMLRPCTransportError(XMLRPCError):
+       message = _("An unforseable problem on the XML-RPC transport connection occured.")