MCPcopy Create free account
hub / github.com/Flagsmith/flagsmith / process_import_request

Function process_import_request

api/integrations/launch_darkly/services.py:1106–1185  ·  view source on GitHub ↗
(
    import_request: LaunchDarklyImportRequest,
)

Source from the content-addressed store, hash-verified

1104
1105
1106def process_import_request(
1107 import_request: LaunchDarklyImportRequest,
1108) -> None:
1109 with _complete_import_request(import_request):
1110 ld_token = _unsign_ld_value(
1111 import_request.ld_token,
1112 import_request.created_by.id,
1113 )
1114 ld_project_key = import_request.ld_project_key
1115
1116 ld_client = LaunchDarklyClient(ld_token)
1117
1118 with closing_stale_connections():
1119 try:
1120 ld_environments = ld_client.get_environments(project_key=ld_project_key)
1121 ld_flags = ld_client.get_flags_by_envs(
1122 project_key=ld_project_key,
1123 environment_keys=[env["key"] for env in ld_environments],
1124 )
1125 ld_flag_tags = ld_client.get_flag_tags()
1126 # ld_segment_tags = ld_client.get_segment_tags()
1127 # Keyed by (segment, environment)
1128 ld_segments: list[tuple[ld_types.UserSegment, str]] = []
1129 for env in ld_environments:
1130 ld_segments_for_env = ld_client.get_segments(
1131 project_key=ld_project_key,
1132 environment_key=env["key"],
1133 )
1134 for segment in ld_segments_for_env:
1135 ld_segments.append((segment, env["key"]))
1136
1137 except RequestException as exc:
1138 _log_error(
1139 import_request=import_request,
1140 error_message=(
1141 f"{exc.__class__.__name__} "
1142 f"{str(exc.response.status_code) + ' ' if exc.response else ''}"
1143 + f"when requesting {getattr(exc.request, 'path_url', 'unknown')}"
1144 ),
1145 )
1146 raise
1147
1148 # Create environments
1149 environments_by_ld_environment_key = _create_environments_from_ld(
1150 ld_environments=ld_environments,
1151 project_id=import_request.project_id,
1152 )
1153
1154 # Create segments using `ld_segment_tags`
1155 # TODO populate with LD tags when https://github.com/Flagsmith/flagsmith/issues/3241 is done
1156 segment_tags_by_ld_tag: dict[str, Tag] = {}
1157 segments_by_ld_key = _create_segments_from_ld(
1158 import_request=import_request,
1159 ld_segments=ld_segments,
1160 environments_by_ld_environment_key=environments_by_ld_environment_key,
1161 tags_by_ld_tag=segment_tags_by_ld_tag,
1162 project_id=import_request.project_id,
1163 )

Calls 15

get_environmentsMethod · 0.95
get_flags_by_envsMethod · 0.95
get_flag_tagsMethod · 0.95
get_segmentsMethod · 0.95
LaunchDarklyClientClass · 0.90
_complete_import_requestFunction · 0.85
_unsign_ld_valueFunction · 0.85
_log_errorFunction · 0.85
_create_segments_from_ldFunction · 0.85

Used in the wild real call sites across dependent graphs

searching dependent graphs…