|
1 Add timeout to prevent cloudbase-init service being stuck in offline state |
|
2 for long time. |
|
3 This has not been committed upstream, but has been filed in launchpad: |
|
4 |
|
5 https://bugs.launchpad.net/cloudbase-init/+bug/1630006 |
|
6 |
|
7 --- cloudbase-init-0.9.9/cloudbaseinit/metadata/services/httpservice.py.orig 2016-09-06 14:29:04.416253079 +0000 |
|
8 +++ cloudbase-init-0.9.9/cloudbaseinit/metadata/services/httpservice.py 2016-09-06 14:39:14.807656387 +0000 |
|
9 @@ -58,7 +58,7 @@ |
|
10 |
|
11 def _get_response(self, req): |
|
12 try: |
|
13 - return request.urlopen(req) |
|
14 + return request.urlopen(req, timeout=1) |
|
15 except error.HTTPError as ex: |
|
16 if ex.code == 404: |
|
17 raise base.NotExistingMetadataException() |
|
18 --- cloudbase-init-0.9.9/cloudbaseinit/metadata/services/ec2service.py.orig 2016-09-06 14:29:11.956815039 +0000 |
|
19 +++ cloudbase-init-0.9.9/cloudbaseinit/metadata/services/ec2service.py 2016-09-06 14:40:09.253600964 +0000 |
|
20 @@ -60,7 +60,7 @@ |
|
21 |
|
22 def _get_response(self, req): |
|
23 try: |
|
24 - return request.urlopen(req) |
|
25 + return request.urlopen(req, timeout=1) |
|
26 except error.HTTPError as ex: |
|
27 if ex.code == 404: |
|
28 raise base.NotExistingMetadataException() |
|
29 --- cloudbase-init-0.9.9/cloudbaseinit/metadata/services/maasservice.py.orig 2016-09-06 14:29:26.753303424 +0000 |
|
30 +++ cloudbase-init-0.9.9/cloudbaseinit/metadata/services/maasservice.py 2016-09-06 14:40:40.454202962 +0000 |
|
31 @@ -79,7 +79,7 @@ |
|
32 |
|
33 def _get_response(self, req): |
|
34 try: |
|
35 - return request.urlopen(req) |
|
36 + return request.urlopen(req, timeout=1) |
|
37 except error.HTTPError as ex: |
|
38 if ex.code == 404: |
|
39 raise base.NotExistingMetadataException() |
|
40 --- cloudbase-init-0.9.9/cloudbaseinit/metadata/services/cloudstack.py.orig 2016-09-22 14:25:30.411026974 +0000 |
|
41 +++ cloudbase-init-0.9.9/cloudbaseinit/metadata/services/cloudstack.py 2016-09-22 14:26:29.615140081 +0000 |
|
42 @@ -90,7 +90,7 @@ |
|
43 """Get content for received url.""" |
|
44 LOG.debug('Getting metadata from: %s', url) |
|
45 request = urllib.request.Request(url, **kwargs) |
|
46 - response = urllib.request.urlopen(request) |
|
47 + response = urllib.request.urlopen(request, timeout=1) |
|
48 return response.read() |
|
49 |
|
50 def _get_data(self, path): |