add "zypper lu" in python
authorMichael Andres <ma@suse.de>
Wed, 5 Dec 2007 16:11:11 +0000 (16:11 +0000)
committerMichael Andres <ma@suse.de>
Wed, 5 Dec 2007 16:11:11 +0000 (16:11 +0000)
examples/python/list_updates.py [new file with mode: 0755]

diff --git a/examples/python/list_updates.py b/examples/python/list_updates.py
new file mode 100755 (executable)
index 0000000..2fac052
--- /dev/null
@@ -0,0 +1,39 @@
+#! /usr/bin/python
+
+import os, sys, types, string, re
+
+try:
+    import zypp
+except ImportError:
+    print 'Dummy Import Error: Unable to import zypp bindings'
+
+print 'Reading repositories...'
+
+Z = zypp.ZYppFactory_instance().getZYpp()
+
+Z.initializeTarget( zypp.Pathname("/") )
+
+repoManager = zypp.RepoManager()
+repos = repoManager.knownRepositories()
+
+for repo in repos:
+    if repo.enabled() and repo.autorefresh():
+        try:
+            repoManager.refreshMetadata(repo, zypp.RepoManager.RefreshIfNeeded) # or RefreshIfNeeded == 0
+        except:
+            repoManager.buildCache( repo )
+
+    Z.addResolvables( repoManager.createFromCache( repo ).resolvables())
+
+Z.addResolvables( Z.target().resolvables(), True )
+
+# currently not swigged
+Z.applyLocks()
+Z.resolver().establishPool();
+
+print 'List Upadtes:'
+for item in Z.pool().byKindIterator(zypp.KindOfPatch()):
+   if item.status().isNeeded():
+      resolvable = zypp.asKindPatch( item )
+      print '%s | %s-%s | %s | %s' % (resolvable.repository().info().alias(), resolvable.name(), resolvable.edition(), resolvable.category(), item.status() )
+