AppScale/appscale — pull request #318 by shatterednirvana (2013-02-28 16:01:04+00:00)
Title: Fixes for complex deployment strategy

When running AppScale in EC2 or Eucalyptus with this `ips_layout`:

```
ips_layout:
master : node-1
appengine:
- node-2
- node-3
database:
- node-4
- node-5
zookeeper: # zookeeper uses paxos, so it needs a majority up (hence 3)
- node-6
- node-7
- node-8
```

AppScale typically fails to start up. This branch adds in 3 fixes to solve this problem. First, when checking other machines to see if they're AppScale compatible, we check 10 times instead of just once (as sometimes the initial check will fail). Next, when looking for the UserAppServer's IP address, we resolve it from a FQDN to an IP so that it will match the other FQDNs that we've converted to IPs. Finally, we also use a more intelligent mechanism to find a UserAppServer when starting App Engine apps. Now, instead of using one host always, we look in `@nodes` and use the first machine that has port 4343 open on it.

Tested on EC2 and Euca 3.2.