Apologies for the delay in my reply.
Xen 4.1 on Ubuntu 12 does not create a bridge in /etc/network/interfaces. That must be done manually and is mentioned on their installation pages as well: https://help.ubuntu.com/community/Xen.
The /etc/xen/xend-config.sxp file contains the line “(vif-script vif-bridge)” which means that it automatically searches for the first-found bridge device.
The xen-hypervisor-4.1 package is what contains xend, and the entire build log as well as custom Ubuntu patches can be seen here: https://launchpad.net/ubuntu/+source/xen/4.1.2-2ubuntu2.5
For a full list of what patches Ubuntu has made to the Xend core, see the patches folder inside this file: https://launchpad.net/ubuntu/+archive/primary/+files/xen_4.1.2-2ubuntu2.5.debian.tar.gz
They do not seem to have applied any patches that would modify whether or not a bridge is automatically created.
The next thing to check would be their build logs, which shows the exact method by which they configured and built xend, available at: https://launchpadlibrarian.net/127910512/buildlog_ubuntu-precise-amd64.xen_4.1.2-2ubuntu2.5_BUILDING.txt.gz
Reading their logs, I don’t see any suggestion that they’ve disabled bridge-creation.
In short: Xen 4.x doesn’t create any bridge BY DEFAULT. It’s not Ubuntu-behavior. It’s Xen-behavior. If Xen used to do it in the past, it sure doesn’t do it anymore. The new default is to search for the first-available bridge, the creation of which is left up to the user.
This is corroborated if you go to http://wiki.xen.org/wiki/Getting_Started and in particular: http://wiki.xen.org/wiki/Network_Configuration_Examples_(Xen_4.1%2B)
So yes, you need to update the Cloudmin documentation, telling people to create a bridge device BEFORE running the cloudmin install script (alternatively, write a script that looks for bridges, and if none are found, performs one of the 3 bridge creation methods I wrote about in the above post). Also, be ready to switch to using XL instead of XM, since it’s now the default toolset as of Xen 4.2. My 4.1 installation still uses XM, so dual support will be needed since not everyone will be on 4.2. Making cloudmin automatically select the appropriate tool based on what’s active on the system should be on the agenda.
Oh, and I named my manually created bridge xenbr0, which Cloudmin detects and uses just fine, so it’s good to see that you’re obviously not using hardcoded/expected bridge names. xenbr0 is a common name, as is br0. eth0 is just a common legacy name for autocreated bridges, and is an insane misnomer.