acloud: default autoconnect to webrtc.
1. change default create argument as webrtc instead of vnc.
2. remove the tag appstreming due to the gce enforcer request the required port https://critique-ng.corp.google.com/cl/350100341.
Bug: 194363961
Bug: 200971710
Test: acloud-dev create
acloud-dev create --local-instance
acloud-dev create --autoconnect vnc
Change-Id: Ia8631592e10f63365c8e919d6a9afb77a6067c20
diff --git a/create/avd_spec.py b/create/avd_spec.py
index 74776e2..c2b0290 100644
--- a/create/avd_spec.py
+++ b/create/avd_spec.py
@@ -200,6 +200,17 @@
self._ProcessMiscArgs(args)
self._ProcessImageArgs(args)
self._ProcessHWPropertyArgs(args)
+ self._ProcessAutoconnect()
+
+ def _ProcessAutoconnect(self):
+ """Process autoconnect.
+
+ Only Cuttlefish AVD support 'webrtc' and need to default use 'webrtc'.
+ Other AVD types(goldfish, cheeps..etc.) still keep using ‘vnc’.
+ """
+ if self._autoconnect == constants.INS_KEY_WEBRTC:
+ if self.avd_type != constants.TYPE_CF:
+ self._autoconnect = constants.INS_KEY_VNC
def _ProcessImageArgs(self, args):
""" Process Image Args.
diff --git a/create/avd_spec_test.py b/create/avd_spec_test.py
index 0dc3d19..28117e9 100644
--- a/create/avd_spec_test.py
+++ b/create/avd_spec_test.py
@@ -152,6 +152,26 @@
self.assertEqual(self.AvdSpec.local_image_dir, expected_image_dir)
self.assertEqual(self.AvdSpec.local_system_image, expected_image_dir)
+ def testProcessAutoconnect(self):
+ """Test process autoconnect."""
+ self.AvdSpec._autoconnect = False
+ self.AvdSpec._ProcessAutoconnect()
+ self.assertEqual(self.AvdSpec._autoconnect, False)
+
+ self.AvdSpec._avd_type = constants.TYPE_CF
+ self.AvdSpec._autoconnect = "webrtc"
+ self.AvdSpec._ProcessAutoconnect()
+ self.assertEqual(self.AvdSpec._autoconnect, "webrtc")
+
+ self.AvdSpec._autoconnect = "vnc"
+ self.AvdSpec._ProcessAutoconnect()
+ self.assertEqual(self.AvdSpec._autoconnect, "vnc")
+
+ self.AvdSpec._avd_type = constants.TYPE_GF
+ self.AvdSpec._autoconnect = "webrtc"
+ self.AvdSpec._ProcessAutoconnect()
+ self.assertEqual(self.AvdSpec._autoconnect, "vnc")
+
def testProcessImageArgs(self):
"""Test process image source."""
self.Patch(glob, "glob", return_value=["fake.img"])
diff --git a/create/create_args.py b/create/create_args.py
index b46cfab..ba939bf 100644
--- a/create/create_args.py
+++ b/create/create_args.py
@@ -55,7 +55,7 @@
"--autoconnect",
type=str,
nargs="?",
- const=constants.INS_KEY_VNC,
+ const=constants.INS_KEY_WEBRTC,
dest="autoconnect",
required=False,
choices=[constants.INS_KEY_VNC, constants.INS_KEY_ADB,
@@ -74,7 +74,7 @@
required=False,
help="Will not automatically create ssh tunnels forwarding adb & vnc "
"when instance created.")
- parser.set_defaults(autoconnect=constants.INS_KEY_VNC)
+ parser.set_defaults(autoconnect=constants.INS_KEY_WEBRTC)
parser.add_argument(
"--unlock",
action="store_true",
@@ -622,11 +622,6 @@
raise errors.CheckPathError(
"Specified path doesn't exist: %s" % tool_dir)
- if args.autoconnect == constants.INS_KEY_WEBRTC:
- if args.avd_type != constants.TYPE_CF:
- raise errors.UnsupportedCreateArgs(
- "'--autoconnect webrtc' only support cuttlefish.")
-
def _VerifyHostArgs(args):
"""Verify args starting with --host.
diff --git a/create/create_args_test.py b/create/create_args_test.py
index a91487d..ba208d6 100644
--- a/create/create_args_test.py
+++ b/create/create_args_test.py
@@ -102,11 +102,6 @@
# Test args.autoconnect webrtc shouldn't raise error.
self.assertEqual(None, create_args.VerifyArgs(mock_args))
- # Test pass in none-cuttlefish avd_type should raise error.
- mock_args.avd_type = constants.TYPE_GF
- self.assertRaises(errors.UnsupportedCreateArgs,
- create_args.VerifyArgs, mock_args)
-
if __name__ == "__main__":
unittest.main()
diff --git a/internal/lib/cvd_compute_client_multi_stage.py b/internal/lib/cvd_compute_client_multi_stage.py
index 4e10524..0a9240a 100644
--- a/internal/lib/cvd_compute_client_multi_stage.py
+++ b/internal/lib/cvd_compute_client_multi_stage.py
@@ -553,8 +553,6 @@
zone=self._zone,
gpu=self._gpu,
extra_scopes=extra_scopes,
- tags=["appstreaming"] if (
- avd_spec and avd_spec.connect_webrtc) else None,
disable_external_ip=disable_external_ip)
ip = gcompute_client.ComputeClient.GetInstanceIP(
self, instance=instance, zone=self._zone)
diff --git a/internal/lib/cvd_compute_client_multi_stage_test.py b/internal/lib/cvd_compute_client_multi_stage_test.py
index 6fecfb6..3699882 100644
--- a/internal/lib/cvd_compute_client_multi_stage_test.py
+++ b/internal/lib/cvd_compute_client_multi_stage_test.py
@@ -115,6 +115,7 @@
self.args.remote_host = False
self.args.launch_args = self.LAUNCH_ARGS
self.args.disable_external_ip = False
+ self.args.autoconnect = False
# pylint: disable=protected-access
@mock.patch.object(utils, "GetBuildEnvironmentVariable", return_value="fake_env_cf_x86")
@@ -197,7 +198,6 @@
zone=self.ZONE,
extra_scopes=self.EXTRA_SCOPES,
gpu=self.GPU,
- tags=None,
disable_external_ip=False)
mock_check_img.return_value = True
@@ -232,7 +232,6 @@
zone=self.ZONE,
extra_scopes=self.EXTRA_SCOPES,
gpu=self.GPU,
- tags=None,
disable_external_ip=False)
def testFormatRemoteHostInstanceName(self):
diff --git a/public/actions/remote_instance_cf_device_factory_test.py b/public/actions/remote_instance_cf_device_factory_test.py
index 3badb2d..f3f0c42 100644
--- a/public/actions/remote_instance_cf_device_factory_test.py
+++ b/public/actions/remote_instance_cf_device_factory_test.py
@@ -69,6 +69,7 @@
args.local_image = constants.FIND_IN_BUILD_ENV
args.local_system_image = None
args.launch_args = None
+ args.autoconnect = constants.INS_KEY_WEBRTC
avd_spec_local_img = avd_spec.AVDSpec(args)
fake_image_name = "/fake/aosp_cf_x86_phone-img-eng.username.zip"
fake_host_package_name = "/fake/host_package.tar.gz"
@@ -78,19 +79,19 @@
fake_host_package_name)
factory_local_img._ProcessArtifacts(constants.IMAGE_SRC_LOCAL)
self.assertEqual(mock_upload.call_count, 1)
- # should not upload certificates
- self.assertEqual(mock_uploadca.call_count, 0)
+ # cf default autoconnect webrtc and should upload certificates
+ self.assertEqual(mock_uploadca.call_count, 1)
mock_uploadca.reset_mock()
- # should upload certificates
- args.autoconnect = constants.INS_KEY_WEBRTC
+ # given autoconnect to vnc should not upload certificates
+ args.autoconnect = constants.INS_KEY_VNC
avd_spec_local_img = avd_spec.AVDSpec(args)
factory_local_img = remote_instance_cf_device_factory.RemoteInstanceDeviceFactory(
avd_spec_local_img,
fake_image_name,
fake_host_package_name)
factory_local_img._ProcessArtifacts(constants.IMAGE_SRC_LOCAL)
- self.assertEqual(mock_uploadca.call_count, 1)
+ self.assertEqual(mock_uploadca.call_count, 0)
# Test image source type is remote.
args.local_image = None