mirror of
https://github.com/thegeeklab/prometheus-pve-sd.git
synced 2024-11-22 09:20:41 +00:00
fix: convert file mode string to ocal (#186)
This commit is contained in:
parent
da048ebb2c
commit
ba2da53540
@ -174,7 +174,7 @@ class PrometheusSD:
|
|||||||
json.dump(output, tf, indent=4)
|
json.dump(output, tf, indent=4)
|
||||||
|
|
||||||
shutil.move(temp_file.name, self.config.config["output_file"])
|
shutil.move(temp_file.name, self.config.config["output_file"])
|
||||||
chmod(self.config.config["output_file"], self.config.config["output_file_mode"])
|
chmod(self.config.config["output_file"], int(self.config.config["output_file_mode"], 8))
|
||||||
|
|
||||||
def _terminate(self, signal, frame):
|
def _terminate(self, signal, frame):
|
||||||
self.log.sysexit_with_message("Terminating", code=0)
|
self.log.sysexit_with_message("Terminating", code=0)
|
||||||
|
@ -71,7 +71,7 @@ class Config():
|
|||||||
"type": environs.Env().str
|
"type": environs.Env().str
|
||||||
},
|
},
|
||||||
"output_file_mode": {
|
"output_file_mode": {
|
||||||
"default": "0644",
|
"default": "0640",
|
||||||
"env": "OUTPUT_FILE_MODE",
|
"env": "OUTPUT_FILE_MODE",
|
||||||
"file": True,
|
"file": True,
|
||||||
"type": environs.Env().str
|
"type": environs.Env().str
|
||||||
|
35
prometheuspvesd/test/fixtures/fixtures.py
vendored
35
prometheuspvesd/test/fixtures/fixtures.py
vendored
@ -3,6 +3,9 @@
|
|||||||
import environs
|
import environs
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
from prometheuspvesd.model import Host
|
||||||
|
from prometheuspvesd.model import HostList
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def builtins():
|
def builtins():
|
||||||
@ -293,3 +296,35 @@ def networks():
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def inventory():
|
||||||
|
hostlist = HostList()
|
||||||
|
hostlist.add_host(Host("101", "host1", "129.168.0.1", False, "qemu"))
|
||||||
|
hostlist.add_host(Host("202", "host2", "129.168.0.2", False, "qemu"))
|
||||||
|
|
||||||
|
return hostlist
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def labels():
|
||||||
|
return [{
|
||||||
|
"targets": ["host1"],
|
||||||
|
"labels": {
|
||||||
|
"__meta_pve_ipv4": "129.168.0.1",
|
||||||
|
"__meta_pve_ipv6": "False",
|
||||||
|
"__meta_pve_name": "host1",
|
||||||
|
"__meta_pve_type": "qemu",
|
||||||
|
"__meta_pve_vmid": "101"
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
"targets": ["host2"],
|
||||||
|
"labels": {
|
||||||
|
"__meta_pve_ipv4": "129.168.0.2",
|
||||||
|
"__meta_pve_ipv6": "False",
|
||||||
|
"__meta_pve_name": "host2",
|
||||||
|
"__meta_pve_type": "qemu",
|
||||||
|
"__meta_pve_vmid": "202"
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
"""Test CLI class."""
|
"""Test CLI class."""
|
||||||
|
import json
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from proxmoxer import ProxmoxAPI
|
from proxmoxer import ProxmoxAPI
|
||||||
|
|
||||||
@ -66,3 +68,19 @@ def test_cli_api_error(mocker, builtins, capsys):
|
|||||||
stdout, stderr = capsys.readouterr()
|
stdout, stderr = capsys.readouterr()
|
||||||
assert "Proxmoxer API error: Dummy API Exception" in stderr
|
assert "Proxmoxer API error: Dummy API Exception" in stderr
|
||||||
assert e.value.code == 1
|
assert e.value.code == 1
|
||||||
|
|
||||||
|
|
||||||
|
def test_cli_write(mocker, tmp_path, builtins, inventory, labels):
|
||||||
|
temp = tmp_path / "temp.txt"
|
||||||
|
out = tmp_path / "out.txt"
|
||||||
|
|
||||||
|
builtins["output_file"]["default"] = out.as_posix()
|
||||||
|
|
||||||
|
mocker.patch.dict(Config.SETTINGS, builtins)
|
||||||
|
mocker.patch.object(Discovery, "_auth", return_value=mocker.create_autospec(ProxmoxAPI))
|
||||||
|
mocker.patch.object(Discovery, "propagate", return_value=inventory)
|
||||||
|
mocker.patch("tempfile.NamedTemporaryFile", return_value=temp.open("w"))
|
||||||
|
|
||||||
|
psd = PrometheusSD()
|
||||||
|
assert json.loads(out.read_text()) == labels
|
||||||
|
assert oct(out.stat().st_mode & 0o777) == oct(int(psd.config.config["output_file_mode"], 8))
|
||||||
|
Loading…
Reference in New Issue
Block a user