def test_system_properties(engine_result_message, engine_consumer, db_setup, performance_record):
    engine_result_message = engine_result_message("insights-engine-result-idle.json")
    host = engine_result_message["input"]["host"]
    ros_reports = [engine_result_message["results"]["reports"][7]]
    system_metadata = engine_result_message["results"]["system"]["metadata"]
    engine_consumer.process_report(host, ros_reports, system_metadata, performance_record)
    data = db_get_host(host['id'])
    assert str(data.inventory_id) == host['id']
Exemple #2
0
def test_host_create_events(inventory_event_consumer, inventory_event_message,
                            db_setup, mocker):
    mocker.patch.object(
        inventory_event_consumer,
        'process_system_details',
        side_effect=inventory_event_consumer.process_system_details,
        autospec=True)
    inventory_event_message[
        'type'] = 'created'  # Setup to meet test case conditions
    inventory_event_consumer.host_create_update_events(inventory_event_message)
    inventory_event_consumer.process_system_details.assert_called_once()
    inventory_event_consumer.process_system_details(
        msg=inventory_event_message)
    with app.app_context():
        assert db_get_host(inventory_event_message['host']['id']).display_name == \
               inventory_event_message['host']['display_name']
        assert type(db_get_host(
            inventory_event_message['host']['id'])).__name__ == 'System'
Exemple #3
0
def test_host_delete_event(inventory_event_consumer, db_setup):
    msg = {
        "type": "delete",
        "insights_id": "677fb960-e164-48a4-929f-59e2d917b444",
        "id": "ee0b9978-fe1b-4191-8408-cbadbd47f7a2",
        "account": '0000001'
    }
    inventory_event_consumer.host_delete_event(msg)
    host = db_get_host(msg['id'])
    assert host is None
Exemple #4
0
def test_process_report_under_pressure(engine_result_message, engine_consumer, db_setup, performance_record):
    engine_result_message = engine_result_message("insights-engine-result-under-pressure.json")
    host = engine_result_message["input"]["host"]
    ros_reports = [engine_result_message["results"]["reports"][7]]
    system_metadata = engine_result_message["results"]["system"]["metadata"]
    _performance_record = copy.copy(performance_record)
    engine_consumer.process_report(host, ros_reports, system_metadata, performance_record)
    system_record = db_get_host(host['id'])
    assert str(system_record.inventory_id) == host['id']
    with app.app_context():
        assert system_record.instance_type == _performance_record['instance_type']
        assert system_record.region == _performance_record['region']
        assert system_record.state == SYSTEM_STATES['INSTANCE_OPTIMIZED_UNDER_PRESSURE']
        assert db.session.query(PerformanceProfile).filter_by(system_id=system_record.id).\
               first().performance_record == performance_record
Exemple #5
0
def test_process_report_no_pcp(engine_result_message, engine_consumer, db_setup, performance_record):
    engine_result_message = engine_result_message("insights-engine-result-no-pcp.json")
    host = engine_result_message["input"]["host"]
    ros_reports = [engine_result_message["results"]["reports"][7]]
    system_metadata = engine_result_message["results"]["system"]["metadata"]
    _performance_record = copy.copy(performance_record)
    engine_consumer.process_report(host, ros_reports, system_metadata, performance_record)
    data = db_get_host(host['id'])
    assert str(data.inventory_id) == host['id']
    with app.app_context():
        assert data.instance_type == _performance_record['instance_type']
        assert data.region == _performance_record['region']
        assert data.state == SYSTEM_STATES['NO_PCP_DATA']
        assert db.session.query(PerformanceProfile).filter_by(system_id=data.id).first().performance_record ==\
               performance_record
Exemple #6
0
def test_process_report_optimized(engine_result_message, engine_consumer, db_setup, performance_record):
    engine_result_message = engine_result_message("insights-engine-result-optimized.json")
    host = engine_result_message["input"]["host"]
    ros_reports = []
    system_metadata = engine_result_message["results"]["system"]["metadata"]
    _performance_record = copy.copy(performance_record)
    engine_consumer.process_report(host, ros_reports, system_metadata, performance_record)
    system_record = db_get_host(host['id'])
    assert str(system_record.inventory_id) == host['id']
    with app.app_context():
        assert system_record.rule_hit_details == ros_reports
        assert system_record.instance_type == _performance_record['instance_type']
        assert system_record.region == _performance_record['region']
        assert system_record.state == SYSTEM_STATES['OPTIMIZED']
        assert db.session.query(PerformanceProfile).filter_by(system_id=system_record.id).\
               first().performance_record == performance_record
