Call apt* utilities.
(args, scope=True, **kwargs)
| 134 | |
| 135 | |
| 136 | def _call_apt(args, scope=True, **kwargs): |
| 137 | """ |
| 138 | Call apt* utilities. |
| 139 | """ |
| 140 | cmd = [] |
| 141 | if ( |
| 142 | scope |
| 143 | and salt.utils.systemd.has_scope(__context__) |
| 144 | and __salt__["config.get"]("systemd.scope", True) |
| 145 | ): |
| 146 | cmd.extend(["systemd-run", "--scope", "--description", f'"{__name__}"']) |
| 147 | cmd.extend(args) |
| 148 | |
| 149 | params = { |
| 150 | "output_loglevel": "trace", |
| 151 | "python_shell": False, |
| 152 | "env": salt.utils.environment.get_module_environment(globals()), |
| 153 | } |
| 154 | params.update(kwargs) |
| 155 | |
| 156 | cmd_ret = __salt__["cmd.run_all"](cmd, **params) |
| 157 | count = 0 |
| 158 | while "Could not get lock" in cmd_ret.get("stderr", "") and count < 10: |
| 159 | count += 1 |
| 160 | log.warning("Waiting for dpkg lock release: retrying... %s/100", count) |
| 161 | time.sleep(2**count) |
| 162 | cmd_ret = __salt__["cmd.run_all"](cmd, **params) |
| 163 | return cmd_ret |
| 164 | |
| 165 | |
| 166 | def normalize_name(name): |
no test coverage detected