Skip to content

Commit b8a00f4

Browse files
author
Vitaliy Zakaznikov
committed
* Moving version to 1.9 given that we now support volumes.
* Adding cloud log download command. * Adding /etc/hetzner-volumes files.
1 parent 6028a94 commit b8a00f4

File tree

4 files changed

+44
-4
lines changed

4 files changed

+44
-4
lines changed

testflows/github/hetzner/runners/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2023 Katteli Inc.
1+
# Copyright 2023-2025 Katteli Inc.
22
# TestFlows.com Open-Source Software Testing Framework (http://testflows.com)
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -13,10 +13,10 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515
__author__ = "Vitaliy Zakaznikov"
16-
__version__ = "1.8.__VERSION__"
16+
__version__ = "1.9.__VERSION__"
1717
__name__ = "testflows.github.hetzner.runners"
1818
__license__ = f"""
19-
Copyright 2023 Katteli Inc.
19+
Copyright 2023-2025 Katteli Inc.
2020
TestFlows.com Open-Source Software Testing Framework (http://testflows.com)
2121
2222
Licensed under the Apache License, Version 2.0 (the "License");

testflows/github/hetzner/runners/bin/github-hetzner-runners

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -728,6 +728,24 @@ def argparser():
728728

729729
delete_log_cloud_parser.set_defaults(func=cloud.delete_log)
730730

731+
download_log_cloud_parser = log_cloud_commands.add_parser(
732+
"download",
733+
help="download log",
734+
description="Download cloud service log.",
735+
formatter_class=RawTextHelpFormatter,
736+
)
737+
738+
download_log_cloud_parser.add_argument(
739+
"-o",
740+
"--output",
741+
metavar="path",
742+
type=str,
743+
help="output file name, default: github-hetzner-runners.log",
744+
default="github-hetzner-runners.log",
745+
)
746+
747+
download_log_cloud_parser.set_defaults(func=cloud.download_log)
748+
731749
status_cloud_parser = cloud_commands.add_parser(
732750
"status",
733751
help="get cloud service status",

testflows/github/hetzner/runners/cloud.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,26 @@ def log(args, config: Config, server: BoundServer = None):
368368
ssh(server, command, use_logger=False, stacklevel=4)
369369

370370

371+
def download_log(args, config: Config, server: BoundServer = None):
372+
"""Download cloud server service log."""
373+
if server is None:
374+
config.check("hetzner_token")
375+
server_name = config.cloud.server_name
376+
377+
client = Client(token=config.hetzner_token)
378+
server: BoundServer = client.servers.get_by_name(server_name)
379+
380+
if not server:
381+
raise ValueError(f"server {server_name} not found")
382+
383+
ip = ip_address(server)
384+
with Action(f"Downloading log from {server.name} to {args.output}"):
385+
scp(
386+
source=f"root@{ip}:{os.path.join(tempfile.gettempdir(), 'github-hetzner-runners.log')}",
387+
destination=args.output,
388+
)
389+
390+
371391
def delete_log(args, config: Config, server: BoundServer = None):
372392
"""Delete cloud server service log."""
373393
if server is None:

testflows/github/hetzner/runners/scale_up.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,9 @@ def server_setup(
176176
f"'sudo mkdir /mnt/{volume_name} "
177177
f"&& sudo e2fsck -f -y {volume.linux_device} "
178178
f"&& sudo resize2fs {volume.linux_device} "
179-
f"&& sudo mount -o discard,defaults {volume.linux_device} /mnt/{volume_name}'"
179+
f"&& sudo mount -o discard,defaults {volume.linux_device} /mnt/{volume_name}' "
180+
f'&& sudo bash -c \'[ ! -f /etc/hetzner-volumes ] && echo "name,id,size,mount,device,used,free" > /etc/hetzner-volumes '
181+
f"&& sudo echo \"{volume.name},{volume.id},{volume.size}GB,/mnt/{volume_name},{volume.linux_device},$(df -h /mnt/{volume_name} | awk 'NR==2 {{print $3}}'),$(df -h /mnt/{volume_name} | awk 'NR==2 {{print $4}}')\" >> /etc/hetzner-volumes'"
180182
),
181183
stacklevel=5,
182184
)

0 commit comments

Comments
 (0)