66from halo import halo
77
88from gradient import version , logger as gradient_logger , exceptions
9- from gradient .api_sdk import sdk_exceptions , utils
9+ from gradient .api_sdk import sdk_exceptions , utils , models
1010from gradient .api_sdk .clients import http_client
1111from gradient .api_sdk .config import config
1212from gradient .api_sdk .utils import urljoin
13+ from gradient .commands .common import DetailsCommandMixin
1314from gradient .utils import get_terminal_lines
1415
1516default_headers = {"X-API-Key" : config .PAPERSPACE_API_KEY ,
2122@six .add_metaclass (abc .ABCMeta )
2223class _DeploymentCommand (object ):
2324 def __init__ (self , deployment_client , logger_ = gradient_logger .Logger ()):
24- self .deployment_client = deployment_client
25+ self .client = deployment_client
2526 self .logger = logger_
2627
2728 @abc .abstractmethod
@@ -34,7 +35,7 @@ def execute(self, use_vpc=False, **kwargs):
3435 self ._handle_auth (kwargs )
3536
3637 with halo .Halo (text = "Creating new deployment" , spinner = "dots" ):
37- deployment_id = self .deployment_client .create (use_vpc = use_vpc , ** kwargs )
38+ deployment_id = self .client .create (use_vpc = use_vpc , ** kwargs )
3839
3940 self .logger .log ("New deployment created with id: {}" .format (deployment_id ))
4041 self .logger .log (self .get_instance_url (deployment_id ))
@@ -62,7 +63,7 @@ def execute(self, use_vpc=False, **kwargs):
6263
6364 def _get_instances (self , use_vpc = False , ** kwargs ):
6465 try :
65- instances = self .deployment_client .list (use_vpc = use_vpc , ** kwargs )
66+ instances = self .client .list (use_vpc = use_vpc , ** kwargs )
6667 except sdk_exceptions .GradientSdkError as e :
6768 raise exceptions .ReceivingDataFailedError (e )
6869
@@ -103,25 +104,46 @@ def _make_table(table_data):
103104
104105class StartDeploymentCommand (_DeploymentCommand ):
105106 def execute (self , use_vpc = False , ** kwargs ):
106- self .deployment_client .start (use_vpc = use_vpc , ** kwargs )
107+ self .client .start (use_vpc = use_vpc , ** kwargs )
107108 self .logger .log ("Deployment started" )
108109
109110
110111class StopDeploymentCommand (_DeploymentCommand ):
111112 def execute (self , use_vpc = False , ** kwargs ):
112- self .deployment_client .stop (use_vpc = use_vpc , ** kwargs )
113+ self .client .stop (use_vpc = use_vpc , ** kwargs )
113114 self .logger .log ("Deployment stopped" )
114115
115116
116117class DeleteDeploymentCommand (_DeploymentCommand ):
117118 def execute (self , ** kwargs ):
118- self .deployment_client .delete (** kwargs )
119+ self .client .delete (** kwargs )
119120 self .logger .log ("Deployment deleted" )
120121
121122
122123class UpdateDeploymentCommand (_DeploymentCommand ):
123124 def execute (self , deployment_id , use_vpc = False , ** kwargs ):
124125 with halo .Halo (text = "Updating deployment data" , spinner = "dots" ):
125- self .deployment_client .update (deployment_id , use_vpc = use_vpc , ** kwargs )
126+ self .client .update (deployment_id , use_vpc = use_vpc , ** kwargs )
126127
127128 self .logger .log ("Deployment data updated" )
129+
130+
131+ class GetDeploymentDetails (DetailsCommandMixin , _DeploymentCommand ):
132+ def _get_table_data (self , instance ):
133+ """
134+ :param models.Deployment instance:
135+ """
136+ data = (
137+ ("ID" , instance .id ),
138+ ("Name" , instance .name ),
139+ ("State" , instance .state ),
140+ ("Machine type" , instance .machine_type ),
141+ ("Instance count" , instance .instance_count ),
142+ ("Deployment type" , instance .deployment_type ),
143+ ("Model ID" , instance .model_id ),
144+ ("Project ID" , instance .project_id ),
145+ ("Endpoint" , instance .endpoint ),
146+ ("API type" , instance .api_type ),
147+ ("Cluster ID" , instance .cluster_id ),
148+ )
149+ return data
0 commit comments