@@ -41,16 +41,36 @@ class Meta:
4141 ordering = ['-created' ]
4242
4343 def __str__ (self ):
44- return self ._svc_name ()
44+ return self .name
45+
46+ @property
47+ def name (self ):
48+ if self .ptype == 'web' :
49+ svc_name = self .app .id
50+ else :
51+ svc_name = "{}-{}" .format (self .app .id , self .ptype )
52+ return svc_name
4553
4654 @property
4755 def domain (self ):
4856 return "{}.{}.svc.{}" .format (
49- self ._svc_name () , self ._namespace () , settings .KUBERNETES_CLUSTER_DOMAIN
57+ self .name , self .namespace , settings .KUBERNETES_CLUSTER_DOMAIN
5058 )
5159
60+ @property
61+ def namespace (self ):
62+ return self .app .id
63+
64+ @classmethod
65+ def get (cls , app , name ):
66+ for service in cls .objects .filter (app = app ):
67+ if service .name == name :
68+ return service
69+ raise cls .DoesNotExist ()
70+
5271 def as_dict (self ):
5372 return {
73+ "name" : self .name ,
5474 "domain" : self .domain ,
5575 "ports" : self .ports ,
5676 "ptype" : self .ptype ,
@@ -101,7 +121,7 @@ def save(self, *args, **kwargs):
101121 return service
102122
103123 def delete (self , * args , ** kwargs ):
104- self ._delete_k8s_svc (self ._svc_name () )
124+ self ._delete_k8s_svc (self .name )
105125 # Delete from DB
106126 return super (Service , self ).delete (* args , ** kwargs )
107127
@@ -116,30 +136,18 @@ def log(self, message, level=logging.INFO):
116136 """
117137 logger .log (level , "[{}]: {}" .format (self .app .id , message ))
118138
119- def _namespace (self ):
120- return self .app .id
121-
122- def _svc_name (self ):
123- if self .ptype == 'web' :
124- svc_name = self .app .id
125- else :
126- svc_name = "{}-{}" .format (self .app .id , self .ptype )
127- return svc_name
128-
129139 def refresh_k8s_svc (self ):
130- svc_name = self ._svc_name ()
131- namespace = self ._namespace ()
132- self .log ('creating service: {}' .format (svc_name ), level = logging .DEBUG )
140+ self .log ('creating service: {}' .format (self .name ), level = logging .DEBUG )
133141 try :
134142 try :
135- data = self .scheduler ().svc .get (namespace , svc_name ).json ()
136- self .scheduler ().svc .patch (namespace , svc_name , ** {
143+ data = self .scheduler ().svc .get (self . namespace , self . name ).json ()
144+ self .scheduler ().svc .patch (self . namespace , self . name , ** {
137145 "ports" : self .ports ,
138146 "version" : data ["metadata" ]["resourceVersion" ],
139147 "ptype" : self .ptype ,
140148 })
141149 except KubeException :
142- self .scheduler ().svc .create (namespace , svc_name , ** {
150+ self .scheduler ().svc .create (self . namespace , self . name , ** {
143151 "ports" : self .ports ,
144152 "ptype" : self .ptype ,
145153 })
@@ -148,4 +156,4 @@ def refresh_k8s_svc(self):
148156
149157 def _delete_k8s_svc (self , svc_name ):
150158 self .log ('deleting Service: {}' .format (svc_name ), level = logging .DEBUG )
151- self .scheduler ().svc .delete (self ._namespace () , svc_name , ignore_exception = True )
159+ self .scheduler ().svc .delete (self .namespace , svc_name , ignore_exception = True )
0 commit comments