Example #1
0
def test_load_table_resources_relationships(neo4j_session):
    # Create Test Azure Database Account
    cosmosdb.load_database_account_data(
        neo4j_session,
        TEST_SUBSCRIPTION_ID,
        DESCRIBE_DATABASE_ACCOUNTS,
        TEST_UPDATE_TAG,
    )

    cosmosdb._load_table_resources(
        neo4j_session,
        DESCRIBE_TABLE_RESOURCES,
        TEST_UPDATE_TAG,
    )

    expected = {
        (
            da1,
            da1 + "/tables/table1",
        ),
        (
            da2,
            da2 + "/tables/table2",
        ),
    }

    # Fetch relationships
    result = neo4j_session.run(
        """
        MATCH (n1:AzureCosmosDBAccount)-[:CONTAINS]->(n2:AzureCosmosDBTableResource) RETURN n1.id, n2.id;
        """, )

    actual = {(r['n1.id'], r['n2.id']) for r in result}

    assert actual == expected
Example #2
0
def test_load_cassandra_keyspaces_relationships(neo4j_session):
    # Create Test Azure Database Account
    cosmosdb.load_database_account_data(
        neo4j_session,
        TEST_SUBSCRIPTION_ID,
        DESCRIBE_DATABASE_ACCOUNTS,
        TEST_UPDATE_TAG,
    )

    cosmosdb._load_cassandra_keyspaces(
        neo4j_session,
        DESCRIBE_CASSANDRA_KEYSPACES,
        TEST_UPDATE_TAG,
    )

    expected = {
        (
            da1,
            da1 + "/cassandraKeyspaces/cass_ks1",
        ),
        (
            da2,
            da2 + "/cassandraKeyspaces/cass_ks2",
        ),
    }

    # Fetch relationships
    result = neo4j_session.run(
        """
        MATCH (n1:AzureCosmosDBAccount)-[:CONTAINS]->(n2:AzureCosmosDBCassandraKeyspace) RETURN n1.id, n2.id;
        """, )

    actual = {(r['n1.id'], r['n2.id']) for r in result}

    assert actual == expected
Example #3
0
def test_load_database_account_data(neo4j_session):
    cosmosdb.load_database_account_data(
        neo4j_session,
        TEST_SUBSCRIPTION_ID,
        DESCRIBE_DATABASE_ACCOUNTS,
        TEST_UPDATE_TAG,
    )

    expected_nodes = {
        da1,
        da2,
    }

    nodes = neo4j_session.run(
        """
        MATCH (r:AzureCosmosDBAccount) RETURN r.id;
        """, )
    actual_nodes = {n['r.id'] for n in nodes}

    assert actual_nodes == expected_nodes
Example #4
0
def test_load_database_account_associated_locations_relationships(
        neo4j_session):
    # Create Test Azure Database Account
    cosmosdb.load_database_account_data(
        neo4j_session,
        TEST_SUBSCRIPTION_ID,
        DESCRIBE_DATABASE_ACCOUNTS,
        TEST_UPDATE_TAG,
    )

    for database_account in DESCRIBE_DATABASE_ACCOUNTS:
        cosmosdb._load_database_account_associated_locations(
            neo4j_session,
            database_account,
            TEST_UPDATE_TAG,
        )

    expected = {
        (
            da1,
            "DA1-eastus",
        ),
        (
            da1,
            "DA1-centralindia",
        ),
        (
            da1,
            "DA1-japaneast",
        ),
    }

    # Fetch relationships
    result = neo4j_session.run(
        """
        MATCH (n1:AzureCosmosDBAccount)-[:ASSOCIATED_WITH]->(n2:AzureCosmosDBLocation) RETURN n1.id, n2.id;
        """, )

    actual = {(r['n1.id'], r['n2.id']) for r in result}

    assert actual == expected
