mirror of
https://github.com/wassname/ray.git
synced 2026-06-27 21:08:13 +08:00
[Placement Group] Add get / get all / remove interface for Placement Group Java api. (#11821)
* add placement group java get/get all interface * add remove placement group api * fix some issue like: Placement Group -> placement group * extract dumplicate code to placement group utils * specify running mode for placement group ut * update checkGlobalStateAccessorPointerValid -> validateGlobalStateAccessorPointer * use THROW_EXCEPTION_AND_RETURN_IF_NOT_OK * update pg log print
This commit is contained in:
@@ -4,7 +4,10 @@ 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.PlacementGroupState;
|
||||
import io.ray.api.placementgroup.PlacementStrategy;
|
||||
import io.ray.runtime.placementgroup.PlacementGroupImpl;
|
||||
import java.util.List;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
@@ -40,6 +43,62 @@ public class PlacementGroupTest extends BaseTest {
|
||||
Assert.assertEquals(Integer.valueOf(1), actor.task(Counter::getValue).remote().get());
|
||||
}
|
||||
|
||||
@Test(groups = {"cluster"})
|
||||
public void testGetPlacementGroup() {
|
||||
PlacementGroupImpl firstPlacementGroup = (PlacementGroupImpl)PlacementGroupTestUtils
|
||||
.createNameSpecifiedSimpleGroup("CPU", 1, PlacementStrategy.PACK,
|
||||
1.0, "first_placement_group");
|
||||
|
||||
PlacementGroupImpl secondPlacementGroup = (PlacementGroupImpl)PlacementGroupTestUtils
|
||||
.createNameSpecifiedSimpleGroup("CPU", 1, PlacementStrategy.PACK,
|
||||
1.0, "second_placement_group");
|
||||
|
||||
PlacementGroupImpl firstPlacementGroupRes =
|
||||
(PlacementGroupImpl)Ray.getPlacementGroup((firstPlacementGroup).getId());
|
||||
PlacementGroupImpl secondPlacementGroupRes =
|
||||
(PlacementGroupImpl)Ray.getPlacementGroup((secondPlacementGroup).getId());
|
||||
|
||||
Assert.assertNotNull(firstPlacementGroupRes);
|
||||
Assert.assertNotNull(secondPlacementGroupRes);
|
||||
|
||||
Assert.assertEquals(firstPlacementGroup.getId(), firstPlacementGroupRes.getId());
|
||||
Assert.assertEquals(firstPlacementGroup.getName(), firstPlacementGroupRes.getName());
|
||||
Assert.assertEquals(firstPlacementGroupRes.getBundles().size(), 1);
|
||||
Assert.assertEquals(firstPlacementGroupRes.getStrategy(), PlacementStrategy.PACK);
|
||||
|
||||
List<PlacementGroup> allPlacementGroup = Ray.getAllPlacementGroups();
|
||||
Assert.assertEquals(allPlacementGroup.size(), 2);
|
||||
|
||||
PlacementGroupImpl placementGroupRes = (PlacementGroupImpl)allPlacementGroup.get(0);
|
||||
Assert.assertNotNull(placementGroupRes.getId());
|
||||
PlacementGroupImpl expectPlacementGroup = placementGroupRes.getId()
|
||||
.equals(firstPlacementGroup.getId()) ? firstPlacementGroup : secondPlacementGroup;
|
||||
|
||||
Assert.assertEquals(placementGroupRes.getName(), expectPlacementGroup.getName());
|
||||
Assert.assertEquals(placementGroupRes.getBundles().size(),
|
||||
expectPlacementGroup.getBundles().size());
|
||||
Assert.assertEquals(placementGroupRes.getStrategy(), expectPlacementGroup.getStrategy());
|
||||
}
|
||||
|
||||
@Test(groups = {"cluster"})
|
||||
public void testRemovePlacementGroup() {
|
||||
PlacementGroupTestUtils.createNameSpecifiedSimpleGroup("CPU",
|
||||
1, PlacementStrategy.PACK, 1.0, "first_placement_group");
|
||||
|
||||
PlacementGroupImpl secondPlacementGroup = (PlacementGroupImpl)PlacementGroupTestUtils
|
||||
.createNameSpecifiedSimpleGroup("CPU", 1, PlacementStrategy.PACK,
|
||||
1.0, "second_placement_group");
|
||||
|
||||
List<PlacementGroup> allPlacementGroup = Ray.getAllPlacementGroups();
|
||||
Assert.assertEquals(allPlacementGroup.size(), 2);
|
||||
|
||||
Ray.removePlacementGroup(secondPlacementGroup.getId());
|
||||
|
||||
PlacementGroupImpl removedPlacementGroup =
|
||||
(PlacementGroupImpl)Ray.getPlacementGroup((secondPlacementGroup).getId());
|
||||
Assert.assertEquals(removedPlacementGroup.getState(), PlacementGroupState.REMOVED);
|
||||
}
|
||||
|
||||
public void testCheckBundleIndex() {
|
||||
PlacementGroup placementGroup = PlacementGroupTestUtils.createSimpleGroup();
|
||||
|
||||
|
||||
@@ -9,12 +9,12 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* A utils class for Placement Group test.
|
||||
* A utils class for placement group test.
|
||||
*/
|
||||
public class PlacementGroupTestUtils {
|
||||
|
||||
public static PlacementGroup createSpecifiedSimpleGroup(String resourceName, int bundleSize,
|
||||
PlacementStrategy strategy, Double resourceSize) {
|
||||
public static PlacementGroup createNameSpecifiedSimpleGroup(String resourceName, int bundleSize,
|
||||
PlacementStrategy strategy, Double resourceSize, String groupName) {
|
||||
List<Map<String, Double>> bundles = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < bundleSize; i++) {
|
||||
@@ -23,7 +23,13 @@ public class PlacementGroupTestUtils {
|
||||
bundles.add(bundle);
|
||||
}
|
||||
|
||||
return Ray.createPlacementGroup(bundles, strategy);
|
||||
return Ray.createPlacementGroup(groupName, bundles, strategy);
|
||||
}
|
||||
|
||||
public static PlacementGroup createSpecifiedSimpleGroup(String resourceName, int bundleSize,
|
||||
PlacementStrategy strategy, Double resourceSize) {
|
||||
return createNameSpecifiedSimpleGroup(resourceName, bundleSize, strategy,
|
||||
resourceSize, "unnamed_group");
|
||||
}
|
||||
|
||||
public static PlacementGroup createSimpleGroup() {
|
||||
|
||||
Reference in New Issue
Block a user