Exemple #1
0
def install(pattoo_home):
    """Start configuration process.

    Args:
        None

    Returns:
        None

    """
    # Initialize key variables
    if os.environ.get('PATTOO_CONFIGDIR') is None:
        os.environ['PATTOO_CONFIGDIR'] = '{0}etc{0}pattoo'.format(os.sep)
    config_dir = os.environ.get('PATTOO_CONFIGDIR')

    pattoo_webd_dict = {
        'pattoo_webd': {
            'ip_listen_address': '0.0.0.0',
            'ip_bind_port': 20200,
        },
        'pattoo_web_api': {
            'ip_address': '::1',
            'ip_bind_port': 20202
        },
    }

    shared_config = {
        'pattoo': {
            'language': 'en',
            'log_directory': ('/var/log/pattoo'),
            'log_level': 'debug',
            'cache_directory': ('/opt/pattoo/cache'),
            'daemon_directory': ('/opt/pattoo/daemon'),
            'system_daemon_directory': '/var/run/pattoo',
        }
    }

    # Attempt to create configuration directory
    files.mkdir(config_dir)

    # Create the pattoo user and group
    configure.create_user('pattoo', pattoo_home, '/bin/false', True)

    # Attempt to change the ownership of the config and pattoo-home directories
    shared.chown(config_dir)
    shared.chown(pattoo_home)

    # Create pattoo configuration if pattoo had not been installed
    configure.configure_component('pattoo', config_dir, shared_config)

    # Configure pattoo web
    configure.configure_component('pattoo_webd', config_dir, pattoo_webd_dict)
Exemple #2
0
    def test_configure_component(self):
        """Unittest to test the configure_component function."""
        # Initialize key variables
        test_name = str(os.urandom(5))
        expected = {
            'polling_interval': 300,
        }
        with tempfile.TemporaryDirectory() as temp_dir:
            file_path = os.path.join(temp_dir, '{}.yaml'.format(test_name))

            # Create config file
            configure.configure_component(test_name, temp_dir, expected)

            # Retrieve config dict from yaml file
            result = configure.read_config(file_path, expected)
            self.assertEqual(result, expected)
def install(daemon_list):
    """Start configuration process.

    Args:
        None

    Returns:
        None

    """
    # Initialize key variables
    if os.environ.get('PATTOO_CONFIGDIR') is None:
        os.environ['PATTOO_CONFIGDIR'] = '{0}etc{0}pattoo'.format(os.sep)
    config_dir = os.environ.get('PATTOO_CONFIGDIR')

    autonomousd_agent_dict = {
        'polling_interval': 300,
    }

    hubd_agent_dict = {
        'polling_interval': 300,
        'ip_targets': {
            'ip_address': '127:0.0.1',
            'ip_bind_port': 5000
        }
    }

    spoked_agent_dict = {
        'polling_interval': 300,
        'ip_listen_address': '127.0.0.1',
        'ip_bind_port': 5000
    }

    # Attempt to create configuration directory
    files.mkdir(config_dir)

    # Create the pattoo user and group
    configure.create_user('pattoo', '/nonexistent', ' /bin/false', True)

    # Attempt to change the ownership of the configuration directory
    shared.chown(config_dir)

    # Configure daemons in list regardless of order
    for daemon in daemon_list:
        # Configure autonomous agent
        if 'autonomousd' in daemon:
            configure.configure_component(daemon, config_dir,
                                          autonomousd_agent_dict)

        # Configure spoked agent
        elif 'spoked' in daemon:
            configure.configure_component(daemon, config_dir,
                                          spoked_agent_dict)

        # Convert hubd agents
        elif 'hubd' in daemon:
            configure.configure_component(daemon, config_dir, hubd_agent_dict)

        else:
            continue
Exemple #4
0
def install(pattoo_home):
    """Start configuration process.

    Args:
        None

    Returns:
        None

    """
    # Initialize key variables
    if os.environ.get('PATTOO_CONFIGDIR') is None:
        os.environ['PATTOO_CONFIGDIR'] = '{0}etc{0}pattoo'.format(os.sep)
    config_dir = os.environ.get('PATTOO_CONFIGDIR')

    pattoo_webd_dict = {
        'pattoo_webd': {
            'ip_listen_address': '0.0.0.0',
            'ip_bind_port': 20200,
        },
        'pattoo_web_api': {
            'ip_address': '::1',
            'ip_bind_port': 20202
        },
    }

    # Attempt to create configuration directory
    files.mkdir(config_dir)

    # Create the pattoo user and group
    configure.create_user('pattoo', pattoo_home, ' /bin/false', True)

    # Attempt to change the ownership of the config and pattoo-home directories
    shared.chown(config_dir)
    shared.chown(pattoo_home)

    # Configure pattoo web
    configure.configure_component('pattoo_webd', config_dir, pattoo_webd_dict)
