snapctl 0.47.0__py3-none-any.whl → 0.47.2__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 snapctl might be problematic. Click here for more details.
- snapctl/commands/byosnap.py +31 -2
- snapctl/config/constants.py +1 -1
- snapctl/data/profiles/snapser-byosnap-profile.yml +54 -0
- snapctl/data/releases/beta-0.47.1.mdx +11 -0
- snapctl/data/releases/beta-0.47.2.mdx +5 -0
- {snapctl-0.47.0.dist-info → snapctl-0.47.2.dist-info}/METADATA +1 -1
- {snapctl-0.47.0.dist-info → snapctl-0.47.2.dist-info}/RECORD +10 -7
- {snapctl-0.47.0.dist-info → snapctl-0.47.2.dist-info}/LICENSE +0 -0
- {snapctl-0.47.0.dist-info → snapctl-0.47.2.dist-info}/WHEEL +0 -0
- {snapctl-0.47.0.dist-info → snapctl-0.47.2.dist-info}/entry_points.txt +0 -0
snapctl/commands/byosnap.py
CHANGED
|
@@ -961,6 +961,8 @@ class ByoSnap:
|
|
|
961
961
|
# Setup
|
|
962
962
|
self._setup_token_and_token_parts(
|
|
963
963
|
self.base_url, self.api_key, self.byosnap_id)
|
|
964
|
+
# Setup the profile data
|
|
965
|
+
self._setup_and_validate_byosnap_profile_data()
|
|
964
966
|
# Validator
|
|
965
967
|
ByoSnap._validate_byosnap_id(self.byosnap_id)
|
|
966
968
|
if self.token_parts is None:
|
|
@@ -988,6 +990,8 @@ class ByoSnap:
|
|
|
988
990
|
# Setup
|
|
989
991
|
self._setup_token_and_token_parts(
|
|
990
992
|
self.base_url, self.api_key, self.byosnap_id)
|
|
993
|
+
# Setup the profile data
|
|
994
|
+
self._setup_and_validate_byosnap_profile_data()
|
|
991
995
|
# Validator
|
|
992
996
|
ByoSnap._validate_byosnap_id(self.byosnap_id)
|
|
993
997
|
if self.token_parts is None:
|
|
@@ -1405,8 +1409,32 @@ class ByoSnap:
|
|
|
1405
1409
|
progress.add_task(
|
|
1406
1410
|
description='Updating your Byosnap...', total=None)
|
|
1407
1411
|
try:
|
|
1412
|
+
profile_data = self._get_profile_contents()
|
|
1413
|
+
dev_template = None
|
|
1414
|
+
if 'dev_template' in profile_data:
|
|
1415
|
+
dev_template = profile_data['dev_template']
|
|
1416
|
+
stage_template = None
|
|
1417
|
+
if 'stage_template' in profile_data:
|
|
1418
|
+
stage_template = profile_data['stage_template']
|
|
1419
|
+
prod_template = None
|
|
1420
|
+
if 'prod_template' in profile_data:
|
|
1421
|
+
prod_template = profile_data['prod_template']
|
|
1408
1422
|
payload = {
|
|
1409
|
-
|
|
1423
|
+
"image_tag": self.tag,
|
|
1424
|
+
"base_url": f"{self.prefix}/{self.byosnap_id}",
|
|
1425
|
+
"ingress": {
|
|
1426
|
+
"external_port": self.ingress_external_port,
|
|
1427
|
+
"internal_ports": self.ingress_internal_ports
|
|
1428
|
+
},
|
|
1429
|
+
"readiness_probe_config": {
|
|
1430
|
+
"path": self.readiness_path,
|
|
1431
|
+
"initial_delay_seconds": self.readiness_delay
|
|
1432
|
+
},
|
|
1433
|
+
"dev_template": dev_template,
|
|
1434
|
+
"stage_template": stage_template,
|
|
1435
|
+
"prod_template": prod_template,
|
|
1436
|
+
# Currently not supported so we are just hardcoding an empty list
|
|
1437
|
+
"egress": {"ports": []},
|
|
1410
1438
|
}
|
|
1411
1439
|
res = requests.patch(
|
|
1412
1440
|
f"{self.base_url}/v1/snapser-api/byosnaps/{self.byosnap_id}/versions/{self.version}",
|
|
@@ -1534,8 +1562,9 @@ class ByoSnap:
|
|
|
1534
1562
|
else:
|
|
1535
1563
|
file_save_path = os.path.join(
|
|
1536
1564
|
os.getcwd(), self.profile_filename)
|
|
1565
|
+
extension = self.profile_filename.split('.')[-1]
|
|
1537
1566
|
file_written = ByoSnap._handle_output_file(
|
|
1538
|
-
f"{ByoSnap.PROFILE_FILES_PATH}{
|
|
1567
|
+
f"{ByoSnap.PROFILE_FILES_PATH}snapser-byosnap-profile.{extension}", file_save_path
|
|
1539
1568
|
)
|
|
1540
1569
|
if file_written:
|
|
1541
1570
|
snapctl_success(
|
snapctl/config/constants.py
CHANGED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
name: "My BYOSnap" # TODO: Add your BYOSnap name here.
|
|
2
|
+
description: "Description" # TODO: Add your BYOSnap description here
|
|
3
|
+
platform: "linux/arm64" # TODO: Add your platform here. Options are 'linux/arm64' or 'linux/amd64'
|
|
4
|
+
language: "go" # TODO: Add your language here. Options are 'go', 'node', 'python', 'java', 'csharp', 'cpp', 'rust', 'ruby', 'php', 'perl', 'clojure', 'lua', 'ts', 'js', 'kotlin', 'c'
|
|
5
|
+
prefix: "/v1" # TODO: Add your prefix here. Prefix should start with / and only contain one path segment. Eg: '/v1'
|
|
6
|
+
ingress:
|
|
7
|
+
external_port:
|
|
8
|
+
name: http
|
|
9
|
+
port: 5003 # TODO: Enter your external port here. Eg: 5003. Make sure it is a number and not a string.
|
|
10
|
+
internal_ports: []
|
|
11
|
+
# Uncomment the section below if you need internal ports
|
|
12
|
+
# internal_ports:
|
|
13
|
+
# - name: "grpc" # TODO: Optionally add your internal port name here. Eg: grpc. Names should be unique across the `ingress` dict. IMPORTANT: If you are not adding any internal ports, just keep `internal_ports: []`
|
|
14
|
+
# port: 5004 # TODO: Optionally add your internal port here. Eg: 5004. Make sure it is a number and not a string. Port numbers should be unique across the `ingress` dict.
|
|
15
|
+
readiness_probe_config:
|
|
16
|
+
initial_delay_seconds: null
|
|
17
|
+
path: null
|
|
18
|
+
# Uncomment the section below if you need a readiness probe
|
|
19
|
+
# readiness_probe_config:
|
|
20
|
+
# initial_delay_seconds: 5 # "TODO: Optionally add your readiness delay in seconds here. Eg: 5 or use null. Make sure it is a number and not a string."
|
|
21
|
+
# path: '/healthz' # "TODO: Optionally add your readiness path here. Eg: '/health' or use null"
|
|
22
|
+
dev_template:
|
|
23
|
+
cpu: 100 # Options are [100, 250, 500, 750, 1000, 1500, 2000, 3000]
|
|
24
|
+
memory: 0.125 # Options are [0.125, 0.25, 0.5, 1, 2, 3, 4]
|
|
25
|
+
min_replicas: 1 # In Dev min_replicas should be 1
|
|
26
|
+
cmd: "" # TODO: Optionally add your dev command here. Eg: "python3 app.py" or use an empty string
|
|
27
|
+
args: [] # TODO: Optionally add your dev args here. Eg: ["--port", "5003"] or use an empty array
|
|
28
|
+
env_params: [] # TODO: Optionally add your dev env params here. Eg: [{"key": "SNAPSER_ENVIRONMENT", "value": "DEVELOPMENT"}] or use an empty array
|
|
29
|
+
# Uncomment the section below if you need dev env params
|
|
30
|
+
# env_params:
|
|
31
|
+
# - key: SNAPSER_ENVIRONMENT
|
|
32
|
+
# value: DEVELOPMENT
|
|
33
|
+
stage_template:
|
|
34
|
+
cpu: 100 # Options are [100, 250, 500, 750, 1000, 1500, 2000, 3000]
|
|
35
|
+
memory: 0.125 # Options are [0.125, 0.25, 0.5, 1, 2, 3, 4]
|
|
36
|
+
min_replicas: 1 # In Staging min_replicas should be 1
|
|
37
|
+
cmd: "" # TODO: Optionally add your dev command here. Eg: "python3 app.py" or use an empty string
|
|
38
|
+
args: [] # TODO: Optionally add your dev args here. Eg: ["--port", "5003"] or use an empty array
|
|
39
|
+
env_params: [] # TODO: Optionally add your dev env params here. Eg: [{"key": "SNAPSER_ENVIRONMENT", "value": "STAGING"}] or use an empty array
|
|
40
|
+
# Uncomment the section below if you need dev env params
|
|
41
|
+
# env_params:
|
|
42
|
+
# - key: SNAPSER_ENVIRONMENT
|
|
43
|
+
# value: STAGING
|
|
44
|
+
prod_template:
|
|
45
|
+
cpu: 100 # Options are [100, 250, 500, 750, 1000, 1500, 2000, 3000]
|
|
46
|
+
memory: 0.125 # Options are [0.125, 0.25, 0.5, 1, 2, 3, 4]
|
|
47
|
+
min_replicas: 1 # Options are [1, 2, 3, 4]
|
|
48
|
+
cmd: "" # TODO: Optionally add your dev command here. Eg: "python3 app.py" or use an empty string
|
|
49
|
+
args: [] # TODO: Optionally add your dev args here. Eg: ["--port", "5003"] or use an empty array
|
|
50
|
+
env_params: [] # TODO: Optionally add your dev env params here. Eg: [{"key": "SNAPSER_ENVIRONMENT", "value": "PRODUCTION"}] or use an empty array
|
|
51
|
+
# Uncomment the section below if you need dev env params
|
|
52
|
+
# env_params:
|
|
53
|
+
# - key: SNAPSER_ENVIRONMENT
|
|
54
|
+
# value: PRODUCTION
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
## beta-0.47.1
|
|
2
|
+
##### March 12, 2025
|
|
3
|
+
|
|
4
|
+
### [Breaking Change] Feature
|
|
5
|
+
1. The sync command now also syncs the BYOSnap profile with the Snapend as well
|
|
6
|
+
```bash
|
|
7
|
+
snapctl byosnap sync --byosnap-id byosnap-jinks-flask --path /Users/Ajinkya/Development/SnapserEngine/jinks_flask --version "$version" --snapend-id "${snapendId}" --blocking
|
|
8
|
+
```
|
|
9
|
+
The only reason this constitutes a breaking change is if users of the sync command were not
|
|
10
|
+
anticipating the BYOSnap profile to be checked. Now that this command also synchronizes the profile,
|
|
11
|
+
you must have the BYOSnap profile located at the --path or within the --resources-path folder.
|
|
@@ -2,28 +2,31 @@ snapctl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
2
2
|
snapctl/__main__.py,sha256=43jKoTk8b85hk_MT6499N3ruHdEfM8WBImd_-3VzjI8,116
|
|
3
3
|
snapctl/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
snapctl/commands/byogs.py,sha256=Cq0-dwMmDCe_oynAANRGlS9gVBzq2rRU4y04jKhz870,19321
|
|
5
|
-
snapctl/commands/byosnap.py,sha256=
|
|
5
|
+
snapctl/commands/byosnap.py,sha256=Ktu6jYm6Ipn73R9hxwGxj9TqzdOLE_lpYUSyiRm7kF0,74977
|
|
6
6
|
snapctl/commands/game.py,sha256=nCXtEXAJkvOw26c_OBGr7Pz4hwu-5FXHyBR2kkXhLCM,5247
|
|
7
7
|
snapctl/commands/generate.py,sha256=9-NlZVQllBT2LZT_t9S3ztwtHzTbM-C8_x0f6z70U3g,5606
|
|
8
8
|
snapctl/commands/release_notes.py,sha256=K1OdX94pL-pKL2Depbs-AkVcPpKn_CX2cOsZiRZP5kc,2134
|
|
9
9
|
snapctl/commands/snapend.py,sha256=ZQSI_QfxsmqCkz2kBkFSMN94ZkSgXlzwZBJXEs5nOoM,38483
|
|
10
10
|
snapctl/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
snapctl/config/constants.py,sha256=
|
|
11
|
+
snapctl/config/constants.py,sha256=MzgSQcrHozcUxRDveqJFB_pL7DlXLxSR6JbNRVVUiMU,3465
|
|
12
12
|
snapctl/config/endpoints.py,sha256=9kllA79xn9G_aBLp1rohURZi93pwYzTEWZ8ObtZ6crw,338
|
|
13
13
|
snapctl/config/hashes.py,sha256=2Dyb3lbNRNKzc80XUH8S4yNJtRVGRCMK7-GwzyT4WQ0,5149
|
|
14
14
|
snapctl/data/profiles/snapser-byosnap-profile.json,sha256=c7oIzMJewVQaoLaXCBPXlH-k5cL9DCz6q4IixsWWD9c,2404
|
|
15
15
|
snapctl/data/profiles/snapser-byosnap-profile.yaml,sha256=vK5JqHa1f1_jlcW0m7qg-sKN9njE8PURJHzaRdvfEOY,3600
|
|
16
|
+
snapctl/data/profiles/snapser-byosnap-profile.yml,sha256=vK5JqHa1f1_jlcW0m7qg-sKN9njE8PURJHzaRdvfEOY,3600
|
|
16
17
|
snapctl/data/releases/beta-0.46.0.mdx,sha256=_MJA7TnnJjAnNm_EOvoBiz7FjHwl4c49sYtZ9r4KZQE,2386
|
|
17
18
|
snapctl/data/releases/beta-0.46.4.mdx,sha256=3-ojdCyvax27sdd8nKmcP0zfCWEzi_edPbSlkFqla4o,173
|
|
18
19
|
snapctl/data/releases/beta-0.47.0.mdx,sha256=p-bp0NUVcSKELHXtHJaq884_O4yTZDTCUbWtwLxRUS8,724
|
|
20
|
+
snapctl/data/releases/beta-0.47.1.mdx,sha256=YqQ7ncHDW9pCbQNnQic1o_xQt3DinOFEo3YW0hJVUAk,645
|
|
21
|
+
snapctl/data/releases/beta-0.47.2.mdx,sha256=9FQuJj6ntu0gG5Mf-d8lgCRqmzkuFyESqI_Gf5jLNmo,135
|
|
19
22
|
snapctl/main.py,sha256=aBPwQOlrRS-hVofifRRidraxoLHdlbCcKksdqbQ_rcA,22638
|
|
20
23
|
snapctl/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
24
|
snapctl/types/definitions.py,sha256=EQzLeiXkJ8ISRlCqHMviNVsWWpmhWjpKaOBLdlvOTmY,644
|
|
22
25
|
snapctl/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
26
|
snapctl/utils/echo.py,sha256=V0qgjqqGXRiueMkq31enmNmdqciC8S90qGRcK8UupXA,1090
|
|
24
27
|
snapctl/utils/helper.py,sha256=co6HhAE-Fo4TMxjSNZUfjK40vAwD3n8qU_JQcNjSlmU,6584
|
|
25
|
-
snapctl-0.47.
|
|
26
|
-
snapctl-0.47.
|
|
27
|
-
snapctl-0.47.
|
|
28
|
-
snapctl-0.47.
|
|
29
|
-
snapctl-0.47.
|
|
28
|
+
snapctl-0.47.2.dist-info/LICENSE,sha256=6AcXm54KFSpmUI1ji9NIBd4Xl-DtjTqiyjBzfVb_CEk,2804
|
|
29
|
+
snapctl-0.47.2.dist-info/METADATA,sha256=m8LzBjlZupu0hMe4wpknE1Xs-10sPMp5oi0Eu6KiPOs,34927
|
|
30
|
+
snapctl-0.47.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
31
|
+
snapctl-0.47.2.dist-info/entry_points.txt,sha256=tkKW9MzmFdRs6Bgkv29G78i9WEBK4WIOWunPfe3t2Wg,44
|
|
32
|
+
snapctl-0.47.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|