Skip to content

Commit c383300

Browse files
DeviceInfracopybara-github
authored andcommitted
Internal change
PiperOrigin-RevId: 893458107
1 parent b6495b4 commit c383300

98 files changed

Lines changed: 1634 additions & 557 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/devtools/mobileharness/fe/v6/service/proto/common/common_resources.proto

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,18 @@ message DeviceDimension {
3535
string name = 1;
3636
string value = 2;
3737
}
38+
39+
// Represents the universe scope for routing and feature enablement.
40+
message Universe {
41+
oneof type {
42+
SelfUniverse self_universe = 1;
43+
RoutedUniverse routed_universe = 2;
44+
}
45+
}
46+
47+
message SelfUniverse {}
48+
49+
message RoutedUniverse {
50+
// The ID of the ATS controller to route to.
51+
string ats_controller_id = 1;
52+
}

src/java/com/google/devtools/mobileharness/fe/v6/service/config/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ java_library(
3434
srcs = ["ConfigServiceLogicImpl.java"],
3535
deps = [
3636
":config_service_logic",
37+
"//src/devtools/mobileharness/fe/v6/service/proto/common:common_resources_java_proto",
3738
"//src/devtools/mobileharness/fe/v6/service/proto/config:config_service_java_proto",
3839
"//src/java/com/google/devtools/mobileharness/fe/v6/service/config/handlers:check_device_write_permission_handler",
3940
"//src/java/com/google/devtools/mobileharness/fe/v6/service/config/handlers:check_host_write_permission_handler",
@@ -43,6 +44,7 @@ java_library(
4344
"//src/java/com/google/devtools/mobileharness/fe/v6/service/config/handlers:get_recommended_wifi_handler",
4445
"//src/java/com/google/devtools/mobileharness/fe/v6/service/config/handlers:update_device_config_handler",
4546
"//src/java/com/google/devtools/mobileharness/fe/v6/service/config/handlers:update_host_config_handler",
47+
"//src/java/com/google/devtools/mobileharness/fe/v6/service/util",
4648
"@maven//:com_google_guava_guava",
4749
"@maven//:javax_inject_jsr330_api",
4850
],

src/java/com/google/devtools/mobileharness/fe/v6/service/config/ConfigServiceLogicImpl.java

Lines changed: 65 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package com.google.devtools.mobileharness.fe.v6.service.config;
1818

19+
import static com.google.common.util.concurrent.Futures.immediateFailedFuture;
20+
1921
import com.google.common.util.concurrent.ListenableFuture;
2022
import com.google.devtools.mobileharness.fe.v6.service.config.handlers.CheckDeviceWritePermissionHandler;
2123
import com.google.devtools.mobileharness.fe.v6.service.config.handlers.CheckHostWritePermissionHandler;
@@ -25,6 +27,7 @@
2527
import com.google.devtools.mobileharness.fe.v6.service.config.handlers.GetRecommendedWifiHandler;
2628
import com.google.devtools.mobileharness.fe.v6.service.config.handlers.UpdateDeviceConfigHandler;
2729
import com.google.devtools.mobileharness.fe.v6.service.config.handlers.UpdateHostConfigHandler;
30+
import com.google.devtools.mobileharness.fe.v6.service.proto.common.Universe;
2831
import com.google.devtools.mobileharness.fe.v6.service.proto.config.CheckDeviceWritePermissionRequest;
2932
import com.google.devtools.mobileharness.fe.v6.service.proto.config.CheckDeviceWritePermissionResponse;
3033
import com.google.devtools.mobileharness.fe.v6.service.proto.config.CheckHostWritePermissionRequest;
@@ -41,6 +44,7 @@
4144
import com.google.devtools.mobileharness.fe.v6.service.proto.config.UpdateDeviceConfigResponse;
4245
import com.google.devtools.mobileharness.fe.v6.service.proto.config.UpdateHostConfigRequest;
4346
import com.google.devtools.mobileharness.fe.v6.service.proto.config.UpdateHostConfigResponse;
47+
import com.google.devtools.mobileharness.fe.v6.service.util.UniverseFactory;
4448
import java.util.Optional;
4549
import javax.inject.Inject;
4650
import javax.inject.Singleton;
@@ -57,6 +61,7 @@ public final class ConfigServiceLogicImpl implements ConfigServiceLogic {
5761
private final GetHostConfigHandler getHostConfigHandler;
5862
private final CheckHostWritePermissionHandler checkHostWritePermissionHandler;
5963
private final UpdateHostConfigHandler updateHostConfigHandler;
64+
private final UniverseFactory universeFactory;
6065

6166
@Inject
6267
ConfigServiceLogicImpl(
@@ -67,7 +72,8 @@ public final class ConfigServiceLogicImpl implements ConfigServiceLogic {
6772
GetHostDefaultDeviceConfigHandler getHostDefaultDeviceConfigHandler,
6873
GetHostConfigHandler getHostConfigHandler,
6974
CheckHostWritePermissionHandler checkHostWritePermissionHandler,
70-
UpdateHostConfigHandler updateHostConfigHandler) {
75+
UpdateHostConfigHandler updateHostConfigHandler,
76+
UniverseFactory universeFactory) {
7177
this.getDeviceConfigHandler = getDeviceConfigHandler;
7278
this.checkDeviceWritePermissionHandler = checkDeviceWritePermissionHandler;
7379
this.updateDeviceConfigHandler = updateDeviceConfigHandler;
@@ -76,51 +82,101 @@ public final class ConfigServiceLogicImpl implements ConfigServiceLogic {
7682
this.getHostConfigHandler = getHostConfigHandler;
7783
this.checkHostWritePermissionHandler = checkHostWritePermissionHandler;
7884
this.updateHostConfigHandler = updateHostConfigHandler;
85+
this.universeFactory = universeFactory;
7986
}
8087

8188
@Override
8289
public ListenableFuture<GetDeviceConfigResponse> getDeviceConfig(GetDeviceConfigRequest request) {
83-
return getDeviceConfigHandler.getDeviceConfig(request);
90+
Universe universe;
91+
try {
92+
universe = universeFactory.create(request.getUniverse());
93+
} catch (IllegalArgumentException e) {
94+
return immediateFailedFuture(e);
95+
}
96+
return getDeviceConfigHandler.getDeviceConfig(request, universe);
8497
}
8598

8699
@Override
87100
public ListenableFuture<CheckDeviceWritePermissionResponse> checkDeviceWritePermission(
88101
CheckDeviceWritePermissionRequest request, Optional<String> username) {
89-
return checkDeviceWritePermissionHandler.checkDeviceWritePermission(request, username);
102+
Universe universe;
103+
try {
104+
universe = universeFactory.create(request.getUniverse());
105+
} catch (IllegalArgumentException e) {
106+
return immediateFailedFuture(e);
107+
}
108+
return checkDeviceWritePermissionHandler.checkDeviceWritePermission(
109+
request, universe, username);
90110
}
91111

92112
@Override
93113
public ListenableFuture<UpdateDeviceConfigResponse> updateDeviceConfig(
94114
UpdateDeviceConfigRequest request, Optional<String> username) {
95-
return updateDeviceConfigHandler.updateDeviceConfig(request, username);
115+
Universe universe;
116+
try {
117+
universe = universeFactory.create(request.getUniverse());
118+
} catch (IllegalArgumentException e) {
119+
return immediateFailedFuture(e);
120+
}
121+
return updateDeviceConfigHandler.updateDeviceConfig(request, universe, username);
96122
}
97123

98124
@Override
99125
public ListenableFuture<GetRecommendedWifiResponse> getRecommendedWifi(
100126
GetRecommendedWifiRequest request) {
101-
return getRecommendedWifiHandler.getRecommendedWifi(request);
127+
Universe universe;
128+
try {
129+
universe = universeFactory.create(request.getUniverse());
130+
} catch (IllegalArgumentException e) {
131+
return immediateFailedFuture(e);
132+
}
133+
return getRecommendedWifiHandler.getRecommendedWifi(request, universe);
102134
}
103135

104136
@Override
105137
public ListenableFuture<GetHostDefaultDeviceConfigResponse> getHostDefaultDeviceConfig(
106138
GetHostDefaultDeviceConfigRequest request) {
107-
return getHostDefaultDeviceConfigHandler.getHostDefaultDeviceConfig(request);
139+
Universe universe;
140+
try {
141+
universe = universeFactory.create(request.getUniverse());
142+
} catch (IllegalArgumentException e) {
143+
return immediateFailedFuture(e);
144+
}
145+
return getHostDefaultDeviceConfigHandler.getHostDefaultDeviceConfig(request, universe);
108146
}
109147

110148
@Override
111149
public ListenableFuture<GetHostConfigResponse> getHostConfig(GetHostConfigRequest request) {
112-
return getHostConfigHandler.getHostConfig(request);
150+
Universe universe;
151+
try {
152+
universe = universeFactory.create(request.getUniverse());
153+
} catch (IllegalArgumentException e) {
154+
return immediateFailedFuture(e);
155+
}
156+
return getHostConfigHandler.getHostConfig(request, universe);
113157
}
114158

115159
@Override
116160
public ListenableFuture<CheckHostWritePermissionResponse> checkHostWritePermission(
117161
CheckHostWritePermissionRequest request, Optional<String> username) {
118-
return checkHostWritePermissionHandler.checkHostWritePermission(request, username);
162+
Universe universe;
163+
try {
164+
universe = universeFactory.create(request.getUniverse());
165+
} catch (IllegalArgumentException e) {
166+
return immediateFailedFuture(e);
167+
}
168+
return checkHostWritePermissionHandler.checkHostWritePermission(request, universe, username);
119169
}
120170

121171
@Override
122172
public ListenableFuture<UpdateHostConfigResponse> updateHostConfig(
123173
UpdateHostConfigRequest request, Optional<String> username) {
124-
return updateHostConfigHandler.updateHostConfig(request, username);
174+
Universe universe;
175+
try {
176+
universe = universeFactory.create(request.getUniverse());
177+
} catch (IllegalArgumentException e) {
178+
return immediateFailedFuture(e);
179+
}
180+
return updateHostConfigHandler.updateHostConfig(request, universe, username);
125181
}
126182
}

src/java/com/google/devtools/mobileharness/fe/v6/service/config/handlers/BUILD

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ java_library(
2424
name = "get_device_config_handler",
2525
srcs = ["GetDeviceConfigHandler.java"],
2626
deps = [
27+
"//src/devtools/mobileharness/fe/v6/service/proto/common:common_resources_java_proto",
2728
"//src/devtools/mobileharness/fe/v6/service/proto/config:config_resources_java_proto",
2829
"//src/devtools/mobileharness/fe/v6/service/proto/config:config_service_java_proto",
2930
"//src/java/com/google/devtools/mobileharness/fe/v6/service/config/util:config_converter",
@@ -40,6 +41,7 @@ java_library(
4041
srcs = ["CheckDeviceWritePermissionHandler.java"],
4142
deps = [
4243
"//src/devtools/mobileharness/api/deviceconfig/proto:device_java_proto",
44+
"//src/devtools/mobileharness/fe/v6/service/proto/common:common_resources_java_proto",
4345
"//src/devtools/mobileharness/fe/v6/service/proto/config:config_service_java_proto",
4446
"//src/java/com/google/devtools/mobileharness/fe/v6/service/shared",
4547
"//src/java/com/google/devtools/mobileharness/fe/v6/service/shared/auth",
@@ -54,6 +56,7 @@ java_library(
5456
deps = [
5557
"//src/devtools/mobileharness/api/deviceconfig/proto:basic_java_proto",
5658
"//src/devtools/mobileharness/api/deviceconfig/proto:device_java_proto",
59+
"//src/devtools/mobileharness/fe/v6/service/proto/common:common_resources_java_proto",
5760
"//src/devtools/mobileharness/fe/v6/service/proto/config:config_service_java_proto",
5861
"//src/java/com/google/devtools/mobileharness/fe/v6/service/config/util:config_converter",
5962
"//src/java/com/google/devtools/mobileharness/fe/v6/service/config/util:config_service_capability",
@@ -71,6 +74,7 @@ java_library(
7174
name = "get_recommended_wifi_handler",
7275
srcs = ["GetRecommendedWifiHandler.java"],
7376
deps = [
77+
"//src/devtools/mobileharness/fe/v6/service/proto/common:common_resources_java_proto",
7478
"//src/devtools/mobileharness/fe/v6/service/proto/config:config_service_java_proto",
7579
"//src/java/com/google/devtools/mobileharness/shared/util/logging:google_logger",
7680
"@maven//:com_google_guava_guava",
@@ -83,6 +87,7 @@ java_library(
8387
srcs = ["GetHostDefaultDeviceConfigHandler.java"],
8488
deps = [
8589
"//src/devtools/mobileharness/api/deviceconfig/proto:lab_java_proto",
90+
"//src/devtools/mobileharness/fe/v6/service/proto/common:common_resources_java_proto",
8691
"//src/devtools/mobileharness/fe/v6/service/proto/config:config_resources_java_proto",
8792
"//src/devtools/mobileharness/fe/v6/service/proto/config:config_service_java_proto",
8893
"//src/java/com/google/devtools/mobileharness/fe/v6/service/config/util:config_converter",
@@ -99,6 +104,7 @@ java_library(
99104
srcs = ["GetHostConfigHandler.java"],
100105
deps = [
101106
"//src/devtools/mobileharness/api/deviceconfig/proto:lab_java_proto",
107+
"//src/devtools/mobileharness/fe/v6/service/proto/common:common_resources_java_proto",
102108
"//src/devtools/mobileharness/fe/v6/service/proto/config:config_resources_java_proto",
103109
"//src/devtools/mobileharness/fe/v6/service/proto/config:config_service_java_proto",
104110
"//src/java/com/google/devtools/mobileharness/fe/v6/service/config/util:config_converter",
@@ -115,6 +121,7 @@ java_library(
115121
srcs = ["CheckHostWritePermissionHandler.java"],
116122
deps = [
117123
"//src/devtools/mobileharness/api/deviceconfig/proto:lab_java_proto",
124+
"//src/devtools/mobileharness/fe/v6/service/proto/common:common_resources_java_proto",
118125
"//src/devtools/mobileharness/fe/v6/service/proto/config:config_service_java_proto",
119126
"//src/java/com/google/devtools/mobileharness/fe/v6/service/config/util:config_converter",
120127
"//src/java/com/google/devtools/mobileharness/fe/v6/service/shared/auth",
@@ -131,6 +138,7 @@ java_library(
131138
"//src/devtools/mobileharness/api/deviceconfig/proto:basic_java_proto",
132139
"//src/devtools/mobileharness/api/deviceconfig/proto:lab_java_proto",
133140
"//src/devtools/mobileharness/api/model/proto:lab_java_proto",
141+
"//src/devtools/mobileharness/fe/v6/service/proto/common:common_resources_java_proto",
134142
"//src/devtools/mobileharness/fe/v6/service/proto/config:config_resources_java_proto",
135143
"//src/devtools/mobileharness/fe/v6/service/proto/config:config_service_java_proto",
136144
"//src/java/com/google/devtools/mobileharness/fe/v6/service/config/util:config_converter",

src/java/com/google/devtools/mobileharness/fe/v6/service/config/handlers/CheckDeviceWritePermissionHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.google.common.util.concurrent.ListenableFuture;
2323
import com.google.common.util.concurrent.ListeningExecutorService;
2424
import com.google.devtools.mobileharness.api.deviceconfig.proto.Device.DeviceConfig;
25+
import com.google.devtools.mobileharness.fe.v6.service.proto.common.Universe;
2526
import com.google.devtools.mobileharness.fe.v6.service.proto.config.CheckDeviceWritePermissionRequest;
2627
import com.google.devtools.mobileharness.fe.v6.service.proto.config.CheckDeviceWritePermissionResponse;
2728
import com.google.devtools.mobileharness.fe.v6.service.shared.DeviceDataLoader;
@@ -52,14 +53,13 @@ public final class CheckDeviceWritePermissionHandler {
5253
}
5354

5455
public ListenableFuture<CheckDeviceWritePermissionResponse> checkDeviceWritePermission(
55-
CheckDeviceWritePermissionRequest request, Optional<String> username) {
56+
CheckDeviceWritePermissionRequest request, Universe universe, Optional<String> username) {
5657
if (username.isEmpty()) {
5758
return immediateFuture(
5859
CheckDeviceWritePermissionResponse.newBuilder().setHasPermission(false).build());
5960
}
6061
String user = username.get();
6162
String deviceId = request.getId();
62-
String universe = request.getUniverse();
6363

6464
return Futures.transformAsync(
6565
deviceDataLoader.loadDeviceData(deviceId, universe),

src/java/com/google/devtools/mobileharness/fe/v6/service/config/handlers/CheckHostWritePermissionHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.common.util.concurrent.ListeningExecutorService;
2424
import com.google.devtools.mobileharness.api.deviceconfig.proto.Lab.LabConfig;
2525
import com.google.devtools.mobileharness.fe.v6.service.config.util.ConfigConverter;
26+
import com.google.devtools.mobileharness.fe.v6.service.proto.common.Universe;
2627
import com.google.devtools.mobileharness.fe.v6.service.proto.config.CheckHostWritePermissionRequest;
2728
import com.google.devtools.mobileharness.fe.v6.service.proto.config.CheckHostWritePermissionResponse;
2829
import com.google.devtools.mobileharness.fe.v6.service.shared.auth.GroupMembershipProvider;
@@ -51,14 +52,13 @@ public final class CheckHostWritePermissionHandler {
5152
}
5253

5354
public ListenableFuture<CheckHostWritePermissionResponse> checkHostWritePermission(
54-
CheckHostWritePermissionRequest request, Optional<String> username) {
55+
CheckHostWritePermissionRequest request, Universe universe, Optional<String> username) {
5556
if (username.isEmpty()) {
5657
return immediateFuture(
5758
CheckHostWritePermissionResponse.newBuilder().setHasPermission(false).build());
5859
}
5960
String user = username.get();
6061
String hostName = request.getHostName();
61-
String universe = request.getUniverse();
6262

6363
return Futures.transformAsync(
6464
configurationProvider.getLabConfig(hostName, universe),

src/java/com/google/devtools/mobileharness/fe/v6/service/config/handlers/GetDeviceConfigHandler.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.google.devtools.mobileharness.fe.v6.service.config.util.ConfigConverter;
2626
import com.google.devtools.mobileharness.fe.v6.service.config.util.ConfigServiceCapability;
2727
import com.google.devtools.mobileharness.fe.v6.service.config.util.ConfigServiceCapabilityFactory;
28+
import com.google.devtools.mobileharness.fe.v6.service.proto.common.Universe;
2829
import com.google.devtools.mobileharness.fe.v6.service.proto.config.DeviceConfig;
2930
import com.google.devtools.mobileharness.fe.v6.service.proto.config.DeviceConfigUiStatus;
3031
import com.google.devtools.mobileharness.fe.v6.service.proto.config.GetDeviceConfigRequest;
@@ -53,18 +54,19 @@ public final class GetDeviceConfigHandler {
5354
this.executor = executor;
5455
}
5556

56-
public ListenableFuture<GetDeviceConfigResponse> getDeviceConfig(GetDeviceConfigRequest request) {
57+
public ListenableFuture<GetDeviceConfigResponse> getDeviceConfig(
58+
GetDeviceConfigRequest request, Universe universe) {
5759
logger.atInfo().log("Getting device config for %s", request.getId());
5860
ConfigServiceCapability configServiceCapability =
59-
configServiceCapabilityFactory.create(request.getUniverse());
61+
configServiceCapabilityFactory.create(universe);
6062
try {
6163
configServiceCapability.checkConfigServiceAvailability();
6264
} catch (UnsupportedOperationException e) {
6365
return immediateFailedFuture(e);
6466
}
6567

6668
ListenableFuture<DeviceData> deviceDataFuture =
67-
deviceDataLoader.loadDeviceData(request.getId(), request.getUniverse());
69+
deviceDataLoader.loadDeviceData(request.getId(), universe);
6870

6971
return Futures.transform(
7072
deviceDataFuture,

src/java/com/google/devtools/mobileharness/fe/v6/service/config/handlers/GetHostConfigHandler.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.google.devtools.mobileharness.fe.v6.service.config.util.ConfigConverter;
2727
import com.google.devtools.mobileharness.fe.v6.service.config.util.ConfigServiceCapability;
2828
import com.google.devtools.mobileharness.fe.v6.service.config.util.ConfigServiceCapabilityFactory;
29+
import com.google.devtools.mobileharness.fe.v6.service.proto.common.Universe;
2930
import com.google.devtools.mobileharness.fe.v6.service.proto.config.GetHostConfigRequest;
3031
import com.google.devtools.mobileharness.fe.v6.service.proto.config.GetHostConfigResponse;
3132
import com.google.devtools.mobileharness.fe.v6.service.proto.config.HostConfig;
@@ -53,18 +54,19 @@ public final class GetHostConfigHandler {
5354
this.executor = executor;
5455
}
5556

56-
public ListenableFuture<GetHostConfigResponse> getHostConfig(GetHostConfigRequest request) {
57+
public ListenableFuture<GetHostConfigResponse> getHostConfig(
58+
GetHostConfigRequest request, Universe universe) {
5759
logger.atInfo().log("Getting host config for %s", request.getHostName());
5860
ConfigServiceCapability configServiceCapability =
59-
configServiceCapabilityFactory.create(request.getUniverse());
61+
configServiceCapabilityFactory.create(universe);
6062
try {
6163
configServiceCapability.checkConfigServiceAvailability();
6264
} catch (UnsupportedOperationException e) {
6365
return immediateFailedFuture(e);
6466
}
6567

6668
return Futures.transform(
67-
configurationProvider.getLabConfig(request.getHostName(), request.getUniverse()),
69+
configurationProvider.getLabConfig(request.getHostName(), universe),
6870
labConfigOpt -> {
6971
if (labConfigOpt.isEmpty()) {
7072
return GetHostConfigResponse.getDefaultInstance();

0 commit comments

Comments
 (0)