|
29 | 29 | is_registry_msi_system, validate_container_app_name, AppType, |
30 | 30 | safe_set, parse_metadata_flags, parse_auth_flags, |
31 | 31 | ensure_workload_profile_supported, _generate_secret_volume_name, |
32 | | - get_linker_client, |
33 | 32 | safe_get, _update_revision_env_secretrefs, _add_or_update_tags, _populate_secret_values, |
34 | 33 | clean_null_values, _add_or_update_env_vars, _remove_env_vars, _get_acr_cred, _ensure_identity_resource_id, |
35 | 34 | create_acrpull_role_assignment, _ensure_location_allowed, get_default_workload_profile_name_from_env, |
|
43 | 42 | ManagedServiceIdentity as ManagedServiceIdentityModel, |
44 | 43 | ) |
45 | 44 |
|
46 | | -from azure.cli.core.commands.client_factory import get_subscription_id |
| 45 | +from azure.cli.core.commands.client_factory import get_subscription_id, get_mgmt_service_client |
47 | 46 | from azure.mgmt.core.tools import parse_resource_id, is_valid_resource_id |
48 | 47 |
|
49 | 48 | from knack.log import get_logger |
|
52 | 51 | from msrest.exceptions import DeserializationError |
53 | 52 |
|
54 | 53 | from ._clients import ManagedEnvironmentClient, ConnectedEnvironmentClient, ManagedEnvironmentPreviewClient |
55 | | -from ._client_factory import handle_raw_exception, handle_non_404_status_code_exception |
| 54 | +from ._client_factory import handle_raw_exception, handle_non_404_status_code_exception, get_linker_client |
56 | 55 | from ._models import ( |
57 | 56 | RegistryCredentials as RegistryCredentialsModel, |
58 | 57 | ContainerResources as ContainerResourcesModel, |
|
70 | 69 | infer_runtime_option |
71 | 70 | ) |
72 | 71 | from ._utils import parse_service_bindings, check_unique_bindings, is_registry_msi_system_environment, \ |
73 | | - env_has_managed_identity, create_acrpull_role_assignment_if_needed |
| 72 | + env_has_managed_identity, create_acrpull_role_assignment_if_needed, is_cloud_supported_by_service_connector |
74 | 73 | from ._validators import validate_create, validate_runtime |
75 | 74 | from ._constants import (HELLO_WORLD_IMAGE, |
76 | 75 | CONNECTED_ENVIRONMENT_TYPE, |
@@ -1592,25 +1591,26 @@ def _update_container_app_source(self, cmd, source, build_env_vars, registry_ser |
1592 | 1591 |
|
1593 | 1592 | def post_process(self, r): |
1594 | 1593 | # Delete managed bindings |
1595 | | - linker_client = None |
1596 | | - if self.get_argument_unbind_service_bindings(): |
1597 | | - linker_client = get_linker_client(self.cmd) |
1598 | | - for item in self.get_argument_unbind_service_bindings(): |
1599 | | - while r["properties"]["provisioningState"].lower() == "inprogress": |
1600 | | - r = self.client.show(self.cmd, self.get_argument_resource_group_name(), self.get_argument_name()) |
1601 | | - time.sleep(1) |
1602 | | - linker_client.linker.begin_delete(resource_uri=r["id"], linker_name=item).result() |
1603 | | - |
1604 | | - # Update managed bindings |
1605 | | - if self.get_argument_service_connectors_def_list() is not None: |
1606 | | - linker_client = get_linker_client(self.cmd) if linker_client is None else linker_client |
1607 | | - for item in self.get_argument_service_connectors_def_list(): |
1608 | | - while r["properties"]["provisioningState"].lower() == "inprogress": |
1609 | | - r = self.client.show(self.cmd, self.get_argument_resource_group_name(), self.get_argument_name()) |
1610 | | - time.sleep(1) |
1611 | | - linker_client.linker.begin_create_or_update(resource_uri=r["id"], |
1612 | | - parameters=item["parameters"], |
1613 | | - linker_name=item["linker_name"]).result() |
| 1594 | + if is_cloud_supported_by_service_connector(self.cmd.cli_ctx): |
| 1595 | + linker_client = None |
| 1596 | + if self.get_argument_unbind_service_bindings(): |
| 1597 | + linker_client = get_linker_client(self.cmd) |
| 1598 | + for item in self.get_argument_unbind_service_bindings(): |
| 1599 | + while r["properties"]["provisioningState"].lower() == "inprogress": |
| 1600 | + r = self.client.show(self.cmd, self.get_argument_resource_group_name(), self.get_argument_name()) |
| 1601 | + time.sleep(1) |
| 1602 | + linker_client.linker.begin_delete(resource_uri=r["id"], linker_name=item).result() |
| 1603 | + |
| 1604 | + # Update managed bindings |
| 1605 | + if self.get_argument_service_connectors_def_list() is not None: |
| 1606 | + linker_client = get_linker_client(self.cmd) if linker_client is None else linker_client |
| 1607 | + for item in self.get_argument_service_connectors_def_list(): |
| 1608 | + while r["properties"]["provisioningState"].lower() == "inprogress": |
| 1609 | + r = self.client.show(self.cmd, self.get_argument_resource_group_name(), self.get_argument_name()) |
| 1610 | + time.sleep(1) |
| 1611 | + linker_client.linker.begin_create_or_update(resource_uri=r["id"], |
| 1612 | + parameters=item["parameters"], |
| 1613 | + linker_name=item["linker_name"]).result() |
1614 | 1614 | return r |
1615 | 1615 |
|
1616 | 1616 | def set_up_service_bindings(self): |
@@ -1644,11 +1644,12 @@ def set_up_service_bindings(self): |
1644 | 1644 | for update_item in service_bindings_def_list: |
1645 | 1645 | if service_bindings_used_map[update_item["name"]] is False: |
1646 | 1646 | # Check if it doesn't exist in existing service linkers |
1647 | | - managed_bindings = linker_client.linker.list(resource_uri=self.containerapp_def["id"]) |
1648 | | - if managed_bindings: |
1649 | | - managed_bindings_list = [item.name for item in managed_bindings] |
1650 | | - if update_item["name"] in managed_bindings_list: |
1651 | | - raise ValidationError("Binding names across managed and dev services should be unique.") |
| 1647 | + if is_cloud_supported_by_service_connector(self.cmd.cli_ctx): |
| 1648 | + managed_bindings = linker_client.linker.list(resource_uri=self.containerapp_def["id"]) |
| 1649 | + if managed_bindings: |
| 1650 | + managed_bindings_list = [item.name for item in managed_bindings] |
| 1651 | + if update_item["name"] in managed_bindings_list: |
| 1652 | + raise ValidationError("Binding names across managed and dev services should be unique.") |
1652 | 1653 |
|
1653 | 1654 | self.new_containerapp["properties"]["template"]["serviceBinds"].append(update_item) |
1654 | 1655 |
|
|
0 commit comments