twc-cli 2.13.2__tar.gz → 2.14.1__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.
Potentially problematic release.
This version of twc-cli might be problematic. Click here for more details.
- {twc_cli-2.13.2 → twc_cli-2.14.1}/CHANGELOG.md +18 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/PKG-INFO +4 -2
- {twc_cli-2.13.2 → twc_cli-2.14.1}/pyproject.toml +1 -1
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/__version__.py +1 -1
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/api/client.py +2 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/server.py +66 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/COPYING +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/README.md +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/__init__.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/__main__.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/api/__init__.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/api/base.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/api/exceptions.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/api/types.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/apiwrap.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/__init__.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/account.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/apps.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/balancer.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/common.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/config.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/database.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/domain.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/firewall.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/floating_ip.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/image.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/kubernetes.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/project.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/ssh_key.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/storage.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/commands/vpc.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/fmt.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/typerx.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/utils.py +0 -0
- {twc_cli-2.13.2 → twc_cli-2.14.1}/twc/vars.py +0 -0
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
В этом файле описаны все значимые изменения в Timeweb Cloud CLI. В выпусках мы придерживается правил [семантического версионирования](https://semver.org/lang/ru/).
|
|
4
4
|
|
|
5
|
+
# Версия 2.14.1 (2025.09.22)
|
|
6
|
+
|
|
7
|
+
## Исправлено
|
|
8
|
+
|
|
9
|
+
- Исправлена ошибка из-за которой нельзя было передать user-data файл для cloud-init в команде `twc server create`.
|
|
10
|
+
|
|
11
|
+
# Версия 2.14.0 (2025.09.15)
|
|
12
|
+
|
|
13
|
+
## Добавлено
|
|
14
|
+
|
|
15
|
+
- Добавлена новая команда `twc server list-configurators` с помощью которой можно просмотреть список доступных конфигураторов облачных серверов. Конфигуратор это набор ограничений для параметров виртуальной машины (CPU, RAM, диск и т.п.).
|
|
16
|
+
|
|
17
|
+
# Версия 2.13.2 (2025.06.19)
|
|
18
|
+
|
|
19
|
+
## Исправлено
|
|
20
|
+
|
|
21
|
+
- Исправлена ошибка фильтрации списка пресетов с опцией `--region` в команде `twc server list-presets`
|
|
22
|
+
|
|
5
23
|
# Версия 2.13.1 (2025.06.19)
|
|
6
24
|
|
|
7
25
|
## Исправлено
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: twc-cli
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.14.1
|
|
4
4
|
Summary: Timeweb Cloud Command Line Interface.
|
|
5
5
|
License: MIT
|
|
6
|
+
License-File: COPYING
|
|
6
7
|
Author: ge
|
|
7
8
|
Author-email: dev@timeweb.cloud
|
|
8
9
|
Requires-Python: >=3.8.19,<4.0.0
|
|
@@ -13,6 +14,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
13
14
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
16
|
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
16
18
|
Requires-Dist: click (<8.2.0)
|
|
17
19
|
Requires-Dist: colorama (>=0.4.6,<0.5.0)
|
|
18
20
|
Requires-Dist: pygments (>=2.18.0,<3.0.0)
|
|
@@ -118,6 +118,7 @@ class TimewebCloud(TimewebCloudBase):
|
|
|
118
118
|
availability_zone: Optional[ServiceAvailabilityZone] = None,
|
|
119
119
|
is_root_password_required: Optional[bool] = None,
|
|
120
120
|
project_id: Optional[int] = None,
|
|
121
|
+
cloud_init: Optional[str] = None,
|
|
121
122
|
):
|
|
122
123
|
"""Create new Cloud Server. Note:
|
|
123
124
|
|
|
@@ -161,6 +162,7 @@ class TimewebCloud(TimewebCloudBase):
|
|
|
161
162
|
else {}
|
|
162
163
|
),
|
|
163
164
|
**({"project_id": project_id} if project_id else {}),
|
|
165
|
+
**({"cloud_init": cloud_init} if cloud_init else {}),
|
|
164
166
|
}
|
|
165
167
|
|
|
166
168
|
return self._request("POST", f"{self.api_url}/servers", json=payload)
|
|
@@ -1284,6 +1284,72 @@ def server_list_presets(
|
|
|
1284
1284
|
)
|
|
1285
1285
|
|
|
1286
1286
|
|
|
1287
|
+
# ------------------------------------------------------------- #
|
|
1288
|
+
# $ twc server list-configurators #
|
|
1289
|
+
# ------------------------------------------------------------- #
|
|
1290
|
+
|
|
1291
|
+
|
|
1292
|
+
def _print_configurators(response: Response, filters: Optional[str] = None):
|
|
1293
|
+
confs = response.json()["server_configurators"]
|
|
1294
|
+
if filters:
|
|
1295
|
+
confs = fmt.filter_list(confs, filters)
|
|
1296
|
+
table = fmt.Table()
|
|
1297
|
+
table.header(
|
|
1298
|
+
[
|
|
1299
|
+
"ID",
|
|
1300
|
+
"REGION",
|
|
1301
|
+
"TYPE",
|
|
1302
|
+
"CPU(MIN/MAX)",
|
|
1303
|
+
"RAM(MIN/MAX)",
|
|
1304
|
+
"DISK(MIN/MAX)",
|
|
1305
|
+
"BW(MIN/MAX)",
|
|
1306
|
+
]
|
|
1307
|
+
)
|
|
1308
|
+
for conf in confs:
|
|
1309
|
+
table.row(
|
|
1310
|
+
[
|
|
1311
|
+
conf["id"],
|
|
1312
|
+
conf["location"],
|
|
1313
|
+
conf["disk_type"],
|
|
1314
|
+
f"{conf['requirements']['cpu_min']}/{conf['requirements']['cpu_max']}",
|
|
1315
|
+
f"{conf['requirements']['ram_min']}/{conf['requirements']['ram_max']}",
|
|
1316
|
+
f"{conf['requirements']['disk_min']}/{conf['requirements']['disk_max']}",
|
|
1317
|
+
(
|
|
1318
|
+
f"{conf['requirements']['network_bandwidth_min']}/"
|
|
1319
|
+
f"{conf['requirements']['network_bandwidth_max']}"
|
|
1320
|
+
),
|
|
1321
|
+
]
|
|
1322
|
+
)
|
|
1323
|
+
table.print()
|
|
1324
|
+
|
|
1325
|
+
|
|
1326
|
+
@server.command("list-configurators", "lc")
|
|
1327
|
+
def server_list_configurators(
|
|
1328
|
+
verbose: Optional[bool] = verbose_option,
|
|
1329
|
+
config: Optional[Path] = config_option,
|
|
1330
|
+
profile: Optional[str] = profile_option,
|
|
1331
|
+
output_format: Optional[str] = output_format_option,
|
|
1332
|
+
filters: Optional[str] = filter_option,
|
|
1333
|
+
region: Optional[ServiceRegion] = typer.Option(
|
|
1334
|
+
None, help="Use region (location)."
|
|
1335
|
+
),
|
|
1336
|
+
):
|
|
1337
|
+
"""List Cloud Server configurators (sets of configuration constraints)."""
|
|
1338
|
+
if region:
|
|
1339
|
+
if filters:
|
|
1340
|
+
filters = f"{filters},location:{region.value}"
|
|
1341
|
+
else:
|
|
1342
|
+
filters = f"location:{region.value}"
|
|
1343
|
+
client = create_client(config, profile)
|
|
1344
|
+
response = client.get_server_configurators()
|
|
1345
|
+
fmt.printer(
|
|
1346
|
+
response,
|
|
1347
|
+
output_format=output_format,
|
|
1348
|
+
filters=filters,
|
|
1349
|
+
func=_print_configurators,
|
|
1350
|
+
)
|
|
1351
|
+
|
|
1352
|
+
|
|
1287
1353
|
# ------------------------------------------------------------- #
|
|
1288
1354
|
# $ twc server list-os-images #
|
|
1289
1355
|
# ------------------------------------------------------------- #
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|