image_test/configuration/linux/configuration-test.py (50 lines of code) (raw):
#!/usr/bin/env python3
# Copyright 2018 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import sys
import utils
def main():
# detect distros to instantiate the correct class
if sys.version_info >= (3, 7):
import distro
else:
import platform as distro
distribution = distro.linux_distribution()
distro_name = distribution[0].lower()
distro_version = distribution[1].split('.')[0]
DistroClass = None
if 'red hat enterprise linux' in distro_name and distro_version == '6':
from redhat import RedHat6Tests as DistroClass
elif 'red hat enterprise linux' in distro_name:
from redhat import RedHat7Tests as DistroClass
elif 'centos' in distro_name and distro_version == '6':
from centos import CentOS6Tests as DistroClass
elif 'centos' in distro_name:
from centos import CentOS7Tests as DistroClass
elif 'debian' in distro_name and distro_version == '8':
from debian import Debian8Tests as DistroClass
elif 'debian' in distro_name and distro_version == '9':
from debian import Debian9Tests as DistroClass
elif 'debian' in distro_name:
from debian import Debian10Tests as DistroClass
elif 'ubuntu' in distro_name:
from ubuntu import UbuntuTests as DistroClass
elif 'suse' in distro_name:
from suse import SuseTests as DistroClass
elif 'FreeBSD' in distro.system():
from freebsd import FreeBSDTests as DistroClass
else:
raise Exception('Distribution %s is not supported' % distro_name)
instance_name = utils.MetadataManager.FetchMetadataDefault('instance_name')
distro_tests = DistroClass()
distro_tests.TestPackageInstallation()
distro_tests.TestNoIrqbalanceInstalled()
distro_tests.TestKernelCmdargs()
distro_tests.TestHostname(instance_name)
distro_tests.TestRsyslogConfig()
distro_tests.TestRootPasswordDisabled()
distro_tests.TestSshdConfig()
distro_tests.TestPackageManagerConfig()
distro_tests.TestNetworkInterfaceMTU()
distro_tests.TestNTPConfig()
distro_tests.TestAutomaticSecurityUpdates()
distro_tests.TestSysctlSecurityParams()
distro_tests.TestGcloudUpToDate()
if __name__ == '__main__':
utils.RunTest(main)