twc-cli 2.13.2__py3-none-any.whl → 2.14.1__py3-none-any.whl

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/__version__.py CHANGED
@@ -12,5 +12,5 @@
12
12
  import sys
13
13
 
14
14
 
15
- __version__ = "2.13.2"
15
+ __version__ = "2.14.1"
16
16
  __pyversion__ = sys.version.replace("\n", "")
twc/api/client.py CHANGED
@@ -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)
twc/commands/server.py CHANGED
@@ -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
  # ------------------------------------------------------------- #
@@ -1,8 +1,9 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: twc-cli
3
- Version: 2.13.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)
@@ -1,9 +1,9 @@
1
1
  twc/__init__.py,sha256=NwPAMNw3NuHdWGQvWS9_lromVF6VM194oVOipojfJns,113
2
2
  twc/__main__.py,sha256=lgyLdXuTDWQXmXkpGCxStOUBqYGQZEUdlj7IrhJeTdQ,2511
3
- twc/__version__.py,sha256=NBWjRM0ha0tTp0rOGnkTeZ6a4yoNQrLmoS9mVJkabyc,443
3
+ twc/__version__.py,sha256=wZS6burXT-qZq2hHnMe44g3_-SuuXJ18e-_Jj74kJM4,443
4
4
  twc/api/__init__.py,sha256=SXew0Fe51M7nRBNQaaLRH4NjnRHkQUn7J26OCkQsftA,128
5
5
  twc/api/base.py,sha256=QRefnIgmlbz8n37GLBKeAK1AtzkcNo1IFjZgHDDECJ4,7912
6
- twc/api/client.py,sha256=AwnbD78CWv1gSVs4lYBDJ8s0-RRPV2SYOjaAaZlNREg,68129
6
+ twc/api/client.py,sha256=Wfb6DI2gpZjQZvpo-w1tftb2N3G6-PNHfIwkfdmgk2o,68237
7
7
  twc/api/exceptions.py,sha256=6nMU20f-Xe7EbH2jpfmSGMW69Rwfhh_ph9ygz37G0XY,2416
8
8
  twc/api/types.py,sha256=uagnD3TPpoJFYUFK6HfHQPlEXs2GLxuJdjhNIbraXwM,5374
9
9
  twc/apiwrap.py,sha256=hKrg_o6rLfY32SEnWMc1BSXHnSAh7TGar1JQ90YnG5M,2970
@@ -20,7 +20,7 @@ twc/commands/floating_ip.py,sha256=G9nD5BbHCZcuytbzeneDJWQDhd8c8WRtq9pAfwI9m7E,8
20
20
  twc/commands/image.py,sha256=OviQwegXK55H3TBlroCASVcgj2QUVCTo0ZhF5ug9eT8,8165
21
21
  twc/commands/kubernetes.py,sha256=-Cgas1vFVMcrWGinjstuUz3sqX0ZNXv_4mwPwuwKeLE,20870
22
22
  twc/commands/project.py,sha256=xnL3kLIumKzrI9EZ6r6m-PGOl3mZ9IhLQua7WZ3Rghg,10499
23
- twc/commands/server.py,sha256=-XjHsYLRm5TaTn0HkHi3cHvWO3dmpCJssLGm_WFFIN8,72408
23
+ twc/commands/server.py,sha256=tgXhH3vWzigtqdY5Fp6b2dg7_0k8m3LpLV6qw_mamjo,74570
24
24
  twc/commands/ssh_key.py,sha256=NHgTPhAQpDzt-iPHHVo4XqUJvujNqf019N6N9qYZ9Us,7941
25
25
  twc/commands/storage.py,sha256=u7R6L3vZr1YdAVUw-oENAbrkdci2dMb-7E1RkPK9KLg,19404
26
26
  twc/commands/vpc.py,sha256=SAht6UD17mU0d_AZY6W34VEYs7CqUsS2iDakPFxAFQU,8876
@@ -28,8 +28,8 @@ twc/fmt.py,sha256=nbuYZ8nVabYDwCmZqnL3-c6Tmri4B-R_sTCkG6sdfeI,7171
28
28
  twc/typerx.py,sha256=AZ6BgTQvlrZYfKVYd9YqRNQnAR2XuyqImz4rf6di6f4,6737
29
29
  twc/utils.py,sha256=uWizyUC4dHLwtk50q4Sub3zOvnVESfHKBbXYwk5t71w,651
30
30
  twc/vars.py,sha256=ljW52q6XwsbQqOBPGhs5rbZ5ZqVvQXdKqUt8mLhXRts,830
31
- twc_cli-2.13.2.dist-info/COPYING,sha256=fpJLxZS_kHr_659xkpmqEtqHeZp6lQR9CmKCwnYbsmE,1089
32
- twc_cli-2.13.2.dist-info/METADATA,sha256=riGAoW6daPK8Ey7b16NA4Ujwj2q82xR68xP4-CPUBZs,2695
33
- twc_cli-2.13.2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
34
- twc_cli-2.13.2.dist-info/entry_points.txt,sha256=tmTaVRhm8BkNrXC_9XJMum7O9wFVOvkXcBetxmahWvE,40
35
- twc_cli-2.13.2.dist-info/RECORD,,
31
+ twc_cli-2.14.1.dist-info/METADATA,sha256=ElGhHh8URk9vw7rqmVnRK4fRsM0JZhqOGJAX4Z2BbAg,2768
32
+ twc_cli-2.14.1.dist-info/WHEEL,sha256=M5asmiAlL6HEcOq52Yi5mmk9KmTVjY2RDPtO4p9DMrc,88
33
+ twc_cli-2.14.1.dist-info/entry_points.txt,sha256=tmTaVRhm8BkNrXC_9XJMum7O9wFVOvkXcBetxmahWvE,40
34
+ twc_cli-2.14.1.dist-info/licenses/COPYING,sha256=fpJLxZS_kHr_659xkpmqEtqHeZp6lQR9CmKCwnYbsmE,1089
35
+ twc_cli-2.14.1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.3
2
+ Generator: poetry-core 2.2.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any