Skip to content

Commit

Permalink
Adapt SubAgent to use proper component in chrooted env.
Browse files Browse the repository at this point in the history
  • Loading branch information
jreidinger committed Oct 4, 2013
1 parent eda7222 commit 4fadbc3
Showing 1 changed file with 28 additions and 13 deletions.
41 changes: 28 additions & 13 deletions wfm/src/WFMSubAgent.cc
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,13 @@ WFMSubAgent::WFMSubAgent (const string& name, int handle)
my_comp (0),
my_agent (0)
{
// TODO when perl-bootloader die, remove whole system namespacing
// check if name is scr ( can be prepended by chroot like "chroot=/mnt:scr" )
if (name.find("scr") == string::npos)
{
y2internal("WFMSubAgent support only scr component, but not '%s'.", name);
abort;
}
}


Expand All @@ -49,20 +56,28 @@ WFMSubAgent::start ()
if (!my_comp)
{
y2debug ("Creating SubAgent: %d %s", my_handle, my_name.c_str ());
my_comp = Y2ComponentBroker::createServer (my_name.c_str ());

if (!my_comp)
{
ycp2error ("Can't create component '%s'", my_name.c_str ());
}
else

This comment has been minimized.

Copy link
@mvidner

mvidner Oct 14, 2013

Member

This check should be IMHO preserved, at the end of the method.

{
if (my_comp->getSCRAgent () == NULL)
{
// the component does not have a SCR agent, better try to push over stdio
my_agent = new StdioSCRAgent (my_comp);
// different behavior in chroot and non-chroot as for chroot we need to
// handle specially system namespace via scr_remote
// TODO remove after perl-bootloader die, then else branch is enough
if (my_name.find("chroot") != string::npos)
{
Y2Component *scr_comp = Y2ComponentBroker::createServer (my_name.c_str ());

This comment has been minimized.

Copy link
@mvidner

mvidner Oct 14, 2013

Member

// used for SCR::

my_comp = Y2ComponentBroker::createServer ((my_name+"_remote").c_str ());

This comment has been minimized.

Copy link
@mvidner

mvidner Oct 14, 2013

Member

So why are we creating 2 components here?

This comment has been minimized.

Copy link
@mvidner

mvidner Oct 14, 2013

Member

// used for System::

if (!scr_comp)
{
ycp2error ("Can't create component 'scr'");

This comment has been minimized.

Copy link
@mvidner

mvidner Oct 14, 2013

Member

my_name

return false;
}
}
// WFM subagent use specialized agent for remote and scr_remote as
// component
// see Y2WFMComponent::SCRSetDefault implementation for details
// how it works
my_agent = scr_comp->getSCRAgent();

This comment has been minimized.

Copy link
@mvidner

mvidner Oct 14, 2013

Member

together with scr_comp

}
else
{
Y2Component *my_comp = Y2ComponentBroker::createServer (my_name.c_str ());
}
}

return my_comp != 0;
Expand Down

0 comments on commit 4fadbc3

Please sign in to comment.