splight-cli 4.12.1__tar.gz → 4.14.0__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.
- {splight_cli-4.12.1 → splight_cli-4.14.0}/PKG-INFO +2 -2
- {splight_cli-4.12.1 → splight_cli-4.14.0}/pyproject.toml +2 -2
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/component/component.py +0 -23
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/hub/solution/__init__.py +18 -21
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/hub/solution/constants.py +1 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/hub/solution/exceptions.py +8 -0
- splight_cli-4.14.0/splight_cli/hub/solution/solution_manager.py +115 -0
- splight_cli-4.12.1/splight_cli/hub/solution/solution_manager.py +0 -88
- {splight_cli-4.12.1 → splight_cli-4.14.0}/README.md +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/cli.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/component/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/component/exceptions.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/component/loaders.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/component/templates/.splightignore +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/component/templates/Initialization +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/component/templates/README.md +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/component/templates/auto_readme.md +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/component/templates/main.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/component/templates/spec.json +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/component/templates/tests.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/component/tests/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/component/tests/test_component_manager.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/component/utils.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/config/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/constants.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/context/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/context/context.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/context/workspace.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/engine/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/engine/alert/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/engine/asset/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/engine/attribute/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/engine/component/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/engine/datalake/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/engine/file/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/engine/manager/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/engine/manager/exceptions.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/engine/manager/manager.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/engine/manager/tests/test_datalake_manager.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/engine/manager/tests/test_resource_manager.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/engine/secret/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/hub/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/hub/component/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/hub/component/exceptions.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/hub/component/hub_manager.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/hub/component/tests/test_hub_manager.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/settings.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/dict.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/parser.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/diff.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/logger.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/manager.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/models/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/models/alert.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/models/asset.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/models/attribute.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/models/base.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/models/component.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/models/component_object.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/models/file.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/models/function.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/models/metadata.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/models/routine.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/models/secret.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/state.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/tests/test_component/Initialization +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/tests/test_component/README.md +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/tests/test_component/main.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/tests/test_component/spec.json +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/tests/test_component/tests.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/utils/__init__.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/utils/input.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/utils/json.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/utils/loader.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/utils/pprint.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/utils/template.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/utils/yaml.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/version.py +0 -0
- {splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/workspace/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: splight-cli
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.14.0
|
|
4
4
|
Summary: Splight Command Line Interface
|
|
5
5
|
Author: Splight Dev
|
|
6
6
|
Author-email: dev@splight-ae.com
|
|
@@ -21,7 +21,7 @@ Requires-Dist: py7zr (==0.20.8)
|
|
|
21
21
|
Requires-Dist: requests (==2.31.0)
|
|
22
22
|
Requires-Dist: rich (==13.0.1)
|
|
23
23
|
Requires-Dist: setuptools (==60.9.3)
|
|
24
|
-
Requires-Dist: splight-lib (>=5.
|
|
24
|
+
Requires-Dist: splight-lib (>=5.8.0)
|
|
25
25
|
Requires-Dist: toposort (>=1.10,<2.0)
|
|
26
26
|
Requires-Dist: typer (==0.9.0)
|
|
27
27
|
Description-Content-Type: text/markdown
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "splight-cli"
|
|
3
|
-
version = "4.
|
|
3
|
+
version = "4.14.0"
|
|
4
4
|
description = "Splight Command Line Interface"
|
|
5
5
|
authors = ["Splight Dev <dev@splight-ae.com>"]
|
|
6
6
|
readme = "README.md"
|
|
@@ -11,7 +11,7 @@ case-converter = "1.1.0"
|
|
|
11
11
|
click = "8.0.4"
|
|
12
12
|
click-default-group = "1.2.2"
|
|
13
13
|
setuptools = "60.9.3"
|
|
14
|
-
splight-lib = "
|
|
14
|
+
splight-lib = ">=5.8.0"
|
|
15
15
|
py7zr = "0.20.8"
|
|
16
16
|
typer = "0.9.0"
|
|
17
17
|
colorama = "0.4.4"
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import json
|
|
2
1
|
import os
|
|
3
2
|
import subprocess
|
|
4
3
|
from enum import auto
|
|
@@ -8,7 +7,6 @@ from typing import List, Optional
|
|
|
8
7
|
from caseconverter import pascalcase
|
|
9
8
|
from jinja2 import Template
|
|
10
9
|
from rich.console import Console
|
|
11
|
-
from splight_lib.client.database import LOCAL_DB_FILE
|
|
12
10
|
from splight_lib.component.spec import Spec
|
|
13
11
|
from strenum import LowercaseStrEnum
|
|
14
12
|
|
|
@@ -19,11 +17,6 @@ from splight_cli.component.exceptions import (
|
|
|
19
17
|
ReadmeExists,
|
|
20
18
|
)
|
|
21
19
|
from splight_cli.component.loaders import InitLoader
|
|
22
|
-
from splight_cli.component.utils import (
|
|
23
|
-
db_from_spec,
|
|
24
|
-
fake_asset,
|
|
25
|
-
fake_attribute,
|
|
26
|
-
)
|
|
27
20
|
from splight_cli.constants import (
|
|
28
21
|
INIT_FILE,
|
|
29
22
|
PYTHON_CMD,
|
|
@@ -207,19 +200,3 @@ class ComponentManager:
|
|
|
207
200
|
def _validate_cli_version(self, component_cli_version: str):
|
|
208
201
|
if component_cli_version != __version__:
|
|
209
202
|
raise InvalidSplightCLIVersion(component_cli_version, __version__)
|
|
210
|
-
|
|
211
|
-
def create_local_db(self, path: str):
|
|
212
|
-
spec = Spec.from_file(os.path.join(path, SPEC_FILE))
|
|
213
|
-
json_spec = spec.model_dump()
|
|
214
|
-
|
|
215
|
-
splight_db = db_from_spec(json_spec)
|
|
216
|
-
|
|
217
|
-
# agnostic from component
|
|
218
|
-
asset = fake_asset()
|
|
219
|
-
splight_db["asset"].update(asset)
|
|
220
|
-
|
|
221
|
-
attribute = fake_attribute()
|
|
222
|
-
splight_db["attribute"].update(attribute)
|
|
223
|
-
|
|
224
|
-
with open(LOCAL_DB_FILE, "w") as db_file:
|
|
225
|
-
json.dump(splight_db, db_file, indent=4)
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from typing import List
|
|
2
|
-
|
|
3
1
|
import typer
|
|
4
2
|
from rich.console import Console
|
|
5
3
|
from splight_lib.models import Component
|
|
@@ -21,11 +19,7 @@ MODEL = Component
|
|
|
21
19
|
@solution_app.command()
|
|
22
20
|
def push(
|
|
23
21
|
ctx: typer.Context,
|
|
24
|
-
|
|
25
|
-
version: str = typer.Option(..., help="The solution's version"),
|
|
26
|
-
description: str = typer.Option("", help="The solution's description"),
|
|
27
|
-
tags: List[str] = typer.Option([], help="The solution's tags"),
|
|
28
|
-
path: str = typer.Option(".", help="Path to solution files"),
|
|
22
|
+
path: str = typer.Argument(..., help="Path to solution files"),
|
|
29
23
|
force: bool = typer.Option(
|
|
30
24
|
False,
|
|
31
25
|
"--force",
|
|
@@ -35,25 +29,28 @@ def push(
|
|
|
35
29
|
):
|
|
36
30
|
try:
|
|
37
31
|
manager = HubSolutionManager()
|
|
38
|
-
manager.push(
|
|
32
|
+
manager.push(path, force=force)
|
|
39
33
|
except Exception as exc:
|
|
40
|
-
|
|
34
|
+
import traceback
|
|
35
|
+
import sys
|
|
36
|
+
traceback.print_exc(file=sys.stdout)
|
|
37
|
+
console.print(f"Error pushing solution: {exc}", style=error_style)
|
|
41
38
|
raise typer.Exit(code=1)
|
|
42
39
|
|
|
43
40
|
|
|
44
41
|
# TODO: Define the pull command
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
42
|
+
@solution_app.command()
|
|
43
|
+
def pull(
|
|
44
|
+
ctx: typer.Context,
|
|
45
|
+
name: str = typer.Argument(..., help="The component's name"),
|
|
46
|
+
version: str = typer.Argument(..., help="The component's version"),
|
|
47
|
+
):
|
|
48
|
+
try:
|
|
49
|
+
manager = HubSolutionManager()
|
|
50
|
+
manager.pull(name=name, version=version)
|
|
51
|
+
except Exception as exc:
|
|
52
|
+
console.print(f"Error pulling solution: {exc}", style=error_style)
|
|
53
|
+
raise typer.Exit(code=1)
|
|
57
54
|
|
|
58
55
|
|
|
59
56
|
@solution_app.command()
|
|
@@ -20,3 +20,11 @@ class MissingSolutionFile(Exception):
|
|
|
20
20
|
|
|
21
21
|
def __str__(self) -> str:
|
|
22
22
|
return self._msg
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class SolutionDirectoryAlreadyExists(Exception):
|
|
26
|
+
def __init__(self, path: str):
|
|
27
|
+
self._msg = f"Solution directory {path} already exists"
|
|
28
|
+
|
|
29
|
+
def __str__(self) -> str:
|
|
30
|
+
return self._msg
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import os
|
|
3
|
+
import shutil
|
|
4
|
+
from collections import namedtuple
|
|
5
|
+
|
|
6
|
+
import py7zr
|
|
7
|
+
from pydantic import ValidationError
|
|
8
|
+
from rich.console import Console
|
|
9
|
+
from rich.table import Table
|
|
10
|
+
from splight_lib.models import HubSolution
|
|
11
|
+
|
|
12
|
+
from splight_cli.constants import (
|
|
13
|
+
COMPRESSION_TYPE,
|
|
14
|
+
SPEC_FILE,
|
|
15
|
+
success_style,
|
|
16
|
+
)
|
|
17
|
+
from splight_cli.hub.component.exceptions import (
|
|
18
|
+
SpecFormatError,
|
|
19
|
+
SpecValidationError,
|
|
20
|
+
)
|
|
21
|
+
from splight_cli.hub.solution.exceptions import (
|
|
22
|
+
HubSolutionAlreadyExists,
|
|
23
|
+
HubSolutionNotFound,
|
|
24
|
+
SolutionDirectoryAlreadyExists,
|
|
25
|
+
)
|
|
26
|
+
from splight_cli.utils.loader import Loader
|
|
27
|
+
|
|
28
|
+
console = Console()
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class HubSolutionManager:
|
|
32
|
+
def list_solutions(self):
|
|
33
|
+
solution_tuple = namedtuple("Solution", ["name", "version"])
|
|
34
|
+
all_solutions = HubSolution.list()
|
|
35
|
+
solutions = set(
|
|
36
|
+
[
|
|
37
|
+
solution_tuple(solution.name, solution.version)
|
|
38
|
+
for solution in all_solutions
|
|
39
|
+
]
|
|
40
|
+
)
|
|
41
|
+
table = Table("Name", "Version", title="Hub Solution List")
|
|
42
|
+
[table.add_row(sol.name, sol.version) for sol in solutions]
|
|
43
|
+
console.print(table)
|
|
44
|
+
|
|
45
|
+
def push(
|
|
46
|
+
self,
|
|
47
|
+
path: str = ".",
|
|
48
|
+
force: bool = False,
|
|
49
|
+
):
|
|
50
|
+
try:
|
|
51
|
+
with open(os.path.join(path, SPEC_FILE)) as fid:
|
|
52
|
+
spec = json.load(fid)
|
|
53
|
+
except Exception as exc:
|
|
54
|
+
raise SpecFormatError(exc)
|
|
55
|
+
|
|
56
|
+
# Validate spec fields before pushing the model
|
|
57
|
+
try:
|
|
58
|
+
instance = HubSolution.model_validate(spec)
|
|
59
|
+
except ValidationError as exc:
|
|
60
|
+
raise SpecValidationError(exc)
|
|
61
|
+
|
|
62
|
+
name = instance.name
|
|
63
|
+
version = instance.version
|
|
64
|
+
|
|
65
|
+
if not force and self._exists_in_hub(name, version):
|
|
66
|
+
raise HubSolutionAlreadyExists(name, version)
|
|
67
|
+
|
|
68
|
+
with Loader("Pushing Solution to Splight Hub"):
|
|
69
|
+
solution = HubSolution.upload(path)
|
|
70
|
+
|
|
71
|
+
console.print(
|
|
72
|
+
f"Solution {solution.id} pushed succesfully", style=success_style
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
def pull(self, name: str, version: str):
|
|
76
|
+
with Loader("Pulling solution from Splight Hub"):
|
|
77
|
+
self._pull_solution(name, version)
|
|
78
|
+
console.print(
|
|
79
|
+
f"Solution {name} pulled succesfully", style=success_style
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
def _pull_solution(self, name: str, version: str):
|
|
83
|
+
solution = self._get_hub_solution(name, version)
|
|
84
|
+
name, version = solution.name, solution.version
|
|
85
|
+
file_wrapper = solution.download()
|
|
86
|
+
file_data = file_wrapper.read()
|
|
87
|
+
|
|
88
|
+
version_modified = version.replace(".", "_")
|
|
89
|
+
solution_path = f"{name}/{version_modified}"
|
|
90
|
+
versioned_name = f"{name}-{version}"
|
|
91
|
+
file_name = f"{versioned_name}.{COMPRESSION_TYPE}"
|
|
92
|
+
if os.path.exists(solution_path):
|
|
93
|
+
raise SolutionDirectoryAlreadyExists(solution_path)
|
|
94
|
+
|
|
95
|
+
try:
|
|
96
|
+
with open(file_name, "wb") as fid:
|
|
97
|
+
fid.write(file_data)
|
|
98
|
+
|
|
99
|
+
with py7zr.SevenZipFile(file_name, "r") as z:
|
|
100
|
+
z.extractall(path=".")
|
|
101
|
+
shutil.move(f"{versioned_name}", solution_path)
|
|
102
|
+
except Exception as exc:
|
|
103
|
+
raise exc
|
|
104
|
+
finally:
|
|
105
|
+
if os.path.exists(file_name):
|
|
106
|
+
os.remove(file_name)
|
|
107
|
+
|
|
108
|
+
def _get_hub_solution(self, name: str, version: str) -> HubSolution:
|
|
109
|
+
solutions = HubSolution.list(name=name, version=version)
|
|
110
|
+
if not solutions:
|
|
111
|
+
raise HubSolutionNotFound(name, version)
|
|
112
|
+
return solutions[0]
|
|
113
|
+
|
|
114
|
+
def _exists_in_hub(self, name: str, version: str) -> bool:
|
|
115
|
+
return bool(self._get_hub_solution(name, version))
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
from collections import namedtuple
|
|
3
|
-
from typing import List
|
|
4
|
-
|
|
5
|
-
from rich.console import Console
|
|
6
|
-
from rich.table import Table
|
|
7
|
-
from splight_lib.models import HubSolution
|
|
8
|
-
|
|
9
|
-
from splight_cli.hub.solution.constants import (
|
|
10
|
-
MAIN_FILE,
|
|
11
|
-
VALUES_FILE,
|
|
12
|
-
VARIABLES_FILE,
|
|
13
|
-
)
|
|
14
|
-
from splight_cli.hub.solution.exceptions import (
|
|
15
|
-
HubSolutionAlreadyExists,
|
|
16
|
-
HubSolutionNotFound,
|
|
17
|
-
MissingSolutionFile,
|
|
18
|
-
)
|
|
19
|
-
from splight_cli.utils.loader import Loader
|
|
20
|
-
|
|
21
|
-
console = Console()
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
class HubSolutionManager:
|
|
25
|
-
def list_solutions(self):
|
|
26
|
-
solution_tuple = namedtuple("Solution", ["name", "version"])
|
|
27
|
-
all_solutions = HubSolution.list()
|
|
28
|
-
solutions = set(
|
|
29
|
-
[
|
|
30
|
-
solution_tuple(solution.name, solution.version)
|
|
31
|
-
for solution in all_solutions
|
|
32
|
-
]
|
|
33
|
-
)
|
|
34
|
-
table = Table("Name", "Version", title="Hub Solution List")
|
|
35
|
-
[table.add_row(sol.name, sol.version) for sol in solutions]
|
|
36
|
-
console.print(table)
|
|
37
|
-
|
|
38
|
-
def push(
|
|
39
|
-
self,
|
|
40
|
-
name: str,
|
|
41
|
-
version: str,
|
|
42
|
-
description: str,
|
|
43
|
-
tags: List[str] = [],
|
|
44
|
-
path: str = ".",
|
|
45
|
-
force: bool = False,
|
|
46
|
-
):
|
|
47
|
-
try:
|
|
48
|
-
solution = self._get_component(name, version)
|
|
49
|
-
except HubSolutionNotFound:
|
|
50
|
-
exist_in_hub = False
|
|
51
|
-
solution = HubSolution(
|
|
52
|
-
name=name, version=version, description=description, tags=tags
|
|
53
|
-
)
|
|
54
|
-
else:
|
|
55
|
-
exist_in_hub = True
|
|
56
|
-
|
|
57
|
-
if not force and exist_in_hub:
|
|
58
|
-
raise HubSolutionAlreadyExists(name, version)
|
|
59
|
-
|
|
60
|
-
self._set_files_from_path(solution, path)
|
|
61
|
-
|
|
62
|
-
with Loader("Pushing Solution to Splight Hub"):
|
|
63
|
-
solution.save()
|
|
64
|
-
|
|
65
|
-
def _set_files_from_path(self, solution: HubSolution, path: str):
|
|
66
|
-
main_file_path = os.path.join(path, MAIN_FILE)
|
|
67
|
-
if os.path.exists(main_file_path):
|
|
68
|
-
solution.main_file = main_file_path
|
|
69
|
-
else:
|
|
70
|
-
raise MissingSolutionFile(MAIN_FILE, path)
|
|
71
|
-
|
|
72
|
-
variables_file_path = os.path.join(path, VARIABLES_FILE)
|
|
73
|
-
if os.path.exists(main_file_path):
|
|
74
|
-
solution.variables_file = variables_file_path
|
|
75
|
-
else:
|
|
76
|
-
raise MissingSolutionFile(VARIABLES_FILE, path)
|
|
77
|
-
|
|
78
|
-
values_file_path = os.path.join(path, VALUES_FILE)
|
|
79
|
-
if os.path.exists(main_file_path):
|
|
80
|
-
solution.values_file = values_file_path
|
|
81
|
-
else:
|
|
82
|
-
raise MissingSolutionFile(VALUES_FILE, path)
|
|
83
|
-
|
|
84
|
-
def _get_component(self, name: str, version: str) -> HubSolution:
|
|
85
|
-
solutions = HubSolution.list(name=name, version=version)
|
|
86
|
-
if not solutions:
|
|
87
|
-
raise HubSolutionNotFound(name, version)
|
|
88
|
-
return solutions[0]
|
|
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
|
{splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/component/tests/test_component_manager.py
RENAMED
|
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
|
{splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/engine/manager/tests/test_datalake_manager.py
RENAMED
|
File without changes
|
{splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/engine/manager/tests/test_resource_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/hub/component/tests/test_hub_manager.py
RENAMED
|
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
|
{splight_cli-4.12.1 → splight_cli-4.14.0}/splight_cli/solution/resource/models/component_object.py
RENAMED
|
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
|