Skip to content

Commit

Permalink
dont depend on distro just for usage data
Browse files Browse the repository at this point in the history
looks like the trick: distro;platform_system==="Linux"'
will not work, distro is only used for usage data, we should not raise the minimum dependency list
just for that.

We use /etc/os-release in order to get that data
  • Loading branch information
tardyp committed Apr 19, 2017
1 parent 20acb26 commit b2e4a0e
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 11 deletions.
20 changes: 15 additions & 5 deletions master/buildbot/buildbot_net_usage_data.py
Expand Up @@ -27,6 +27,7 @@
import hashlib
import inspect
import json
import os
import platform
import socket

Expand All @@ -42,12 +43,21 @@
PHONE_HOME_URL = "https://events.buildbot.net/events/phone_home"


def get_distro():
try:
from distro import linux_distribution
except ImportError:
linux_distribution = None
def linux_distribution():
os_release = "/etc/os-release"
meta_data = {'ID': "unknown_linux", 'VERSION_ID': "unknown_version"}
if os.path.exists(os_release):
with open("/etc/os-release") as f:
for line in f:
try:
k, v = line.strip().split("=")
meta_data[k] = v.strip('""')
except Exception:
pass
return meta_data['ID'], meta_data['VERSION_ID']


def get_distro():
system = platform.system()
if system == "Linux":
dist = linux_distribution()
Expand Down
11 changes: 11 additions & 0 deletions master/buildbot/test/unit/test_buildbot_net_usage_data.py
Expand Up @@ -19,6 +19,7 @@
from future.moves.urllib import request as urllib_request

import os
import platform
from unittest.case import SkipTest

from twisted.internet import reactor
Expand All @@ -29,6 +30,7 @@
from buildbot import config
from buildbot.buildbot_net_usage_data import _sendBuildbotNetUsageData
from buildbot.buildbot_net_usage_data import computeUsageData
from buildbot.buildbot_net_usage_data import linux_distribution
from buildbot.config import BuilderConfig
from buildbot.config import ConfigWarning
from buildbot.master import BuildMaster
Expand Down Expand Up @@ -143,3 +145,12 @@ def test_real(self):
" TEST_BUILDBOTNET_USAGEDATA is set")

_sendBuildbotNetUsageData({'foo': 'bar'})

def test_linux_distro(self):
system = platform.system()
if system != "Linux":
raise SkipTest("test is only for linux")
distro = linux_distribution()
self.assertEqual(len(distro), 2)
self.assertNotIn("unknown", distro[0])
self.assertNotIn("unknown", distro[1])
6 changes: 0 additions & 6 deletions master/setup.py
Expand Up @@ -458,12 +458,6 @@ def define_plugin_entries(groups):
'PyJWT',
]

# based on https://discourse.numenta.org/t/setup-py-error-invalid-environment-marker/1298/4
if LooseVersion(setuptools_version.__version__) >= LooseVersion("20.2.2"):
setup_args['install_requires'].append('distro;platform_system==="Linux"')
elif platform.system() == 'Linux':
setup_args['install_requires'].append('distro')

# Unit test dependencies.
test_deps = [
# http client libraries
Expand Down

0 comments on commit b2e4a0e

Please sign in to comment.