uber-compose 2.1.5b2__tar.gz → 2.1.5b4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/PKG-INFO +1 -1
  2. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/core/docker_compose.py +31 -6
  3. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/core/docker_compose_shell/interface.py +2 -2
  4. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/helpers/health_policy.py +2 -0
  5. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose.egg-info/PKG-INFO +1 -1
  6. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/LICENSE +0 -0
  7. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/README.md +0 -0
  8. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/setup.cfg +0 -0
  9. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/setup.py +0 -0
  10. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/__init__.py +0 -0
  11. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/core/__init__.py +0 -0
  12. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/core/constants.py +0 -0
  13. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/core/docker_compose_shell/__init__.py +0 -0
  14. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/core/docker_compose_shell/types.py +0 -0
  15. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/core/sequence_run_types.py +0 -0
  16. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/core/system_docker_compose.py +0 -0
  17. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/core/utils/__init__.py +0 -0
  18. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/core/utils/compose_files.py +0 -0
  19. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/core/utils/compose_instance_cfg.py +0 -0
  20. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/core/utils/env_files.py +0 -0
  21. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/core/utils/process_command_output.py +0 -0
  22. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/core/utils/shell_process.py +0 -0
  23. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/core/utils/state_waiting.py +0 -0
  24. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/env_description/__init__.py +0 -0
  25. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/env_description/env_tools.py +0 -0
  26. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/env_description/env_types.py +0 -0
  27. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/errors/__init__.py +0 -0
  28. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/errors/migrations.py +0 -0
  29. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/errors/up.py +0 -0
  30. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/helpers/__init__.py +0 -0
  31. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/helpers/broken_services.py +0 -0
  32. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/helpers/bytes_pickle.py +0 -0
  33. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/helpers/countdown_counter.py +0 -0
  34. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/helpers/exec_record.py +0 -0
  35. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/helpers/exec_result.py +0 -0
  36. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/helpers/jobs_result.py +0 -0
  37. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/helpers/labels.py +0 -0
  38. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/helpers/singleton.py +0 -0
  39. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/helpers/state_keeper.py +0 -0
  40. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/output/__init__.py +0 -0
  41. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/output/console.py +0 -0
  42. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/output/styles.py +0 -0
  43. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/uber_compose.py +0 -0
  44. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/utils/__init__.py +0 -0
  45. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/utils/docker_compose_files_path.py +0 -0
  46. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/utils/docker_compose_service_deps.py +0 -0
  47. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/utils/search_docker_compose_files.py +0 -0
  48. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/utils/services_construction.py +0 -0
  49. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/vedro_plugin/__init__.py +0 -0
  50. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/vedro_plugin/base_structures/__init__.py +0 -0
  51. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/vedro_plugin/base_structures/common_json_cli.py +0 -0
  52. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/vedro_plugin/helpers/__init__.py +0 -0
  53. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/vedro_plugin/helpers/scenario_ordering.py +0 -0
  54. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/vedro_plugin/helpers/scenario_tag_processing.py +0 -0
  55. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/vedro_plugin/helpers/test_env_vars_setter.py +0 -0
  56. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/vedro_plugin/plugin.py +0 -0
  57. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/version +0 -0
  58. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose/version.py +0 -0
  59. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose.egg-info/SOURCES.txt +0 -0
  60. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose.egg-info/dependency_links.txt +0 -0
  61. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose.egg-info/requires.txt +0 -0
  62. {uber_compose-2.1.5b2 → uber_compose-2.1.5b4}/uber_compose.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uber-compose
3
- Version: 2.1.5b2
3
+ Version: 2.1.5b4
4
4
  Summary: docker compose testing env orchestrator
5
5
  Home-page: https://github.com/ko10ok/uber-compose
6
6
  Author: Yuriy Sagitov
@@ -112,24 +112,49 @@ class ComposeInstance:
112
112
  # TODO check if need to template migrations
113
113
  # substituted_cmd = handler.cmd.format(**env_config_instance.env_services_map)
