zerovm / zerocloud

Swift middleware for Zerocloud
Apache License 2.0
53 stars 14 forks source link

fix RestController 500 errors #155

Closed pkit closed 10 years ago

pkit commented 10 years ago

This problem exists in both the RestController and the ApiController.

*Controller.load_config was returning too early if the cluster_config was retrieved from memcached. Later in the controller call chain, if cluster_config is set, config_path is expected to be set as well, but the load_config call was returning prematurely before config_path could be set.

This was resulting in intermittent generic 500 errors when exercising the /api/ URL REST features. (Basically, a reqest would work the first time, then throw errors until the cache expires--about 60 seconds later--and then start working again.)

This patch fixes it by properly initializing config_path at all times We also verify it by adding a variation of an exsiting test that tests the behavior in memecache presence

pkit commented 10 years ago

addresses #151

pkit commented 10 years ago

Because in RestController config_path is taken verbatim from request url and not calculated through container metadata (and accessing container metadata could be expensive).

larsbutler commented 10 years ago

Alright, cool. Looks good!