sculpt: show names of unsatisfied launchers

The diagnostic messages presented in the runtime dialog lacked the name
if the subsystem was created from a launcher, e.g., the 'vm'. Instead of
determining the subsystem name from the start-XML-node (a launcher has
no 'name' attribute but the name corresponds to the launcher's file
name), the name is now passed as a dedicated argument.
This commit is contained in:
Norman Feske 2019-06-28 14:00:29 +02:00 committed by Christian Helmuth
parent 605f9abf96
commit c92a9ce591
3 changed files with 7 additions and 8 deletions

View File

@ -232,7 +232,7 @@ class Depot_deploy::Child : public List_model<Child>::Element
: Xml_node("<empty/>");
if (_condition == UNSATISFIED && _start_xml.constructed())
fn(_start_xml->xml(), launcher_xml);
fn(_start_xml->xml(), launcher_xml, _name);
}
void mark_as_incomplete(Xml_node missing)

View File

@ -42,10 +42,8 @@ void Sculpt::Deploy::gen_child_diagnostics(Xml_generator &xml) const
typedef Registered_no_delete<Message> Registered_message;
Registry<Registered_message> messages { };
auto gen_missing_dependencies = [&] (Xml_node start)
auto gen_missing_dependencies = [&] (Xml_node start, Start_name const &name)
{
Start_name const name = start.attribute_value("name", Start_name());
_for_each_missing_server(start, [&] (Start_name const &server) {
Message const new_message(Pretty(name), " requires ", Pretty(server));
@ -60,9 +58,10 @@ void Sculpt::Deploy::gen_child_diagnostics(Xml_generator &xml) const
});
};
_children.for_each_unsatisfied_child([&] (Xml_node start, Xml_node launcher) {
gen_missing_dependencies(start);
gen_missing_dependencies(launcher);
_children.for_each_unsatisfied_child([&] (Xml_node start, Xml_node launcher,
Start_name const &name) {
gen_missing_dependencies(start, name);
gen_missing_dependencies(launcher, name);
});
/*

View File

@ -174,7 +174,7 @@ struct Sculpt::Deploy
bool any_unsatisfied_child() const
{
bool all_satisfied = true;
_children.for_each_unsatisfied_child([&] (Xml_node, Xml_node) {
_children.for_each_unsatisfied_child([&] (Xml_node, Xml_node, Start_name const &) {
all_satisfied = false; });
return !all_satisfied;
}