Something I also noticed is that the client code in openstackclient/compute/v2/server.py is getting all the ports and then filtering if a fixed_ip is given, it could have passed the fixed_ip to "port list" to have it filter for it, at least I think that should work and might also fix the issue.
I'm not sure this is a bug in neutron, but possibly in either the client or openstacksdk.
The PUT has the incorrect port id:
{"floatingip": {"fixed_ ip_address" : "10.66.0.18", "port_id": "6f8626ba- ae8c-492a- 93ad-3f349c600a 3b"}}'
It should have 778899dd- 7c15-47a9- 8968-261088aa14 bf
Can you run the command with an increased verbosity using -vv/-vvv ? I'm curious what the GET returns for port information, for example this command:
GET call to network for http:// 10.245. 161.159: 9696/v2. 0/ports? device_ id=063c2e8e- 4d57-4267- a506-4c7b336e71 b6
Something I also noticed is that the client code in openstackclient /compute/ v2/server. py is getting all the ports and then filtering if a fixed_ip is given, it could have passed the fixed_ip to "port list" to have it filter for it, at least I think that should work and might also fix the issue.