SINTEF-9012 / cloudml

CloudML: Transparent deployment of cloud applications
GNU Lesser General Public License v3.0
27 stars 8 forks source link

It's impossible to get the correct status of an instance #34

Open rickdesantis opened 9 years ago

rickdesantis commented 9 years ago

While using the web socket client, it is often impossible to get correctly the status of the instances when using Amazon. This query:

!getSnapshot
path : /componentInstances[id='eu-west-1/i-f80eea1e']
multimaps : { status : status }

will very often return a { status : null } for no particular reasons. For the tests, the deploy was performed correctly via:

!extended { name : LoadDeployment }
!additional json-string: { ..... }
!extended { name : Deploy }

and I've also tried starting and stopping the instances before asking for the instance status by using:

!extended { name: StartComponent, params: [eu-west-1/i-f80eea1e] }

or

!extended { name: StopComponent, params: [eu-west-1/i-f80eea1e] }

but still that status variable is often wrong.

Reading the "updates" received when these operations are completed works, but sometimes it is useful to know the actual status of the network when first connected to it, and there seems to be no safe option for this at the moment.

rickdesantis commented 9 years ago

Well I've tried updating to the latest snapshot and now it seems to be working, sorry. I'll try sometimes more before closing it, or if you assure me that it works, just close it.

rickdesantis commented 9 years ago

It still happens sometimes, and waiting and keeping asking doesn't solve the problem.

EDIT: also performing a ScaleOut:

!extended { name: ScaleOut, params: [eu-west-1/i-f80eea1e,1] }

doesn't solve the problem. If one status doesn't work, no status will work. Please give me a feedback because I'm just checking if the machine is reachable:

InetAddress.getByName(ip).isReachable(timeout);

if I notice the problem. This of course isn't a good enough solution, because "stopping" instances will probably be still reachable.