mirror of
https://github.com/wassname/ray.git
synced 2026-07-24 13:20:22 +08:00
[Placement Group]Enhance create placement group java api (#11702)
* enhance create pg java api * add state for PlacementGroup * fix comment * move default pg * make default pg name private * add bundle size and bundle resource size check when placement group create
This commit is contained in:
@@ -4,11 +4,7 @@ import io.ray.api.ActorHandle;
|
||||
import io.ray.api.Ray;
|
||||
import io.ray.api.id.ActorId;
|
||||
import io.ray.api.placementgroup.PlacementGroup;
|
||||
import io.ray.api.placementgroup.PlacementStrategy;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import io.ray.runtime.placementgroup.PlacementGroupImpl;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
@@ -32,12 +28,8 @@ public class PlacementGroupTest extends BaseTest {
|
||||
// This test just creates a placement group with one bundle.
|
||||
// It's not comprehensive to test all placement group test cases.
|
||||
public void testCreateAndCallActor() {
|
||||
List<Map<String, Double>> bundles = new ArrayList<>();
|
||||
Map<String, Double> bundle = new HashMap<>();
|
||||
bundle.put("CPU", 1.0);
|
||||
bundles.add(bundle);
|
||||
PlacementStrategy strategy = PlacementStrategy.PACK;
|
||||
PlacementGroup placementGroup = Ray.createPlacementGroup(bundles, strategy);
|
||||
PlacementGroup placementGroup = PlacementGroupTestUtils.createSimpleGroup();
|
||||
Assert.assertEquals(((PlacementGroupImpl)placementGroup).getName(),"unnamed_group");
|
||||
|
||||
// Test creating an actor from a constructor.
|
||||
ActorHandle<Counter> actor = Ray.actor(Counter::new, 1)
|
||||
@@ -49,12 +41,7 @@ public class PlacementGroupTest extends BaseTest {
|
||||
}
|
||||
|
||||
public void testCheckBundleIndex() {
|
||||
List<Map<String, Double>> bundles = new ArrayList<>();
|
||||
Map<String, Double> bundle = new HashMap<>();
|
||||
bundle.put("CPU", 1.0);
|
||||
bundles.add(bundle);
|
||||
PlacementStrategy strategy = PlacementStrategy.PACK;
|
||||
PlacementGroup placementGroup = Ray.createPlacementGroup(bundles, strategy);
|
||||
PlacementGroup placementGroup = PlacementGroupTestUtils.createSimpleGroup();
|
||||
|
||||
int exceptionCount = 0;
|
||||
try {
|
||||
@@ -64,7 +51,6 @@ public class PlacementGroupTest extends BaseTest {
|
||||
}
|
||||
Assert.assertEquals(1, exceptionCount);
|
||||
|
||||
|
||||
try {
|
||||
Ray.actor(Counter::new, 1).setPlacementGroup(placementGroup, -1).remote();
|
||||
} catch (IllegalArgumentException e) {
|
||||
@@ -72,4 +58,14 @@ public class PlacementGroupTest extends BaseTest {
|
||||
}
|
||||
Assert.assertEquals(2, exceptionCount);
|
||||
}
|
||||
|
||||
@Test (expectedExceptions = { IllegalArgumentException.class })
|
||||
public void testBundleSizeValidCheckWhenCreate() {
|
||||
PlacementGroupTestUtils.createBundleSizeInvalidGroup();
|
||||
}
|
||||
|
||||
@Test (expectedExceptions = { IllegalArgumentException.class })
|
||||
public void testBundleResourceValidCheckWhenCreate() {
|
||||
PlacementGroupTestUtils.createBundleResourceInvalidGroup();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package io.ray.test;
|
||||
|
||||
import io.ray.api.Ray;
|
||||
import io.ray.api.placementgroup.PlacementGroup;
|
||||
import io.ray.api.placementgroup.PlacementStrategy;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* A utils class for Placement Group test.
|
||||
*/
|
||||
public class PlacementGroupTestUtils {
|
||||
|
||||
public static PlacementGroup createSpecifiedSimpleGroup(String resourceName, int bundleSize,
|
||||
PlacementStrategy strategy, Double resourceSize) {
|
||||
List<Map<String, Double>> bundles = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < bundleSize; i++) {
|
||||
Map<String, Double> bundle = new HashMap<>();
|
||||
bundle.put(resourceName, resourceSize);
|
||||
bundles.add(bundle);
|
||||
}
|
||||
|
||||
return Ray.createPlacementGroup(bundles, strategy);
|
||||
}
|
||||
|
||||
public static PlacementGroup createSimpleGroup() {
|
||||
return createSpecifiedSimpleGroup("CPU", 1, PlacementStrategy.PACK, 1.0);
|
||||
}
|
||||
|
||||
public static void createBundleSizeInvalidGroup() {
|
||||
createSpecifiedSimpleGroup("CPU", 0, PlacementStrategy.PACK, 1.0);
|
||||
}
|
||||
|
||||
public static void createBundleResourceInvalidGroup() {
|
||||
createSpecifiedSimpleGroup("CPU", 1, PlacementStrategy.PACK, 0.0);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user