@FlareImp I tested this on 1.6.0.14’s code with the location plugin. A host in a location whose storage group is not the image’s primary group gets that location’s group and node, at task creation and at boot. So the plugin does pick the local node when the host has a location.
In 1.6, “Site” and “Location” are two separate things. A Site (Sites menu) only controls which users can see and manage which hosts. It has no effect on where an image comes from. A Location (location plugin) is what picks the storage group and node.
Please check these for one Site B host:
Open the host, go to its Location tab. Is it set to the Site B location? Open that location. Which storage group and which storage node does it show? Is the image listed in the Site B storage group (Image > Storage Groups tab)?If the host has no location, it uses the image’s primary group, which is what you see.