Exemple #7
0
def test_process_report_no_pcp(engine_result_message, engine_consumer, db_setup, performance_record):
    engine_result_message = engine_result_message("insights-engine-result-no-pcp.json")
    host = engine_result_message["input"]["host"]
    ros_reports = [engine_result_message["results"]["reports"][7]]
    system_metadata = engine_result_message["results"]["system"]["metadata"]
    _performance_record = copy.copy(performance_record)
    engine_consumer.process_report(host, ros_reports, system_metadata, performance_record)
    system_record = db_get_host(host['id'])
    performance_utilization = db.session.query(PerformanceProfile).\
        filter_by(system_id=system_record.id).first().performance_utilization
    sample_performance_util_no_pcp = {'cpu': -1, 'memory': -1, 'max_io': -1.0, 'io': {}}
    assert str(system_record.inventory_id) == host['id']
    with app.app_context():
        assert system_record.instance_type == _performance_record['instance_type']
        assert system_record.region == _performance_record['region']
        assert system_record.state == SYSTEM_STATES['NO_PCP_DATA']
        assert performance_utilization == sample_performance_util_no_pcp
Exemple #8
0
def test_system_no_os(auth_token, db_setup, db_create_account,
                      db_create_system, db_create_performance_profile):

    # Setting db_record.operating_system to None/null
    system_record = db_get_host('ee0b9978-fe1b-4191-8408-cbadbd47f7a3')
    system_record.operating_system = None
    db.session.commit()

    with app.test_client() as client:
        response_individual_system = client.get(
            '/api/ros/v1/systems/ee0b9978-fe1b-4191-8408-cbadbd47f7a3',
            headers={"x-rh-identity": auth_token})

        assert response_individual_system.status_code == 200
        assert response_individual_system.json["os"] is None

        response_all_systems = client.get(
            '/api/ros/v1/systems', headers={"x-rh-identity": auth_token})

        assert response_all_systems.status_code == 200
        assert response_all_systems.json["data"][0]["os"] is None
Exemple #9
0
def test_host_update_events(inventory_event_consumer, inventory_event_message,
                            db_setup, mocker):
    mocker.patch.object(
        inventory_event_consumer,
        'process_system_details',
        side_effect=inventory_event_consumer.process_system_details,
        autospec=True)

    # Setup to meet test case conditions
    inventory_event_message['type'] = 'created'
    inventory_event_consumer.host_create_update_events(
        inventory_event_message)  # creating system for test
    inventory_event_message['type'] = 'updated'
    inventory_event_message['platform_metadata'] = None
    updated_display_name = 'Test - Display Name Update'  # Test case change
    inventory_event_message['host']['display_name'] = updated_display_name
    inventory_event_consumer.host_create_update_events(inventory_event_message)
    inventory_event_consumer.process_system_details.call_count = 2
    inventory_event_consumer.process_system_details(
        msg=inventory_event_message)
    with app.app_context():
        updated_system = db_get_host(inventory_event_message['host']['id'])
        assert updated_system.display_name == updated_display_name
Exemple #10
0
def test_process_system_details(inventory_event_consumer,
                                inventory_event_message, db_setup):
    inventory_event_consumer.process_system_details(inventory_event_message)
    with app.app_context():
        host = db_get_host(inventory_event_message['host']['id'])
        assert str(host.inventory_id) == inventory_event_message['host']['id']
def test_process_report(engine_result_message, engine_consumer, db_setup):
    host = engine_result_message["input"]["host"]
    ros_reports = [engine_result_message["results"]["reports"][4]]
    engine_consumer.process_report(host, ros_reports)
    data = db_get_host(host['id'])
    assert str(data.inventory_id) == host['id']