[Bug 1534655] Re: Autoscaling auth failure in OpenStack Kilo 2015.1.2
Jakub Pavlik
pavlk.jakub at gmail.com
Fri Jan 15 18:06:20 UTC 2016
** Description changed:
We upgraded environment to OpenStack Kilo 2015.1.2 and then we cannot
use heat autoscaling feature anymore.
Keystone version 1:2015.1.2-0ubuntu2~cloud0
Heat version 2015.1.2-0ubuntu1~cloud0
- First we hit authentication failure on ec2tokens heat-api-cfn.log
2016-01-15 14:21:07.505 6590 INFO heat.api.aws.ec2token [-] Checking AWS credentials..
2016-01-15 14:21:07.507 6590 INFO heat.api.aws.ec2token [-] AWS credentials found, checking against keystone.
2016-01-15 14:21:07.509 6590 INFO heat.api.aws.ec2token [-] Authenticating with http://10.200.26.10:5000/ec2tokens
2016-01-15 14:21:07.533 6590 INFO heat.api.aws.ec2token [-] AWS authentication failure.
2016-01-15 14:21:07.535 6590 INFO eventlet.wsgi.server [-] 10.200.26.11 - - [15/Jan/2016 14:21:07] "POST /v1/signal/arn%3Aopenstack%3Aheat%3A%3A4a28da719dc64deb9d1d5cfa770bbca2%3Astacks%2Fheat_autoscale_cpu_vpc20%2F3a268b22-d436-4cf8-9088-8418702be09a%2Fresources%2Fserver_scaleup_policy?Timestamp=2016-01-15T13%3A14%3A22Z&SignatureMethod=HmacSHA256&AWSAccessKeyId=f042045aabc74728a49059a4c52226bf&SignatureVersion=2&Signature=GomCM13riX1UYu3OpJZ3ERXpfekHkmeACA4DznTL6g8%3D HTTP/1.1" 403 301 0.031258
We applied patch to keystone https://bugs.launchpad.net/openstack-
ansible/+bug/1515485
https://git.openstack.org/cgit/openstack/keystone/commit/?id=f66badae63b1544c3bcc83e0c1afc8e9cdc71bab
Then we hit error on python-novaclient auth boot during autoscaling
heat-engine.log
2016-01-15 06:43:05.836 11301 ERROR heat.engine.stack [req-fd1fd187-1be5-489a-803b-8c08e491ebd4 - 4a28da719dc64deb9d1d5cfa770bbca2] Exception: (NotFound(),)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack Traceback (most recent call last):
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/heat/engine/stack.py", line 593, in validate
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack result = res.validate()
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/heat/engine/resources/openstack/nova/server.py", line 1254, in validate
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack limits = self.client_plugin().absolute_limits()
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/heat/engine/clients/os/nova.py", line 439, in absolute_limits
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack limits = self.client().limits.get()
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/v2/limits.py", line 100, in get
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack return self._get("/limits%s" % query_string, "limits")
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/base.py", line 147, in _get
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack _resp, body = self.api.client.get(url)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 440, in get
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack return self._cs_request(url, 'GET', **kwargs)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 427, in _cs_request
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack self.authenticate()
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 569, in authenticate
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack self._v2_auth(auth_url)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 634, in _v2_auth
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack return self._authenticate(url, body)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 647, in _authenticate
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack **kwargs)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 392, in _time_request
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack resp, body = self.request(url, method, **kwargs)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 386, in request
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack raise exceptions.from_response(resp, body, url, method)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack NotFound: The resource could not be found. (HTTP 404)
- 2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack
+ 2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack
2016-01-15 06:43:05.838 11301 INFO heat.engine.stack [req-fd1fd187-1be5-489a-803b-8c08e491ebd4 - 4a28da719dc64deb9d1d5cfa770bbca2] Failed to validate: The resource could not be found. (HTTP 404)
-
- It was caused by bad auth_url argument passed into novaclient - http://10.0.170.10:5000/v3/v2.0
+ It was caused by bad auth_url argument passed into novaclient -
+ http://10.0.170.10:5000/v3/v2.0
We modified /usr/lib/python2.7/dist-
packages/heat/engine/clients/os/nova.py to replace v3 to v2.0
- args = {
- 'project_id': self.context.tenant,
- 'auth_url': self.context.auth_url.replace('/v3','/v2.0'),
- 'service_type': 'compute',
- 'username': None,
- 'api_key': None,
- 'extensions': extensions,
- 'endpoint_type': endpoint_type,
- 'http_log_debug': self._get_client_option('nova',
- 'http_log_debug'),
- 'cacert': self._get_client_option('nova', 'ca_file'),
- 'insecure': self._get_client_option('nova', 'insecure')
- }
+ args = {
+ 'project_id': self.context.tenant,
+ 'auth_url': self.context.auth_url.replace('/v3','/v2.0'),
+ 'service_type': 'compute',
+ 'username': None,
+ 'api_key': None,
+ 'extensions': extensions,
+ 'endpoint_type': endpoint_type,
+ 'http_log_debug': self._get_client_option('nova',
+ 'http_log_debug'),
+ 'cacert': self._get_client_option('nova', 'ca_file'),
+ 'insecure': self._get_client_option('nova', 'insecure')
+ }
And then we got following error heat-engine.log
2016-01-15 14:36:05.464 8195 ERROR heat.engine.stack [req-b19963cf-81d3-482d-b31a-27d7b0862b89 - 4a28da719dc64deb9d1d5cfa770bbca2] Exception: (ClientException(),)
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack Traceback (most recent call last):
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/heat/engine/stack.py", line 593, in validate
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack result = res.validate()
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/heat/engine/resources/openstack/nova/server.py", line 1254, in validate
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack limits = self.client_plugin().absolute_limits()
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/heat/engine/clients/os/nova.py", line 439, in absolute_limits
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack limits = self.client().limits.get()
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/v2/limits.py", line 100, in get
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack return self._get("/limits%s" % query_string, "limits")
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/base.py", line 147, in _get
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack _resp, body = self.api.client.get(url)
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 439, in get
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack return self._cs_request(url, 'GET', **kwargs)
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 426, in _cs_request
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack self.authenticate()
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 561, in authenticate
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack auth_url = self._v1_auth(auth_url)
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 609, in _v1_auth
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack raise exceptions.from_response(resp, body, url)
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack ClientException: Unknown Error (HTTP 300)
-
- And then we have found that there is only auth_token and no username and password. It seems that python-novaclient cannot use v3 authentication token over v2.0.
+ And then we have found that there is only auth_token and no username and password. It seems that python-novaclient cannot use v3 authentication token over v2.0.
+ https://bugs.launchpad.net/python-novaclient/+bug/1522402
Has anybody tested heat autoscaling on latest Kilo update?
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to heat in Ubuntu.
https://bugs.launchpad.net/bugs/1534655
Title:
Autoscaling auth failure in OpenStack Kilo 2015.1.2
Status in heat:
New
Status in OpenStack Identity (keystone):
New
Status in heat package in Ubuntu:
Confirmed
Bug description:
We upgraded environment to OpenStack Kilo 2015.1.2 and then we cannot
use heat autoscaling feature anymore.
Keystone version 1:2015.1.2-0ubuntu2~cloud0
Heat version 2015.1.2-0ubuntu1~cloud0
- First we hit authentication failure on ec2tokens heat-api-cfn.log
2016-01-15 14:21:07.505 6590 INFO heat.api.aws.ec2token [-] Checking AWS credentials..
2016-01-15 14:21:07.507 6590 INFO heat.api.aws.ec2token [-] AWS credentials found, checking against keystone.
2016-01-15 14:21:07.509 6590 INFO heat.api.aws.ec2token [-] Authenticating with http://10.200.26.10:5000/ec2tokens
2016-01-15 14:21:07.533 6590 INFO heat.api.aws.ec2token [-] AWS authentication failure.
2016-01-15 14:21:07.535 6590 INFO eventlet.wsgi.server [-] 10.200.26.11 - - [15/Jan/2016 14:21:07] "POST /v1/signal/arn%3Aopenstack%3Aheat%3A%3A4a28da719dc64deb9d1d5cfa770bbca2%3Astacks%2Fheat_autoscale_cpu_vpc20%2F3a268b22-d436-4cf8-9088-8418702be09a%2Fresources%2Fserver_scaleup_policy?Timestamp=2016-01-15T13%3A14%3A22Z&SignatureMethod=HmacSHA256&AWSAccessKeyId=f042045aabc74728a49059a4c52226bf&SignatureVersion=2&Signature=GomCM13riX1UYu3OpJZ3ERXpfekHkmeACA4DznTL6g8%3D HTTP/1.1" 403 301 0.031258
We applied patch to keystone https://bugs.launchpad.net/openstack-
ansible/+bug/1515485
https://git.openstack.org/cgit/openstack/keystone/commit/?id=f66badae63b1544c3bcc83e0c1afc8e9cdc71bab
Then we hit error on python-novaclient auth boot during autoscaling
heat-engine.log
2016-01-15 06:43:05.836 11301 ERROR heat.engine.stack [req-fd1fd187-1be5-489a-803b-8c08e491ebd4 - 4a28da719dc64deb9d1d5cfa770bbca2] Exception: (NotFound(),)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack Traceback (most recent call last):
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/heat/engine/stack.py", line 593, in validate
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack result = res.validate()
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/heat/engine/resources/openstack/nova/server.py", line 1254, in validate
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack limits = self.client_plugin().absolute_limits()
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/heat/engine/clients/os/nova.py", line 439, in absolute_limits
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack limits = self.client().limits.get()
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/v2/limits.py", line 100, in get
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack return self._get("/limits%s" % query_string, "limits")
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/base.py", line 147, in _get
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack _resp, body = self.api.client.get(url)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 440, in get
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack return self._cs_request(url, 'GET', **kwargs)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 427, in _cs_request
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack self.authenticate()
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 569, in authenticate
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack self._v2_auth(auth_url)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 634, in _v2_auth
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack return self._authenticate(url, body)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 647, in _authenticate
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack **kwargs)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 392, in _time_request
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack resp, body = self.request(url, method, **kwargs)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 386, in request
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack raise exceptions.from_response(resp, body, url, method)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack NotFound: The resource could not be found. (HTTP 404)
2016-01-15 06:43:05.836 11301 TRACE heat.engine.stack
2016-01-15 06:43:05.838 11301 INFO heat.engine.stack [req-fd1fd187-1be5-489a-803b-8c08e491ebd4 - 4a28da719dc64deb9d1d5cfa770bbca2] Failed to validate: The resource could not be found. (HTTP 404)
It was caused by bad auth_url argument passed into novaclient -
http://10.0.170.10:5000/v3/v2.0
We modified /usr/lib/python2.7/dist-
packages/heat/engine/clients/os/nova.py to replace v3 to v2.0
args = {
'project_id': self.context.tenant,
'auth_url': self.context.auth_url.replace('/v3','/v2.0'),
'service_type': 'compute',
'username': None,
'api_key': None,
'extensions': extensions,
'endpoint_type': endpoint_type,
'http_log_debug': self._get_client_option('nova',
'http_log_debug'),
'cacert': self._get_client_option('nova', 'ca_file'),
'insecure': self._get_client_option('nova', 'insecure')
}
And then we got following error heat-engine.log
2016-01-15 14:36:05.464 8195 ERROR heat.engine.stack [req-b19963cf-81d3-482d-b31a-27d7b0862b89 - 4a28da719dc64deb9d1d5cfa770bbca2] Exception: (ClientException(),)
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack Traceback (most recent call last):
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/heat/engine/stack.py", line 593, in validate
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack result = res.validate()
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/heat/engine/resources/openstack/nova/server.py", line 1254, in validate
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack limits = self.client_plugin().absolute_limits()
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/heat/engine/clients/os/nova.py", line 439, in absolute_limits
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack limits = self.client().limits.get()
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/v2/limits.py", line 100, in get
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack return self._get("/limits%s" % query_string, "limits")
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/base.py", line 147, in _get
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack _resp, body = self.api.client.get(url)
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 439, in get
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack return self._cs_request(url, 'GET', **kwargs)
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 426, in _cs_request
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack self.authenticate()
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 561, in authenticate
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack auth_url = self._v1_auth(auth_url)
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 609, in _v1_auth
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack raise exceptions.from_response(resp, body, url)
2016-01-15 14:36:05.464 8195 TRACE heat.engine.stack ClientException: Unknown Error (HTTP 300)
And then we have found that there is only auth_token and no username and password. It seems that python-novaclient cannot use v3 authentication token over v2.0.
https://bugs.launchpad.net/python-novaclient/+bug/1522402
Has anybody tested heat autoscaling on latest Kilo update?
To manage notifications about this bug go to:
https://bugs.launchpad.net/heat/+bug/1534655/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list