Example #1
0
    def test_notify_empty_address(self):
        address = None
        socket = None
        with mock.patch.dict(os.environ, clear=True):
            bad_address, bad_socket = utils.notify_socket()

        self.assertEqual(bad_address, address,
                         'Did not get expected value for address')
        self.assertEqual(bad_socket, socket,
                         'Did not get expected value for socket')
Example #2
0
    def test_notify_incorrect_starter(self):
        address = None
        socket = None
        with mock.patch.dict(os.environ, {'NOTIFY_SOCKET': '111'}):
            bad_address, bad_socket = utils.notify_socket()

        self.assertEqual(bad_address, address,
                         'Did not get expected value for address')
        self.assertEqual(bad_socket, socket,
                         'Did not get expected value for socket')
Example #3
0
    def test_notify_complete(self):
        address = '\x00novaagenttest'
        socket = 'mock_socket'
        with mock.patch.dict(os.environ, {'NOTIFY_SOCKET': '@novaagenttest'}):
            with mock.patch('novaagent.utils.socket') as mock_socket:
                mock_socket.socket.return_value = 'mock_socket'
                good_address, good_socket = utils.notify_socket()

        self.assertEqual(good_address, address,
                         'Did not get expected value for address')
        self.assertEqual(good_socket, socket,
                         'Did not get expected value for socket')
Example #4
0
def main():
    parser = create_parser()
    args = parser.parse_args()
    loglevel = getattr(logging, args.loglevel.upper())
    log_format = "%(asctime)s [%(levelname)-5.5s] %(message)s"

    if args.version:
        print(__version__)
        return

    if args.logfile == '-':
        logging.basicConfig(stream=sys.stdout,
                            level=loglevel,
                            format=log_format)
    else:
        logging.basicConfig(filename=args.logfile,
                            level=loglevel,
                            format=log_format)

    log.info('Agent is starting up')
    server_type = get_server_type()
    server_os = server_type.ServerOS()
    server_init = get_init_system()
    if args.no_fork is False:
        log.info('Starting daemon')
        try:
            pid = os.fork()
            if pid > 0:
                log.info('PID: {0}'.format(pid))
                os._exit(0)

        except OSError as error:
            log.error('Unable to fork. Error: {0} {1}'.format(
                error.errno, error.strerror))
            os._exit(1)
    else:
        log.info('Skipping os.fork as directed by arguments')

    notify = None
    if server_init == 'systemd':
        notify = utils.notify_socket()

    nova_agent_listen(server_type, server_os, notify, server_init)