Example #5
0
def test_load_database_account_data_relationships(neo4j_session):
    # Create Test Azure Subscription
    neo4j_session.run(
        """
        MERGE (as:AzureSubscription{id: {subscription_id}})
        ON CREATE SET as.firstseen = timestamp()
        SET as.lastupdated = {update_tag}
        """,
        subscription_id=TEST_SUBSCRIPTION_ID,
        update_tag=TEST_UPDATE_TAG,
    )

    cosmosdb.load_database_account_data(
        neo4j_session,
        TEST_SUBSCRIPTION_ID,
        DESCRIBE_DATABASE_ACCOUNTS,
        TEST_UPDATE_TAG,
    )

    expected = {
        (
            TEST_SUBSCRIPTION_ID,
            da1,
        ),
        (
            TEST_SUBSCRIPTION_ID,
            da2,
        ),
    }

    # Fetch relationships
    result = neo4j_session.run(
        """
        MATCH (n1:AzureSubscription)-[:RESOURCE]->(n2:AzureCosmosDBAccount) RETURN n1.id, n2.id;
        """, )

    actual = {(r['n1.id'], r['n2.id']) for r in result}

    assert actual == expected
Example #6
0
def test_load_cosmosdb_private_endpoint_connections_relationships(
        neo4j_session):
    # Create Test Azure Database Account
    cosmosdb.load_database_account_data(
        neo4j_session,
        TEST_SUBSCRIPTION_ID,
        DESCRIBE_DATABASE_ACCOUNTS,
        TEST_UPDATE_TAG,
    )

    for database_account in DESCRIBE_DATABASE_ACCOUNTS:
        cosmosdb._load_cosmosdb_private_endpoint_connections(
            neo4j_session,
            database_account,
            TEST_UPDATE_TAG,
        )

    expected = {
        (
            da1,
            da1 + "/privateEndpointConnections/pe1",
        ),
        (
            da2,
            da2 + "/privateEndpointConnections/pe2",
        ),
    }

    # Fetch relationships
    result = neo4j_session.run(
        """
        MATCH (n1:AzureCosmosDBAccount)-[:CONFIGURED_WITH]->(n2:AzureCDBPrivateEndpointConnection) RETURN n1.id, n2.id;
        """, )

    actual = {(r['n1.id'], r['n2.id']) for r in result}

    assert actual == expected
Example #7
0
def test_load_cosmosdb_virtual_network_rules_relationships(neo4j_session):
    # Create Test Azure Database Account
    cosmosdb.load_database_account_data(
        neo4j_session,
        TEST_SUBSCRIPTION_ID,
        DESCRIBE_DATABASE_ACCOUNTS,
        TEST_UPDATE_TAG,
    )

    for database_account in DESCRIBE_DATABASE_ACCOUNTS:
        cosmosdb._load_cosmosdb_virtual_network_rules(
            neo4j_session,
            database_account,
            TEST_UPDATE_TAG,
        )

    expected = {
        (
            da1,
            rg + "/providers/Microsoft.Network/virtualNetworks/vn1",
        ),
        (
            da2,
            rg + "/providers/Microsoft.Network/virtualNetworks/vn2",
        ),
    }

    # Fetch relationships
    result = neo4j_session.run(
        """
        MATCH (n1:AzureCosmosDBAccount)-[:CONFIGURED_WITH]->(n2:AzureCosmosDBVirtualNetworkRule) RETURN n1.id, n2.id;
        """, )

    actual = {(r['n1.id'], r['n2.id']) for r in result}

    assert actual == expected
Example #8
0
def test_load_cosmosdb_failover_policies_relationships(neo4j_session):
    # Create Test Azure Database Account
    cosmosdb.load_database_account_data(
        neo4j_session,
        TEST_SUBSCRIPTION_ID,
        DESCRIBE_DATABASE_ACCOUNTS,
        TEST_UPDATE_TAG,
    )

    for database_account in DESCRIBE_DATABASE_ACCOUNTS:
        cosmosdb._load_cosmosdb_failover_policies(
            neo4j_session,
            database_account,
            TEST_UPDATE_TAG,
        )

    expected = {
        (
            da1,
            "DA1-eastus",
        ),
        (
            da2,
            "DA2-eastus",
        ),
    }

    # Fetch relationships
    result = neo4j_session.run(
        """
        MATCH (n1:AzureCosmosDBAccount)-[:CONTAINS]->(n2:AzureCosmosDBAccountFailoverPolicy) RETURN n1.id, n2.id;
        """, )

    actual = {(r['n1.id'], r['n2.id']) for r in result}

    assert actual == expected