Skip to content
Snippets Groups Projects
Commit 24fd4cf9 authored by Julian Tusch's avatar Julian Tusch :no_entry_sign:
Browse files

small fixes

parent ed35f606
No related branches found
No related tags found
3 merge requests!460Draft: fluxio/dev-skill-timeout,!454Fluxio/dev delete skill method,!449Fluxio preliminary release
Pipeline #19450 passed
......@@ -268,6 +268,7 @@ namespace armarx
void
FluxioSkill::removeSubSkillNodesAndEdges(const std::string& skillId)
{
std::vector<std::string> nodeIdsToDelete = {};
for (const auto& [nodeId, nodePtr] : nodes)
{
if (nodePtr->nodeType != FluxioNodeType::SUBSKILL)
......@@ -275,17 +276,22 @@ namespace armarx
continue;
}
const auto* subSkillNode = dynamic_cast<FluxioSubSkillNode*>(nodePtr);
if (subSkillNode != nullptr && subSkillNode->skillPtr->id == skillId)
const auto* subSkillNodePtr = dynamic_cast<FluxioSubSkillNode*>(nodePtr);
if (subSkillNodePtr != nullptr && subSkillNodePtr->skillPtr->id == skillId)
{
// subSkillNodeIds.push_back(nodeId);
nodes.erase(nodeId);
edges.remove_if(
[nodeId](const FluxioEdge& e) {
return e.fromNodePtr->nodeId == nodeId || e.toNodePtr->nodeId == nodeId;
});
nodeIdsToDelete.push_back(nodeId);
}
}
for(const auto& id: nodeIdsToDelete)
{
nodes.erase(id);
}
}
FluxioSkill*
......
......@@ -35,6 +35,12 @@ namespace armarx::skills
FluxioCompositeExecutor::run(const std::string executorName,
armarx::aron::data::DictPtr parameters)
{
if (skill == nullptr)
{
ARMARX_WARNING << "Skill is not set";
setStatus(skills::SkillStatus::Failed);
return;
}
ARMARX_INFO << "Running skill " << skill->name;
setStatus(skills::SkillStatus::Constructing);
......@@ -44,6 +50,7 @@ namespace armarx::skills
{
ARMARX_WARNING << "Skill execution cancelled.";
setStatus(skills::SkillStatus::Failed);
return;
}
......
......@@ -1080,15 +1080,15 @@ namespace armarx::plugins
if (mutexesAquired)
{
ARMARX_WARNING << "Deleting skill '" << skillIt->second.name << "' (" << skillId
<< ").";
fluxioDC.skills.erase(skillId);
ARMARX_WARNING << "Updating affected skills.";
for (const auto& affectedSkill : affectedSkills)
{
affectedSkill->removeSubSkillNodesAndEdges(skillId);
}
ARMARX_WARNING << "Deleting skill '" << skillIt->second.name << "' (" << skillId
<< ").";
fluxioDC.skills.erase(skillId);
}
else
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment