gitlab-runner-tart-driver 0.3.1__tar.gz → 0.3.3__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. {gitlab-runner-tart-driver-0.3.1/gitlab_runner_tart_driver.egg-info → gitlab-runner-tart-driver-0.3.3}/PKG-INFO +1 -1
  2. gitlab-runner-tart-driver-0.3.3/gitlab_runner_tart_driver/__init__.py +1 -0
  3. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver/modules/tart.py +43 -29
  4. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3/gitlab_runner_tart_driver.egg-info}/PKG-INFO +1 -1
  5. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/setup.py +1 -1
  6. gitlab-runner-tart-driver-0.3.1/gitlab_runner_tart_driver/__init__.py +0 -1
  7. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/LICENSE.txt +0 -0
  8. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/MANIFEST.in +0 -0
  9. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/README.md +0 -0
  10. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver/__main__.py +0 -0
  11. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver/cli.py +0 -0
  12. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver/commands/__init__.py +0 -0
  13. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver/commands/cleanup.py +0 -0
  14. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver/commands/config.py +0 -0
  15. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver/commands/prepare.py +0 -0
  16. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver/commands/run.py +0 -0
  17. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver/modules/__init__.py +0 -0
  18. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver/modules/gitlab_custom_command_config.py +0 -0
  19. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver/modules/gitlab_custom_driver_config.py +0 -0
  20. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver/modules/utils.py +0 -0
  21. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver/scripts/install-gitlab-runner.sh.j2 +0 -0
  22. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver.egg-info/SOURCES.txt +0 -0
  23. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver.egg-info/dependency_links.txt +0 -0
  24. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver.egg-info/entry_points.txt +0 -0
  25. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver.egg-info/not-zip-safe +0 -0
  26. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver.egg-info/requires.txt +0 -0
  27. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/gitlab_runner_tart_driver.egg-info/top_level.txt +0 -0
  28. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/pyproject.toml +0 -0
  29. {gitlab-runner-tart-driver-0.3.1 → gitlab-runner-tart-driver-0.3.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gitlab-runner-tart-driver
3
- Version: 0.3.1
3
+ Version: 0.3.3
4
4
  Home-page: https://gitlab.com/schmieder.matthias/gitlab-runner-tart-driver
5
5
  Author: Matthias Schmieder
6
6
  Author-email: schmieder.matthias@gmail.com
@@ -0,0 +1 @@
1
+ __version__ = "0.3.3"
@@ -28,6 +28,8 @@ class TartVmSpec(BaseModel):
28
28
  display: str
29
29
  running: bool
30
30
  ip_address: str
31
+ os: str
32
+ size: str
31
33
 
32
34
 
33
35
  class TartVolume(BaseModel):
@@ -67,9 +69,11 @@ class TartSshSession:
67
69
  def exec_ssh_command(self, command, get_pty=True):
68
70
  """Executes an ssh command and prints it's output continously to stdout/stderr"""
69
71
  _, stdout, stderr = self.ssh_client.exec_command(command, get_pty=get_pty)
70
- for line in iter(lambda: stdout.readline(2048), ""):
72
+ stdout._set_mode("b")
73
+ stderr._set_mode("b")
74
+ for line in iter(lambda: stdout.readline(2048).decode("utf-8", "ignore"), ""):
71
75
  click.echo(line, nl=False)
72
- for line in iter(lambda: stderr.readline(2048), ""):
76
+ for line in iter(lambda: stderr.readline(2048).decode("utf-8", "ignore"), ""):
73
77
  click.echo(line, nl=False, err=True)
74
78
  return stdout.channel.recv_exit_status()
75
79
 
@@ -124,43 +128,53 @@ class Tart(object):
124
128
  # 'spec' will look like this:
125
129
  #
126
130
  # tart version < 2.7
127
- # CPU Memory Disk Display Running
128
- # 4 8192 46 1024x768 true
131
+ # CPU Memory Disk Display Running
132
+ # 4 8192 46 1024x768 true
129
133
  #
130
134
  # tart version > 2.6
131
135
  # CPU Memory Disk Size Display State
132
136
  # 4 8192 50 20.794 1024x768 running
137
+ #
138
+ # tart version > 2.8
139
+ # OS CPU Memory Disk Size Display State
140
+ # darwin 4 8192 50 22.294 1024x768 stopped
141
+
142
+ # Read headers
143
+ headers = specs.split("\n")[0]
144
+ header_elements = headers.split(" ")
145
+ header_elements = [s.strip().lower() for s in header_elements if s]
133
146
 
134
- spec_line = specs.split("\n")[1]
135
- spec_elements = spec_line.split(" ")
147
+ spec = specs.split("\n")[1]
148
+ spec_elements = spec.split(" ")
136
149
  spec_elements = [s.strip() for s in spec_elements if s]
137
150
 
138
- # old version
139
- if len(spec_elements) == 5:
140
- spec = TartVmSpec(
141
- cpu_count=int(spec_elements[0]),
142
- memory=int(spec_elements[1]),
143
- disk=int(spec_elements[2]),
144
- display=spec_elements[3],
145
- running=True if spec_elements[4].lower() == "true" else False,
146
- ip_address="n/a",
147
- )
148
- elif len(spec_elements) == 6:
149
- spec = TartVmSpec(
150
- cpu_count=int(spec_elements[0]),
151
- memory=int(spec_elements[1]),
152
- disk=int(spec_elements[2]),
153
- display=spec_elements[4],
154
- running=True if spec_elements[5].lower() == "running" else False,
155
- ip_address="n/a",
156
- )
151
+ specs = {}
152
+ for i, spec_element in enumerate(spec_elements):
153
+ specs[header_elements[i]] = spec_element
154
+
155
+ # check the state of the machine
156
+ vm_state = specs.get("state", "n/a")
157
+ running = True
158
+ if vm_state == "running" or vm_state == "true":
159
+ running = True
157
160
  else:
158
- raise ValueError("cloud not determine vm specs")
161
+ running = False
162
+
163
+ vm_spec = TartVmSpec(
164
+ cpu_count=int(specs.get("cpu", 0)),
165
+ memory=int(specs.get("memory", 0)),
166
+ disk=int(specs.get("disk", 0)),
167
+ display=specs.get("display", "n/a"),
168
+ running=running,
169
+ ip_address="n/a",
170
+ os=specs.get("os", "n/a"),
171
+ size=specs.get("size", "n/a"),
172
+ )
159
173
 
160
- if spec.running:
161
- spec.ip_address = self.ip(name)
174
+ if vm_spec.running:
175
+ vm_spec.ip_address = self.ip(name)
162
176
 
163
- return spec
177
+ return vm_spec
164
178
 
165
179
  def print_spec(self, name, tablefmt="fancy_grid"):
166
180
  spec = self.get(name)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gitlab-runner-tart-driver
3
- Version: 0.3.1
3
+ Version: 0.3.3
4
4
  Home-page: https://gitlab.com/schmieder.matthias/gitlab-runner-tart-driver
5
5
  Author: Matthias Schmieder
6
6
  Author-email: schmieder.matthias@gmail.com
@@ -10,7 +10,7 @@ this_directory = os.path.abspath(os.path.dirname(__file__))
10
10
  with open(os.path.join(this_directory, "README.md"), encoding="utf-8") as f:
11
11
  long_description = f.read()
12
12
 
13
- version = "0.3.1"
13
+ version = "0.3.3"
14
14
 
15
15
  version = f"{version}{os.environ.get('PIP_VERSION_POSTFIX','')}"
16
16
 
@@ -1 +0,0 @@
1
- __version__ = "0.3.1"