[Placement group] Input validation (#11152)

* Add a basic input validation.

* Addressed code review.
This commit is contained in:
SangBin Cho
2020-10-14 13:56:41 -07:00
committed by GitHub
parent a10e36ca04
commit 666fcde8ca
2 changed files with 21 additions and 7 deletions
+11 -5
View File
@@ -32,11 +32,17 @@ def test_placement_group_pack(ray_start_cluster):
ray.init(address=cluster.address)
placement_group = ray.util.placement_group(
name="name", strategy="PACK", bundles=[{
"CPU": 2
}, {
"CPU": 2
}])
name="name",
strategy="PACK",
bundles=[
{
"CPU": 2,
"GPU": 0 # Test 0 resource spec doesn't break tests.
},
{
"CPU": 2
}
])
ray.get(placement_group.ready())
actor_1 = Actor.options(
placement_group=placement_group,
+10 -2
View File
@@ -77,8 +77,16 @@ class PlacementGroupSpecBuilder {
auto mutable_bundle_id = message_bundle->mutable_bundle_id();
mutable_bundle_id->set_bundle_index(i);
mutable_bundle_id->set_placement_group_id(placement_group_id.Binary());
message_bundle->mutable_unit_resources()->insert(resources.begin(),
resources.end());
auto mutable_unit_resources = message_bundle->mutable_unit_resources();
for (auto it = resources.begin(); it != resources.end();) {
auto current = it++;
// Remove a resource with value 0 because they are not allowed.
if (current->second == 0) {
resources.erase(current);
} else {
mutable_unit_resources->insert({current->first, current->second});
}
}
}
return *this;
}