File: mixins.py

package info (click to toggle)
python-pykube-ng 22.9.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 424 kB
  • sloc: python: 2,336; makefile: 44
file content (36 lines) | stat: -rw-r--r-- 844 bytes parent folder | download
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)