Exemple #5
0
def install(pattoo_home):
    """Start configuration process.

    Args:
        pattoo_home: The home directory of the pattoo user

    Returns:
        None
    """
    # Initialize key variables
    if os.environ.get('PATTOO_CONFIGDIR') is None:
        os.environ['PATTOO_CONFIGDIR'] = '{0}etc{0}pattoo'.format(os.sep)
    config_directory = os.environ.get('PATTOO_CONFIGDIR')
    shared_config = {
        'encryption': {
            'api_email': '*****@*****.**',
        },
        'pattoo': {
            'language': 'en',
            'log_directory': ('/var/log/pattoo'),
            'log_level': 'debug',
            'cache_directory': ('/opt/pattoo-cache'),
            'daemon_directory': ('/opt/pattoo-daemon'),
            'system_daemon_directory': '/var/run/pattoo',
        }
    }

    agent_config = {
        'encryption': {
            'agent_email': '*****@*****.**'
        },
        'pattoo_agent_api': {
            'ip_address': '127.0.0.1',
            'ip_bind_port': 20201
        },
        'pattoo_web_api': {
            'ip_address': '127.0.0.1',
            'ip_bind_port': 20202,
        }
    }

    server_config = {
        'pattoo_db': {
            'db_pool_size': 10,
            'db_max_overflow': 20,
            'db_hostname': 'localhost',
            'db_username': '******',
            'db_password': '******',
            'db_name': 'pattoo'
        },
        'pattoo_api_agentd': {
            'ip_listen_address': '0.0.0.0',
            'ip_bind_port': 20201,
        },
        'pattoo_apid': {
            'ip_listen_address': '0.0.0.0',
            'ip_bind_port': 20202,
        },
        'pattoo_ingesterd': {
            'ingester_interval': 3600,
            'batch_size': 500,
            'graceful_timeout': 10
        }
    }

    # Attempt to create configuration directory
    files.mkdir(config_directory)

    if getpass.getuser() != 'travis':
        # Create the pattoo user and group
        configure.create_user('pattoo', pattoo_home, '/bin/false', True)

        # Attempt to change the ownership of the config and home directories
        shared.chown(config_directory)
        shared.chown(pattoo_home)

    # Create configuration
    configure.configure_component('pattoo', config_directory, shared_config)

    configure.configure_component('pattoo_agent', config_directory,
                                  agent_config)

    configure.configure_component('pattoo_server', config_directory,
                                  server_config)
Exemple #6
0
def install(pattoo_home):
    """Start configuration process.

    Args:
        pattoo_home: The home directory of the pattoo user

    Returns:
        None
    """
    # Initialize key variables
    if os.environ.get('PATTOO_CONFIGDIR') is None:
        os.environ['PATTOO_CONFIGDIR'] = '{0}etc{0}pattoo'.format(os.sep)
    config_directory = os.environ.get('PATTOO_CONFIGDIR')
    shared_config = {
        'pattoo': {
            'language': 'en',
            'log_directory': (
                '/var/log/pattoo'),
            'log_level': 'debug',
            'cache_directory': (
                '/opt/pattoo/cache'),
            'daemon_directory': (
                '/opt/pattoo/daemon'),
            'system_daemon_directory': '/var/run/pattoo',
        }
    }

    # Defines how agents will communicate with the API daemons
    # Only required for travis-ci unittesting
    agent_config = {
        'pattoo_agent_api': {
            'ip_address': '127.0.0.1',
            'ip_bind_port': 20201
        },
    }

    server_config = {
        'pattoo_db': {
            'db_pool_size': 10,
            'db_max_overflow': 20,
            'db_hostname': 'localhost',
            'db_username': '******',
            'db_password': '******',
            'db_name': 'pattoo'
        },
        'pattoo_api_agentd': {
            'ip_listen_address': '0.0.0.0',
            'ip_bind_port': 20201,
            'api_encryption_email': '*****@*****.**',
        },
        'pattoo_apid': {
            'ip_listen_address': '0.0.0.0',
            'ip_bind_port': 20202,
            'jwt_secret_key': secrets.token_urlsafe(64),
            'acesss_token_exp': '15_m',
            'refresh_token_exp': '1_D'
        },
        'pattoo_ingesterd': {
            'ingester_interval': 3600,
            'batch_size': 500,
            'graceful_timeout': 10
        }
    }

    # Attempt to create configuration directory
    files.mkdir(config_directory)

    if _shared.root_check() is True:
        # Create the pattoo user and group
        configure.create_user('pattoo', pattoo_home, '/bin/false', True)

        # Attempt to change the ownership of the config and home directories
        shared.chown(config_directory)
        shared.chown(pattoo_home)

    # Create configuration
    configure.configure_component('pattoo', config_directory, shared_config)

    configure.configure_component(
        'pattoo_server', config_directory, server_config)

    configure.configure_component(
        'pattoo_agent', config_directory, agent_config)