Merge "All offline nodes are removed as failed nodes"
This commit is contained in:
commit
cfd5d6b916
|
@ -149,7 +149,7 @@ module Astute
|
||||||
|
|
||||||
# Removes nodes which failed to provision
|
# Removes nodes which failed to provision
|
||||||
def remove_failed_nodes(deployment_info, pre_deployment, post_deployment)
|
def remove_failed_nodes(deployment_info, pre_deployment, post_deployment)
|
||||||
uids = deployment_info.map { |node| node["uid"]}
|
uids = get_uids_from_deployment_info deployment_info
|
||||||
required_nodes = deployment_info.select { |node| node["fail_if_error"] }
|
required_nodes = deployment_info.select { |node| node["fail_if_error"] }
|
||||||
required_uids = required_nodes.map { |node| node["uid"]}
|
required_uids = required_nodes.map { |node| node["uid"]}
|
||||||
|
|
||||||
|
@ -257,5 +257,13 @@ module Astute
|
||||||
available_uids
|
available_uids
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def get_uids_from_deployment_info(deployment_info)
|
||||||
|
top_level_uids = deployment_info.map{ |node| node["uid"] }
|
||||||
|
|
||||||
|
inside_uids = deployment_info.inject([]) do |uids, node|
|
||||||
|
uids += node.fetch('nodes', []).map{ |n| n['uid'] }
|
||||||
|
end
|
||||||
|
top_level_uids | inside_uids
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -416,14 +416,12 @@ describe Astute::DeploymentEngine do
|
||||||
'nodes' => [
|
'nodes' => [
|
||||||
{'uid' => '1', 'role' => 'compute'},
|
{'uid' => '1', 'role' => 'compute'},
|
||||||
{'uid' => '2', 'role' => 'primary-controller'},
|
{'uid' => '2', 'role' => 'primary-controller'},
|
||||||
{'uid' => '4', 'role' => 'compute'}
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{'uid' => "2", 'priority' => 10, 'role' => 'primary-controller',
|
{'uid' => "2", 'priority' => 10, 'role' => 'primary-controller',
|
||||||
'nodes' => [
|
'nodes' => [
|
||||||
{'uid' => '1', 'role' => 'compute'},
|
{'uid' => '1', 'role' => 'compute'},
|
||||||
{'uid' => '2', 'role' => 'primary-controller'},
|
{'uid' => '2', 'role' => 'primary-controller'},
|
||||||
{'uid' => '4', 'role' => 'compute'}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -443,6 +441,12 @@ describe Astute::DeploymentEngine do
|
||||||
'error_type' => 'provision',
|
'error_type' => 'provision',
|
||||||
'role' => 'hook',
|
'role' => 'hook',
|
||||||
'error_msg' => 'Node is not ready for deployment: mcollective has not answered'
|
'error_msg' => 'Node is not ready for deployment: mcollective has not answered'
|
||||||
|
},{
|
||||||
|
'uid' => '4',
|
||||||
|
'status' => 'error',
|
||||||
|
'error_type' => 'provision',
|
||||||
|
'role' => 'hook',
|
||||||
|
'error_msg' => 'Node is not ready for deployment: mcollective has not answered'
|
||||||
}],
|
}],
|
||||||
'error' => 'Node is not ready for deployment'
|
'error' => 'Node is not ready for deployment'
|
||||||
)
|
)
|
||||||
|
@ -488,14 +492,12 @@ describe Astute::DeploymentEngine do
|
||||||
'nodes' => [
|
'nodes' => [
|
||||||
{'uid' => '1', 'role' => 'compute'},
|
{'uid' => '1', 'role' => 'compute'},
|
||||||
{'uid' => '2', 'role' => 'primary-controller'},
|
{'uid' => '2', 'role' => 'primary-controller'},
|
||||||
{'uid' => '4', 'role' => 'compute'}
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{'uid' => "2", 'priority' => 10, 'role' => 'primary-controller',
|
{'uid' => "2", 'priority' => 10, 'role' => 'primary-controller',
|
||||||
'nodes' => [
|
'nodes' => [
|
||||||
{'uid' => '1', 'role' => 'compute'},
|
{'uid' => '1', 'role' => 'compute'},
|
||||||
{'uid' => '2', 'role' => 'primary-controller'},
|
{'uid' => '2', 'role' => 'primary-controller'},
|
||||||
{'uid' => '4', 'role' => 'compute'}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -515,6 +517,12 @@ describe Astute::DeploymentEngine do
|
||||||
'error_type' => 'provision',
|
'error_type' => 'provision',
|
||||||
'role' => 'hook',
|
'role' => 'hook',
|
||||||
'error_msg' => 'Node is not ready for deployment: mcollective has not answered'
|
'error_msg' => 'Node is not ready for deployment: mcollective has not answered'
|
||||||
|
}, {
|
||||||
|
'uid' => '4',
|
||||||
|
'status' => 'error',
|
||||||
|
'error_type' => 'provision',
|
||||||
|
'role' => 'hook',
|
||||||
|
'error_msg' => 'Node is not ready for deployment: mcollective has not answered'
|
||||||
}],
|
}],
|
||||||
'error' => 'Node is not ready for deployment'
|
'error' => 'Node is not ready for deployment'
|
||||||
)
|
)
|
||||||
|
@ -546,7 +554,7 @@ describe Astute::DeploymentEngine do
|
||||||
{'uid' => '1', 'role' => 'compute'},
|
{'uid' => '1', 'role' => 'compute'},
|
||||||
{'uid' => '2', 'role' => 'primary-controller'},
|
{'uid' => '2', 'role' => 'primary-controller'},
|
||||||
{'uid' => '4', 'role' => 'compute'}
|
{'uid' => '4', 'role' => 'compute'}
|
||||||
]}
|
]}
|
||||||
]
|
]
|
||||||
|
|
||||||
res1 = {:data => {:node_type => "target\n"},
|
res1 = {:data => {:node_type => "target\n"},
|
||||||
|
@ -565,6 +573,12 @@ describe Astute::DeploymentEngine do
|
||||||
'error_type' => 'provision',
|
'error_type' => 'provision',
|
||||||
'role' => 'hook',
|
'role' => 'hook',
|
||||||
'error_msg' => 'Node is not ready for deployment: mcollective has not answered'
|
'error_msg' => 'Node is not ready for deployment: mcollective has not answered'
|
||||||
|
},{
|
||||||
|
'uid' => '4',
|
||||||
|
'status' => 'error',
|
||||||
|
'error_type' => 'provision',
|
||||||
|
'role' => 'hook',
|
||||||
|
'error_msg' => 'Node is not ready for deployment: mcollective has not answered'
|
||||||
}],
|
}],
|
||||||
'error' => 'Node is not ready for deployment'
|
'error' => 'Node is not ready for deployment'
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue