in azext_edge/edge/providers/orchestration/clone.py [0:0]
def _analyze_instance_resources(self):
api_version = self.version_guru.get_instance_api()
brokers_iter = self.instances.iotops_mgmt_client.broker.list_by_resource_group(
resource_group_name=self.resource_group_name, instance_name=self.instance_name
)
# Let us keep things simple atm
default_broker = list(brokers_iter)[0]
self._add_resource(
key=StateResourceKey.BROKER,
api_version=api_version,
data=default_broker,
depends_on=StateResourceKey.INSTANCE,
)
# Initial dependencies
nested_params = {
**build_parameter(name=TemplateParams.CUSTOM_LOCATION_NAME.value),
**build_parameter(name=TemplateParams.INSTANCE_NAME.value),
}
broker_resource_id_expr = get_resource_id_expr(rtype=default_broker["type"], resource_id=default_broker["id"])
# authN
self._add_deployment(
key=StateResourceKey.AUTHN,
api_version=api_version,
data_iter=self.instances.iotops_mgmt_client.broker_authentication.list_by_resource_group(
resource_group_name=self.resource_group_name,
instance_name=self.instance_name,
broker_name=default_broker["name"],
),
depends_on=broker_resource_id_expr,
parameters=nested_params,
)
# authZ
self._add_deployment(
key=StateResourceKey.AUTHZ,
api_version=api_version,
data_iter=self.instances.iotops_mgmt_client.broker_authorization.list_by_resource_group(
resource_group_name=self.resource_group_name,
instance_name=self.instance_name,
broker_name=default_broker["name"],
),
depends_on=broker_resource_id_expr,
parameters=nested_params,
)
# listener
listener_depends_on = []
for active in self.active_deployment:
if active in [StateResourceKey.AUTHN, StateResourceKey.AUTHZ]:
listener_depends_on.append(
get_resource_id_by_parts("Microsoft.Resources/deployments", self.active_deployment[active][-1])
)
self._add_deployment(
key=StateResourceKey.LISTENER,
api_version=api_version,
data_iter=self.instances.iotops_mgmt_client.broker_listener.list_by_resource_group(
resource_group_name=self.resource_group_name,
instance_name=self.instance_name,
broker_name=default_broker["name"],
),
depends_on=listener_depends_on,
parameters=nested_params,
)
instance_resource_id_expr = get_resource_id_by_param(
"microsoft.iotoperations/instances", TemplateParams.INSTANCE_NAME
)
# endpoint
self._add_deployment(
key=StateResourceKey.ENDPOINT,
api_version=api_version,
data_iter=self.instances.iotops_mgmt_client.dataflow_endpoint.list_by_resource_group(
resource_group_name=self.resource_group_name, instance_name=self.instance_name
),
depends_on=instance_resource_id_expr,
parameters=nested_params,
)
# profile
profile_iter = list(
self.instances.iotops_mgmt_client.dataflow_profile.list_by_resource_group(
resource_group_name=self.resource_group_name, instance_name=self.instance_name
)
)
self._add_deployment(
key=StateResourceKey.PROFILE,
api_version=api_version,
data_iter=profile_iter,
depends_on=instance_resource_id_expr,
parameters=nested_params,
)
# dataflow
if profile_iter:
dataflows = []
for profile in profile_iter:
dataflows.extend(
self.instances.iotops_mgmt_client.dataflow.list_by_profile_resource(
resource_group_name=self.resource_group_name,
instance_name=self.instance_name,
dataflow_profile_name=profile["name"],
)
)
self._add_deployment(
key=StateResourceKey.DATAFLOW,
api_version=api_version,
data_iter=dataflows,
depends_on=[
get_resource_id_by_parts(
"Microsoft.Resources/deployments", self.active_deployment[StateResourceKey.PROFILE][-1]
),
get_resource_id_by_parts(
"Microsoft.Resources/deployments", self.active_deployment[StateResourceKey.ENDPOINT][-1]
),
],
parameters=nested_params,
)