truefoundry 0.5.6rc2__py3-none-any.whl → 0.5.7__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 truefoundry might be problematic. Click here for more details.
- truefoundry/deploy/cli/commands/deploy_command.py +15 -2
- truefoundry/deploy/lib/clients/servicefoundry_client.py +5 -1
- truefoundry/deploy/v2/lib/deploy.py +7 -2
- truefoundry/deploy/v2/lib/deploy_workflow.py +1 -0
- truefoundry/deploy/v2/lib/deployable_patched_models.py +17 -4
- {truefoundry-0.5.6rc2.dist-info → truefoundry-0.5.7.dist-info}/METADATA +1 -1
- {truefoundry-0.5.6rc2.dist-info → truefoundry-0.5.7.dist-info}/RECORD +9 -9
- {truefoundry-0.5.6rc2.dist-info → truefoundry-0.5.7.dist-info}/WHEEL +0 -0
- {truefoundry-0.5.6rc2.dist-info → truefoundry-0.5.7.dist-info}/entry_points.txt +0 -0
|
@@ -54,10 +54,21 @@ def _get_default_spec_file():
|
|
|
54
54
|
default=True,
|
|
55
55
|
help="Wait and tail the deployment progress",
|
|
56
56
|
)
|
|
57
|
+
@click.option(
|
|
58
|
+
"--force-deploy/--no-force-deploy",
|
|
59
|
+
is_flag=True,
|
|
60
|
+
show_default=True,
|
|
61
|
+
default=False,
|
|
62
|
+
help="Force create a new deployment by canceling any ongoing deployments",
|
|
63
|
+
)
|
|
57
64
|
@click.pass_context
|
|
58
65
|
@handle_exception_wrapper
|
|
59
66
|
def deploy_command(
|
|
60
|
-
ctx: click.Context,
|
|
67
|
+
ctx: click.Context,
|
|
68
|
+
file: str,
|
|
69
|
+
workspace_fqn: Optional[str],
|
|
70
|
+
wait: bool,
|
|
71
|
+
force_deploy: bool,
|
|
61
72
|
):
|
|
62
73
|
if ctx.invoked_subcommand is not None:
|
|
63
74
|
return
|
|
@@ -74,7 +85,9 @@ def deploy_command(
|
|
|
74
85
|
application_definition = yaml.safe_load(f)
|
|
75
86
|
|
|
76
87
|
application = Application.parse_obj(application_definition)
|
|
77
|
-
application.deploy(
|
|
88
|
+
application.deploy(
|
|
89
|
+
workspace_fqn=workspace_fqn, wait=wait, force_deploy=force_deploy
|
|
90
|
+
)
|
|
78
91
|
sys.exit(0)
|
|
79
92
|
|
|
80
93
|
click.echo(
|
|
@@ -239,12 +239,16 @@ class ServiceFoundryServiceClient(BaseServiceFoundryServiceClient):
|
|
|
239
239
|
|
|
240
240
|
@check_min_cli_version
|
|
241
241
|
def deploy_application(
|
|
242
|
-
self,
|
|
242
|
+
self,
|
|
243
|
+
workspace_id: str,
|
|
244
|
+
application: auto_gen_models.Workflow,
|
|
245
|
+
force_deploy: bool,
|
|
243
246
|
) -> Deployment:
|
|
244
247
|
data = {
|
|
245
248
|
"workspaceId": workspace_id,
|
|
246
249
|
"name": application.name,
|
|
247
250
|
"manifest": application.dict(exclude_none=True),
|
|
251
|
+
"forceDeploy": force_deploy,
|
|
248
252
|
}
|
|
249
253
|
logger.debug(json.dumps(data))
|
|
250
254
|
url = f"{self._api_server_url}/{VERSION_PREFIX}/deployment"
|
|
@@ -249,7 +249,10 @@ or pass it explicitly using `--workspace-fqn` argument on CLI.
|
|
|
249
249
|
|
|
250
250
|
|
|
251
251
|
def deploy_component(
|
|
252
|
-
component: Component,
|
|
252
|
+
component: Component,
|
|
253
|
+
workspace_fqn: Optional[str] = None,
|
|
254
|
+
wait: bool = True,
|
|
255
|
+
force_deploy: bool = False,
|
|
253
256
|
) -> Deployment:
|
|
254
257
|
_warn_when_gpu_selected_without_cuda(component=component)
|
|
255
258
|
workspace_fqn = _resolve_workspace_fqn(
|
|
@@ -269,7 +272,9 @@ def deploy_component(
|
|
|
269
272
|
)
|
|
270
273
|
client = ServiceFoundryServiceClient()
|
|
271
274
|
response = client.deploy_application(
|
|
272
|
-
workspace_id=workspace_id,
|
|
275
|
+
workspace_id=workspace_id,
|
|
276
|
+
application=updated_component,
|
|
277
|
+
force_deploy=force_deploy,
|
|
273
278
|
)
|
|
274
279
|
logger.info(
|
|
275
280
|
"🚀 Deployment started for application '%s'. Deployment FQN is '%s'.",
|
|
@@ -273,6 +273,7 @@ def deploy_workflow(
|
|
|
273
273
|
workflow: auto_gen_models.Workflow,
|
|
274
274
|
workspace_fqn: str,
|
|
275
275
|
wait: bool = True,
|
|
276
|
+
force_deploy: bool = False,
|
|
276
277
|
) -> Deployment:
|
|
277
278
|
_generate_manifest_for_workflow(workflow)
|
|
278
279
|
_validate_workspace_fqn(workflow, workspace_fqn)
|
|
@@ -11,8 +11,15 @@ class DeployablePatchedModelBase(BaseModel):
|
|
|
11
11
|
class Config:
|
|
12
12
|
extra = "forbid"
|
|
13
13
|
|
|
14
|
-
def deploy(
|
|
15
|
-
|
|
14
|
+
def deploy(
|
|
15
|
+
self, workspace_fqn: str, wait: bool = True, force_deploy: bool = False
|
|
16
|
+
) -> Deployment:
|
|
17
|
+
return deploy_component(
|
|
18
|
+
component=self,
|
|
19
|
+
workspace_fqn=workspace_fqn,
|
|
20
|
+
wait=wait,
|
|
21
|
+
force_deploy=force_deploy,
|
|
22
|
+
)
|
|
16
23
|
|
|
17
24
|
|
|
18
25
|
class Service(models.Service, DeployablePatchedModelBase):
|
|
@@ -73,7 +80,9 @@ class SSHServer(models.SSHServer, DeployablePatchedModelBase):
|
|
|
73
80
|
|
|
74
81
|
|
|
75
82
|
class Application(models.Application, DeployablePatchedModelBase):
|
|
76
|
-
def deploy(
|
|
83
|
+
def deploy(
|
|
84
|
+
self, workspace_fqn: str, wait: bool = True, force_deploy: bool = False
|
|
85
|
+
) -> Deployment:
|
|
77
86
|
if isinstance(self.__root__, models.Workflow):
|
|
78
87
|
from truefoundry.deploy.v2.lib.deploy_workflow import deploy_workflow
|
|
79
88
|
|
|
@@ -81,10 +90,14 @@ class Application(models.Application, DeployablePatchedModelBase):
|
|
|
81
90
|
workflow=self.__root__,
|
|
82
91
|
workspace_fqn=workspace_fqn,
|
|
83
92
|
wait=wait,
|
|
93
|
+
force_deploy=force_deploy,
|
|
84
94
|
)
|
|
85
95
|
else:
|
|
86
96
|
return deploy_component(
|
|
87
|
-
component=self.__root__,
|
|
97
|
+
component=self.__root__,
|
|
98
|
+
workspace_fqn=workspace_fqn,
|
|
99
|
+
wait=wait,
|
|
100
|
+
force_deploy=force_deploy,
|
|
88
101
|
)
|
|
89
102
|
|
|
90
103
|
|
|
@@ -61,7 +61,7 @@ truefoundry/deploy/cli/commands/apply_command.py,sha256=Y2e_C8HVpo8CssVod-3JRz-8
|
|
|
61
61
|
truefoundry/deploy/cli/commands/build_command.py,sha256=zJBywMatbpUlXx5O2aqpEVmPeBIJ9RNnG9abSc8C8CE,1234
|
|
62
62
|
truefoundry/deploy/cli/commands/create_command.py,sha256=rCajvQvAfZU10nDZOYpRACbAATH1zj52ihTWrhnLLUc,1829
|
|
63
63
|
truefoundry/deploy/cli/commands/delete_command.py,sha256=JMibxvt1rsZ8sODa0jI1e6vavjN8Pv04ttVFURSTKTw,2362
|
|
64
|
-
truefoundry/deploy/cli/commands/deploy_command.py,sha256=
|
|
64
|
+
truefoundry/deploy/cli/commands/deploy_command.py,sha256=JW7_gUwM7sg7cNkK-28AdNdgFj26Oj2KjkqIO-CvZFg,4172
|
|
65
65
|
truefoundry/deploy/cli/commands/deploy_init_command.py,sha256=g-jBfrEmhZ0TDWsyqPDn4K6q33EqJSGmBTt1eMYig-w,600
|
|
66
66
|
truefoundry/deploy/cli/commands/get_command.py,sha256=HZQGWib-qrS0RdzctRDwDLfMGu0wqWkAM1u26cTZlsc,5944
|
|
67
67
|
truefoundry/deploy/cli/commands/list_command.py,sha256=zKu_JWY35eMIzgSNFYtmwi2uezZ4k-8yk3C1Vqsvshc,4470
|
|
@@ -81,7 +81,7 @@ truefoundry/deploy/io/output_callback.py,sha256=V2YwUFec4G4a67lM4r-x_64AqdOVNo_9
|
|
|
81
81
|
truefoundry/deploy/io/rich_output_callback.py,sha256=TJLiRD-EnFVwgcepxR7WN0koKqW1X2DevETPhNPi_nU,829
|
|
82
82
|
truefoundry/deploy/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
83
|
truefoundry/deploy/lib/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
84
|
-
truefoundry/deploy/lib/clients/servicefoundry_client.py,sha256=
|
|
84
|
+
truefoundry/deploy/lib/clients/servicefoundry_client.py,sha256=twgEUKSES8HWewMj-8xeD1O3AOz9kfhaaZA4D0BATxk,26444
|
|
85
85
|
truefoundry/deploy/lib/const.py,sha256=Wg0GDnfFu-g1fJr4lU80NH2ULw0R0dYjV7LnW-PbOeM,173
|
|
86
86
|
truefoundry/deploy/lib/dao/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
87
87
|
truefoundry/deploy/lib/dao/application.py,sha256=oMszpueXPUfTUuN_XdKwoRjQyqAgWHhZ-10cbprCVdM,9226
|
|
@@ -98,9 +98,9 @@ truefoundry/deploy/lib/win32.py,sha256=1RcvPTdlOAJ48rt8rCbE2Ufha2ztRqBAE9dueNXAr
|
|
|
98
98
|
truefoundry/deploy/python_deploy_codegen.py,sha256=qJHH1BJQII9e6PhkcRFYiE_3De7_VMMm8nM4AX5Eq1o,6513
|
|
99
99
|
truefoundry/deploy/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
100
100
|
truefoundry/deploy/v2/lib/__init__.py,sha256=WEiVMZXOVljzEE3tpGJil14liIn_PCDoACJ6b3tZ6sI,188
|
|
101
|
-
truefoundry/deploy/v2/lib/deploy.py,sha256=
|
|
102
|
-
truefoundry/deploy/v2/lib/deploy_workflow.py,sha256=
|
|
103
|
-
truefoundry/deploy/v2/lib/deployable_patched_models.py,sha256=
|
|
101
|
+
truefoundry/deploy/v2/lib/deploy.py,sha256=Uk4osyx7uGfYWgyzd6FlmDEnR6tnIjDdytIlCQAq9Xs,12441
|
|
102
|
+
truefoundry/deploy/v2/lib/deploy_workflow.py,sha256=NM6MDdJ7qeqr1HPM5dLLhwkshQ3OweKQOFjzRZ_2c5w,12797
|
|
103
|
+
truefoundry/deploy/v2/lib/deployable_patched_models.py,sha256=6zLJmzRfKXoYa151lc_WUIUOc4wBtNthFfGS9IWMrQc,3990
|
|
104
104
|
truefoundry/deploy/v2/lib/models.py,sha256=pSolLMTArDuYpeNsmeeS5DWliloN_iCDfZSpRllMHUg,1120
|
|
105
105
|
truefoundry/deploy/v2/lib/patched_models.py,sha256=-YnzXSabKs8XDx2I5zYjSKj1lM2qf-L4huewtHSvnP4,16310
|
|
106
106
|
truefoundry/deploy/v2/lib/source.py,sha256=wArU8AwSy7U9EUGLEMmB4Ke7ZwgZWmh8fFU-PACogIk,9347
|
|
@@ -367,7 +367,7 @@ truefoundry/workflow/remote_filesystem/tfy_signed_url_client.py,sha256=xcT0wQmQl
|
|
|
367
367
|
truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py,sha256=nSGPZu0Gyd_jz0KsEE-7w_BmnTD8CVF1S8cUJoxaCbc,13305
|
|
368
368
|
truefoundry/workflow/task.py,sha256=34m55mALXx6ko9o5HkK6FDtMajdvJzBhOsHwDM2RcBA,1779
|
|
369
369
|
truefoundry/workflow/workflow.py,sha256=WaTqUjhwfAXDWu4E5ehuwAxrCbDJkoAf1oWmR2E9Qy0,4575
|
|
370
|
-
truefoundry-0.5.
|
|
371
|
-
truefoundry-0.5.
|
|
372
|
-
truefoundry-0.5.
|
|
373
|
-
truefoundry-0.5.
|
|
370
|
+
truefoundry-0.5.7.dist-info/METADATA,sha256=oIlcmIkbh5ak0H-QJ_uZb_Z1lncrF5UDVt1JOpa8IlA,2884
|
|
371
|
+
truefoundry-0.5.7.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
|
372
|
+
truefoundry-0.5.7.dist-info/entry_points.txt,sha256=TXvUxQkI6zmqJuycPsyxEIMr3oqfDjgrWj0m_9X12x4,95
|
|
373
|
+
truefoundry-0.5.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|