1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
import time
class ReplicatedMixin:
scalable_attr = "replicas"
@property
def replicas(self):
return self.obj["spec"]["replicas"]
@replicas.setter
def replicas(self, value):
self.obj["spec"]["replicas"] = value
class ScalableMixin:
@property
def scalable(self):
return getattr(self, self.scalable_attr)
@scalable.setter
def scalable(self, value):
setattr(self, self.scalable_attr, value)
def scale(self, replicas=None):
count = self.scalable if replicas is None else replicas
self.exists(ensure=True)
if self.scalable != count:
self.scalable = count
self.update()
while True:
self.reload()
if self.scalable == count:
break
time.sleep(1)
|