Example #1
0
 def test_socket_cleanup(self):
     tmp_metric_socket = '/var/tmp/tmp_test_metric_socket{0}'.format(
         random.random())
     srv = Speakeasy(G_SPEAKEASY_HOST, tmp_metric_socket,
                     str(get_random_free_port()),
                     str(get_random_free_port()), 'simple',
                     ['filename=/var/tmp/test_metrics.out'],
                     60, socket_mod=0666)
     srv.start()
     self.assertTrue(os.path.exists(tmp_metric_socket))
     srv.shutdown()
     self.assertFalse(os.path.exists(tmp_metric_socket))
Example #2
0
 def test_recreate_legacy_socket(self):
     dummy_legacy_socket = '/tmp/__speakeasy_legacy_socket'
     with open(dummy_legacy_socket, 'w') as sf:
         sf.write('\n')
     with mock.patch('os.remove'):
         try:
             s = Speakeasy(G_SPEAKEASY_HOST, G_METRIC_SOCKET,
                           str(get_random_free_port()),
                           str(get_random_free_port()), 'simple',
                           ['filename=/var/tmp/test_metrics.out'],
                           60, dummy_legacy_socket)
         except socket.error:
             # remove got patched, so we should get a address already init
             # use socket error
             pass
         os.remove.assert_called_once_with(dummy_legacy_socket)
     os.remove(dummy_legacy_socket)
Example #3
0
    def test_socket_mod(self):
        tmp_metric_socket = '/var/tmp/tmp_test_metric_{0}'.format(
            random.random())
        Speakeasy(G_SPEAKEASY_HOST, tmp_metric_socket,
                  str(get_random_free_port()),
                  str(get_random_free_port()), 'simple',
                  ['filename=/var/tmp/test_metrics.out'],
                  60, socket_mod=0666)
        self.assertEqual(oct(stat.S_IMODE(os.stat(tmp_metric_socket).st_mode)),
                         '0666')

        Speakeasy(G_SPEAKEASY_HOST, tmp_metric_socket,
                  str(get_random_free_port()),
                  str(get_random_free_port()), 'simple',
                  ['filename=/var/tmp/test_metrics.out'], 60)
        self.assertNotEqual(
            oct(stat.S_IMODE(os.stat(tmp_metric_socket).st_mode)), '0666')
Example #4
0
 def test_start_without_pub_port(self):
     tmp_metric_socket = '/var/tmp/tmp_test_metric_{0}'.format(
         random.random())
     s = Speakeasy(G_SPEAKEASY_HOST, tmp_metric_socket,
                   str(get_random_free_port()), None, 'simple',
                   ['filename=/var/tmp/test_metrics.out'], 60)
     self.assertEqual(s.metric_socket, tmp_metric_socket)
     self.assertEqual(s.pub_port, None)
     self.assertEqual(s.emission_interval, 60)
     self.assertEqual(s.emitter_args['filename'],
                      '/var/tmp/test_metrics.out')
     self.assertEqual(len(s.metrics), 0)
Example #5
0
 def test_recreate_legacy_socket(self):
     dummy_legacy_socket = '/var/tmp/test_speakeasy_legacy_socket_{0}'.format(random.random())
     logger.info("Using dummy legacy socket as %s", dummy_legacy_socket)
     with open(dummy_legacy_socket, 'w') as sf:
         sf.write('\n')
     srv = None
     with mock.patch('os.remove'):
         try:
             srv = Speakeasy(G_SPEAKEASY_HOST, G_METRIC_SOCKET,
                             str(get_random_free_port()),
                             str(get_random_free_port()), 'simple',
                             ['filename=' + G_EMITTER_LOG],
                             60, dummy_legacy_socket)
             logger.info("Server generated: %s", srv)
         except socket.error:
             # remove got patched, so we should get a address already init
             # use socket error
             pass
         os.remove.assert_called_once_with(dummy_legacy_socket)
     os.remove(dummy_legacy_socket)  # actually do it
     if srv:
         srv.shutdown()
Example #6
0
# custom logger to bypass nose logging capture
logger = logging.getLogger()
handler = logging.handlers.RotatingFileHandler("test_zmq_spec.log")
handler.setFormatter(logging.Formatter('%(asctime)s [%(levelname)s] (%(funcName)s) %(message)s',
                     datefmt='%Y-%m-%d %H:%M:%S'))
logger.addHandler(handler)

speakeasy.QUEUE_WAIT_SECS = 1

random.seed(time.time())
G_SPEAKEASY_HOST = '0.0.0.0'
G_METRIC_SOCKET = '/var/tmp/test_zmq_spec_metric_sock{0}'.format(random.random())
G_LEGACY_METRIC_SOCKET = '/var/tmp/test_zmq_spec_legacy_metric_{0}'.format(random.random())
G_EMITTER_LOG = '/var/tmp/test_zmq_spec_metrics_{0}.out'.format(random.random())
G_PUB_PORT = str(get_random_free_port())
G_CMD_PORT = str(get_random_free_port())


def gen_speakeasy_server():
    return Speakeasy(G_SPEAKEASY_HOST, G_METRIC_SOCKET, G_CMD_PORT, G_PUB_PORT,
                     'simple', ['filename=' + G_EMITTER_LOG], 1, G_LEGACY_METRIC_SOCKET)


class TestEmitter(object):
    def __init__(self, **kwargs):
        pass

    def emit(self, metrics):
        """ Ship the metrics off """
        pass
import mock
from test_util import get_random_free_port
from speakeasy.speakeasy import Speakeasy
import speakeasy.speakeasy as speakeasy
import logging
import logging.handlers

# custom logger to bypass nose logging capture
logger = logging.getLogger()
handler = logging.handlers.RotatingFileHandler("test_speakeasy_legacy.log")
handler.setFormatter(logging.Formatter('%(asctime)s [%(levelname)s] (%(funcName)s) %(message)s',
                                       datefmt='%Y-%m-%d %H:%M:%S'))
logger.addHandler(handler)

G_SPEAKEASY_HOST = '0.0.0.0'
G_PUB_PORT = str(get_random_free_port())
G_CMD_PORT = str(get_random_free_port())
G_METRIC_SOCKET = '/var/tmp/test_metric_socket_{0}'.format(random.random())
G_LEGACY_METRIC_SOCKET = '/var/tmp/test_legacy_metric_socket_{0}'.format(random.random())
G_EMITTER_LOG = '/var/tmp/test_metrics_{0}.out'.format(random.random())
speakeasy.QUEUE_WAIT_SECS = 1


def gen_speakeasy_server():
    return Speakeasy(G_SPEAKEASY_HOST, G_METRIC_SOCKET, G_CMD_PORT, G_PUB_PORT,
                     'simple', ['filename=' + G_EMITTER_LOG],
                     60, G_LEGACY_METRIC_SOCKET)


class TestSpeakeasy(unittest.TestCase):
    @classmethod