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