1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00
samba-mirror/python/samba/tests/blackbox/smbcontrol.py
Douglas Bagnall aecb2b779b python: remove all 'from __future__ import print_function'
This made Python 2's print behave like Python 3's print().

In some cases, where we had:

   from __future__ import print_function
   """Intended module documentation..."""

this will have the side effect of making the intended module documentation
work as the actual module documentation (i.e. becoming __doc__), because
it is once again the first statement in the module.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2021-04-28 03:43:34 +00:00

83 lines
3.4 KiB
Python

# Blackbox tests for smbcontrol
#
# Copyright (C) Catalyst IT Ltd. 2017
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
from samba.tests import BlackboxTestCase, BlackboxProcessError
from samba.messaging import Messaging
COMMAND = "bin/smbcontrol"
PING = "ping"
USAGE = "pool-usage"
class SmbcontrolBlackboxTests(BlackboxTestCase):
def setUp(self):
super(SmbcontrolBlackboxTests, self).setUp()
lp_ctx = self.get_loadparm()
self.msg_ctx = Messaging(lp_ctx=lp_ctx)
def test_expected_processes(self):
"""
Test that the expected samba processes are running, currently we only
check that at least one process is running
"""
processes = self.msg_ctx.irpc_all_servers()
if not processes:
self.fail("No samba processes returned")
def test_ping(self):
"""Test that all the samba processes can be pinged"""
processes = self.msg_ctx.irpc_all_servers()
for p in processes:
for id in p.ids:
if p.name != "samba":
try:
self.check_run("%s %d %s" % (COMMAND, id.pid, PING),
msg="trying to ping %s" % p.name)
except BlackboxProcessError as e:
# This process could not be pinged, which is
# expected (occasionally) if the ldap_server
# is using the "standard process model" and
# forking a short-lived child for each
# connection. We don't care about this, so we
# list the processes again and assume that
# only those that remain are relevant to the
# ping test. Additionally we ensure that at
# least one process of each name remains -- in
# the ldap_server case, we expect at least the
# parent to be there.
name_exists = False
surviving_processes = self.msg_ctx.irpc_all_servers()
for q in surviving_processes:
if q.name == p.name:
name_exists = True
if id.pid in [x.pid for x in q.ids]:
# the unpingable server is still
# listed, meaning it is broken
raise
if not name_exists:
# it looks like the service genuinely died
# just at this moment
raise
print("Ignoring error %s:" % e)
print("the process probably died before our ping")
continue