114
114
  substituted_cmd = handler.cmd
115
- migrate_result = await self.compose_executor.dc_exec_until_state(
115
+ migration_result = await self.compose_executor.dc_exec_until_state(
116
116
  target_service, substituted_cmd,
117
117
  kill_before=False,
118
118
  kill_after=False,
119
119
  )
120
- if not migrate_result.finished or migrate_result.stderr:
120
+
121
+ migration_errors = [error for error in migration_result.stderr.split(b'\n') if error] # empty or none skips
122
+ skipper_migration_errors = [
123
+ current_error
124
+ for current_error in migration_errors
125
+ if any(
126
+ skip_error in current_error for skip_error in (self.health_policy.skip_migrations_errors or [])
127
+ )
128
+ ]
129
+
130
+ for skipped_error in skipper_migration_errors:
131
+ self.logger.stage_info(
132
+ Text(
133
+ f'⚠️Skipping migration error for "{substituted_cmd}" on {target_service}:'
134
+ f'\n{skipped_error=}'
135
+ )
136
+ )
137
+
138
+ critical_migration_errors = [
139
+ error
140
+ for error in migration_errors
141
+ if error not in skipper_migration_errors
142
+ ]
143
+ if not migration_result.finished or critical_migration_errors:
121
144
  services_status = await self.compose_executor.dc_state()
122
145
  error = Text(f"Can't migrate service {target_service}, with {substituted_cmd}", style=Style.bad).append(
123
- Text(f"\n{migrate_result.stdout=}\n",style=Style.regular)
146
+ Text(f"\n{migration_result.stdout=}\n",style=Style.regular)
147
+ ).append(
148
+ Text(f"{migration_result.stderr=}\n", style=Style.bad)
124
149
  ).append(
125
- Text(f"{migrate_result.stderr=}", style=Style.bad)
150
+ Text(f"Services status:\n", style=Style.info)
126
151
  ).append(
127
152
  services_status.as_rich_text()
128
153
  )
129
154
  self.logger.error(error)
130
155
  self.logger.error_details(f"\nServices logs:\n {await self.logs(services)}")
131
- raise ServicesUpError(f"Can't migrate service {target_service}, with {substituted_cmd}"
132
- f"\n{migrate_result.stdout=}\n{migrate_result.stderr=}"
156
+ raise ServicesUpError(f"Can't migrate service {target_service}, with {substituted_cmd}: {migration_result.finished=}"
157
+ f"\n{migration_result.stdout=}\n{migration_result.stderr=}\n"
133
158
  f"\nServices status:\n {services_status.as_rich_text()}") from None
134
159
 
135
160
  async def run_services_pack(self, services: list[str], migrations):
@@ -366,12 +366,12 @@ class ComposeShellInterface:
366
366
  if process_ids == [-1]:
367
367
  self.logger.stage_details(Text(
368
368
  (
369
- f'Process:\n{cmd}\nwas not checked for completion '
369
+ f'⚠️ Process:\n{cmd}\nwas not checked for completion '
370
370
  f'due to no "pidof" tool in container {container}'
371
371
  ),
372
372
  style=Style.suspicious
373
373
  ))
374
- check_finished_result = False
374
+ check_finished_result = True
375
375
  elif process_ids:
376
376
  self.logger.error(Text('Process was not completed', style=Style.suspicious))
377
377
  check_finished_result = False
@@ -9,3 +9,5 @@ class UpHealthPolicy:
9
9
  service_up_check_delay_s: int = 3
10
10
 
11
11
  pre_check_delay_s: float = 0
12
+
13
+ skip_migrations_errors: list[bytes] = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uber-compose
3
- Version: 2.1.5b2
3
+ Version: 2.1.5b4
4
4
  Summary: docker compose testing env orchestrator
5
5
  Home-page: https://github.com/ko10ok/uber-compose
6
6
  Author: Yuriy Sagitov
File without changes
File without changes
File without changes
File without changes