Quick add hook for system/spacewalk plugin to send system content after commit.
authorMichael Andres <ma@suse.de>
Tue, 19 Oct 2010 13:37:42 +0000 (15:37 +0200)
committerMichael Andres <ma@suse.de>
Tue, 19 Oct 2010 13:37:42 +0000 (15:37 +0200)
libzypp.spec.cmake
zypp/target/TargetImpl.cc

index 23fd0cc..565cb88 100644 (file)
@@ -194,8 +194,10 @@ mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/repos.d
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/zypp/services.d
 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp
 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/media
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/commit
 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/services
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/system
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/zypp/plugins/urlresolver
 mkdir -p $RPM_BUILD_ROOT%{_var}/lib/zypp
 mkdir -p $RPM_BUILD_ROOT%{_var}/log/zypp
 mkdir -p $RPM_BUILD_ROOT%{_var}/cache/zypp
index e2ddfe5..886058e 100644 (file)
@@ -819,6 +819,29 @@ namespace zypp
 
         // We keep it.
         guard.resetDispose();
+
+       // Finally send notification to plugins
+       // NOTE: quick hack looking for spacewalk plugin only
+       {
+         Pathname script( Pathname::assertprefix( _root, ZConfig::instance().pluginsPath()/"system/spacewalk" ) );
+         if ( PathInfo( script ).isX() )
+           try {
+             PluginScript spacewalk( script );
+             spacewalk.open();
+
+             PluginFrame notify( "PACKAGESETCHANGED" );
+             spacewalk.send( notify );
+
+             PluginFrame ret( spacewalk.receive() );
+             MIL << ret << endl;
+             if ( ret.command() == "ERROR" )
+               ret.writeTo( WAR ) << endl;
+           }
+           catch ( const Exception & excpt )
+           {
+             WAR << excpt.asUserHistory() << endl;
+           }
+       }
       }
     }