Scaleway Flexible IPs are not linked to instances
confirmed-bugmodule:Scaleway
## Scaleway Flexible IPs are not linked to instances
### Expected behavior
When a Scaleway Flexible IP is attached to an instance, Cartography should create:
```cypher
(:ScalewayFlexibleIp)-[:IDENTIFIES]->(:ScalewayInstance)
```
This relationship is declared by `ScalewayInstanceToFlexibleIpRel` and is already included in the Scaleway schema documentation.
### Actual behavior
`ScalewayInstanceToFlexibleIpRel` is defined in `cartography/models/scaleway/instance/instance.py`, but `ScalewayInstanceSchema.other_relationships` only contains `ScalewayInstanceToVolumeRel`.
`cartography.intel.scaleway.instances.instances.load_instances()` loads `ScalewayInstanceSchema`, so the `IDENTIFIES` relationship is never processed. The Flexible IP sync loads only `ScalewayFlexibleIpSchema`, which contains the project relationship but no instance relationship.
The existing integration test checks project and volume relationships, but does not assert the Flexible IP relationship.
### To Reproduce
1. Sync a Scaleway project containing an instance with an attached Flexible IP.
2. Run:
```cypher
MATCH (ip:ScalewayFlexibleIp)-[:IDENTIFIES]->(instance:ScalewayInstance)
RETURN ip.id, instance.id
```
3. Observe that no relationship is returned.
### Proposed fix
- Add `ScalewayInstanceToFlexibleIpRel()` to `ScalewayInstanceSchema.other_relationships`.
- Extend the Scaleway instance integration fixture and test to create a Flexible IP node and assert the `IDENTIFIES` relationship.
### Please complete the following information:
- Cartography commit: `7c11f10c7fdb78420d337f910a050d366eded8cb`
- Python version: Not environment-specific
- OS: Not environment-specific
### Additional context
The original Scaleway PR, #1645, declared this relationship. PR #2981 later re-enabled Flexible IP ingestion and reported live verification, but did not register the relationship in `ScalewayInstanceSchema` or add an integration assertion for it.
0 条评论