I tried the following patch to fix the obvious bugs, but it still doesn't work. Seems like this feature is not working, or am I missing something?
The patch: -------------------------------
midokura@midokura-iMac:/opt/stack/nova$ git diff diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py index 5a3b952..7a18595 100644 --- a/nova/api/ec2/cloud.py +++ b/nova/api/ec2/cloud.py @@ -1533,7 +1533,7 @@ class CloudController(object):
if vm_state in (vm_states.ACTIVE, vm_states.SHUTOFF): restart_instance = True - self.compute_api.stop(context, instance_id=instance_id) + self.compute_api.stop(context, instance)
# wait instance for really stopped start_time = time.time() @@ -1549,7 +1549,15 @@ class CloudController(object): raise exception.ApiError( _('Couldn\'t stop instance with in %d sec') % timeout)
- src_image = self._get_image(context, instance['image_ref']) + image_uuid = instance['image_ref'] + image_id = self._get_image_id(context, image_uuid) + ec2_image_id = ec2utils.image_ec2_id(image_id) + + print ' image_ref ----------> ', instance['image_ref'] + print ' ec2_image_id -------> ', ec2_image_id + + src_image = self._get_image(context, ec2_image_id) + print' src_image ', src_image properties = src_image['properties'] if instance['root_device_name']: properties['root_device_name'] = instance['root_device_name'] ---------------------
Another Error: --------------------- 2012-01-30 09:53:55,982 DEBUG keystone.middleware.auth_token [-] Sending request to next app in WSGI pipeline from (pid=23018) debug /opt/stack/nova/nova/log.py:175 2012-01-30 09:53:55,983 DEBUG nova.api [req-ad27ede4-b92b-4ca4-8c6e-5349fee5cd0f 5e653de2fb5d4b508012406df77ec445 03c6ffa2bee74bca9bec99e82d872673] action: CreateImage from (pid=23018) debug /opt/stack/nova/nova/log.py:175 2012-01-30 09:53:55,983 DEBUG nova.api [req-ad27ede4-b92b-4ca4-8c6e-5349fee5cd0f 5e653de2fb5d4b508012406df77ec445 03c6ffa2bee74bca9bec99e82d872673] arg: Name val: created-image from (pid=23018) debug /opt/stack/nova/nova/log.py:175 2012-01-30 09:53:55,983 DEBUG nova.api [req-ad27ede4-b92b-4ca4-8c6e-5349fee5cd0f 5e653de2fb5d4b508012406df77ec445 03c6ffa2bee74bca9bec99e82d872673] arg: InstanceId val: i-00000001 from (pid=23018) debug /opt/stack/nova/nova/log.py:175 2012-01-30 09:53:56,020 DEBUG nova.compute.api [req-ad27ede4-b92b-4ca4-8c6e-5349fee5cd0f 5e653de2fb5d4b508012406df77ec445 03c6ffa2bee74bca9bec99e82d872673] Going to try to stop 5e32efbc-77ad-4108-a237-e5cf9f5a0ae7 from (pid=23018) debug /opt/stack/nova/nova/log.py:175 2012-01-30 09:53:56,101 DEBUG nova.rpc [req-ad27ede4-b92b-4ca4-8c6e-5349fee5cd0f 5e653de2fb5d4b508012406df77ec445 03c6ffa2bee74bca9bec99e82d872673] Making asynchronous cast on compute.midokura-iMac... from (pid=23018) debug /opt/stack/nova/nova/log.py:175 2012-01-30 09:53:56,101 DEBUG nova.rpc [req-ad27ede4-b92b-4ca4-8c6e-5349fee5cd0f 5e653de2fb5d4b508012406df77ec445 03c6ffa2bee74bca9bec99e82d872673] Pool creating new connection from (pid=23018) debug /opt/stack/nova/nova/log.py:175 2012-01-30 09:53:56,107 INFO nova.rpc [req-ad27ede4-b92b-4ca4-8c6e-5349fee5cd0f 5e653de2fb5d4b508012406df77ec445 03c6ffa2bee74bca9bec99e82d872673] Connected to AMQP server on localhost:5672 image_ref ----------> 871e53a5-be19-4084-acad-4f53dc47fae0 ec2_image_id -------> ami-00000003 src_image {'status': 'active', 'name': 'cirros-0.3.0-x86_64-blank', 'deleted': False, 'container_format': 'ami', 'created_at': datetime.datetime(2012, 1, 30, 0, 24, 15), 'disk_format': 'ami', 'updated_at': datetime.datetime(2012, 1, 30, 0, 24, 15), 'properties': {'kernel_id': 2L, 'ramdisk_id': 1L}, 'min_ram': '0', 'checksum': '2f81976cae15c16ef0010c51e3a6c163', 'min_disk': '0', 'is_public': True, 'deleted_at': None, 'id': 3L, 'size': 25165824} 2012-01-30 09:53:59,323 ERROR nova.api [req-ad27ede4-b92b-4ca4-8c6e-5349fee5cd0f 5e653de2fb5d4b508012406df77ec445 03c6ffa2bee74bca9bec99e82d872673] Unexpected error raised: 'image_location' (nova.api): TRACE: Traceback (most recent call last): (nova.api): TRACE: File "/opt/stack/nova/nova/api/ec2/__init__.py", line 460, in __call__ (nova.api): TRACE: result = api_request.invoke(context) (nova.api): TRACE: File "/opt/stack/nova/nova/api/ec2/apirequest.py", line 90, in invoke (nova.api): TRACE: result = method(context, **args) (nova.api): TRACE: File "/opt/stack/nova/nova/api/ec2/cloud.py", line 1617, in create_image (nova.api): TRACE: image_id = self._register_image(context, src_image) (nova.api): TRACE: File "/opt/stack/nova/nova/api/ec2/cloud.py", line 1422, in _register_image (nova.api): TRACE: image = self.image_service.create(context, metadata) (nova.api): TRACE: File "/opt/stack/nova/nova/image/s3.py", line 105, in create (nova.api): TRACE: image = self._s3_create(context, metadata) (nova.api): TRACE: File "/opt/stack/nova/nova/image/s3.py", line 256, in _s3_create (nova.api): TRACE: image_location = metadata['properties']['image_location'] (nova.api): TRACE: KeyError: 'image_location' (nova.api): TRACE: 2012-01-30 09:53:59,324 ERROR nova.api [req-ad27ede4-b92b-4ca4-8c6e-5349fee5cd0f 5e653de2fb5d4b508012406df77ec445 03c6ffa2bee74bca9bec99e82d872673] Environment: {"HTTP_AUTHORIZATION": "Basic None", "SCRIPT_NAME": "/services/Cloud", "REQUEST_METHOD": "POST", "PATH_INFO": "/", "SERVER_PROTOCOL": "HTTP/1.0", "HTTP_X_IDENTITY_STATUS": "Confirmed", "HTTP_USER_AGENT": "Boto/2.0 (linux2)", "SERVER_NAME": "192.168.1.138", "REMOTE_ADDR": "192.168.1.138", "wsgi.url_scheme": "http", "SERVER_PORT": "8773", "CONTENT_TYPE": "application/x-www-form-urlencoded; charset=UTF-8", "HTTP_HOST": "192.168.1.138:8773", "GATEWAY_INTERFACE": "CGI/1.1", "HTTP_ACCEPT_ENCODING": "identity"} 2012-01-30 09:53:59,324 ERROR nova.api [req-ad27ede4-b92b-4ca4-8c6e-5349fee5cd0f 5e653de2fb5d4b508012406df77ec445 03c6ffa2bee74bca9bec99e82d872673] UnknownError: An unknown error has occurred. Please try your request again. 2012-01-30 09:53:59,325 INFO nova.api [req-ad27ede4-b92b-4ca4-8c6e-5349fee5cd0f 5e653de2fb5d4b508012406df77ec445 03c6ffa2bee74bca9bec99e82d872673] 3.448191s 192.168.1.138 POST /services/Cloud/ CloudController:CreateImage 400 [Boto/2.0 (linux2)] application/x-www-form-urlencoded text/xml ------------------------------------------------------------------------
I'd be happy to help debugging the issue.
I tried the following patch to fix the obvious bugs, but it still doesn't work.
Seems like this feature is not working, or am I missing something?
The patch: ------- ------- ------- ---
-------
midokura@ midokura- iMac:/opt/ stack/nova$ git diff api/ec2/ cloud.py b/nova/ api/ec2/ cloud.py api/ec2/ cloud.py api/ec2/ cloud.py (object) :
diff --git a/nova/
index 5a3b952..7a18595 100644
--- a/nova/
+++ b/nova/
@@ -1533,7 +1533,7 @@ class CloudController
if vm_state in (vm_states.ACTIVE, vm_states.SHUTOFF):
restart_ instance = True api.stop( context, instance_ id=instance_ id) api.stop( context, instance)
- self.compute_
+ self.compute_
# wait instance for really stopped
start_ time = time.time() (object) :
raise exception.ApiError(
_(' Couldn\ 't stop instance with in %d sec') % timeout)
@@ -1549,7 +1549,15 @@ class CloudController
- src_image = self._get_ image(context, instance[ 'image_ ref']) 'image_ ref'] image_id( context, image_uuid) image_ec2_ id(image_ id) 'image_ ref'] image(context, ec2_image_id) 'properties' ] 'root_device_ name']:
propertie s['root_ device_ name'] = instance[ 'root_device_ name'] ------- -------
+ image_uuid = instance[
+ image_id = self._get_
+ ec2_image_id = ec2utils.
+
+ print ' image_ref ----------> ', instance[
+ print ' ec2_image_id -------> ', ec2_image_id
+
+ src_image = self._get_
+ print' src_image ', src_image
properties = src_image[
if instance[
-------
Another Error: ------- ------- middleware. auth_token [-] Sending request to next app in WSGI pipeline from (pid=23018) debug /opt/stack/ nova/nova/ log.py: 175 b92b-4ca4- 8c6e-5349fee5cd 0f 5e653de2fb5d4b5 08012406df77ec4 45 03c6ffa2bee74bc a9bec99e82d8726 73] action: CreateImage from (pid=23018) debug /opt/stack/ nova/nova/ log.py: 175 b92b-4ca4- 8c6e-5349fee5cd 0f 5e653de2fb5d4b5 08012406df77ec4 45 03c6ffa2bee74bc a9bec99e82d8726 73] arg: Name val: created-image from (pid=23018) debug /opt/stack/ nova/nova/ log.py: 175 b92b-4ca4- 8c6e-5349fee5cd 0f 5e653de2fb5d4b5 08012406df77ec4 45 03c6ffa2bee74bc a9bec99e82d8726 73] arg: InstanceId val: i-00000001 from (pid=23018) debug /opt/stack/ nova/nova/ log.py: 175 b92b-4ca4- 8c6e-5349fee5cd 0f 5e653de2fb5d4b5 08012406df77ec4 45 03c6ffa2bee74bc a9bec99e82d8726 73] Going to try to stop 5e32efbc- 77ad-4108- a237-e5cf9f5a0a e7 from (pid=23018) debug /opt/stack/ nova/nova/ log.py: 175 b92b-4ca4- 8c6e-5349fee5cd 0f 5e653de2fb5d4b5 08012406df77ec4 45 03c6ffa2bee74bc a9bec99e82d8726 73] Making asynchronous cast on compute. midokura- iMac... from (pid=23018) debug /opt/stack/ nova/nova/ log.py: 175 b92b-4ca4- 8c6e-5349fee5cd 0f 5e653de2fb5d4b5 08012406df77ec4 45 03c6ffa2bee74bc a9bec99e82d8726 73] Pool creating new connection from (pid=23018) debug /opt/stack/ nova/nova/ log.py: 175 b92b-4ca4- 8c6e-5349fee5cd 0f 5e653de2fb5d4b5 08012406df77ec4 45 03c6ffa2bee74bc a9bec99e82d8726 73] Connected to AMQP server on localhost:5672 be19-4084- acad-4f53dc47fa e0 0.3.0-x86_ 64-blank' , 'deleted': False, 'container_format': 'ami', 'created_at': datetime. datetime( 2012, 1, 30, 0, 24, 15), 'disk_format': 'ami', 'updated_at': datetime. datetime( 2012, 1, 30, 0, 24, 15), 'properties': {'kernel_id': 2L, 'ramdisk_id': 1L}, 'min_ram': '0', 'checksum': '2f81976cae15c1 6ef0010c51e3a6c 163', 'min_disk': '0', 'is_public': True, 'deleted_at': None, 'id': 3L, 'size': 25165824} b92b-4ca4- 8c6e-5349fee5cd 0f 5e653de2fb5d4b5 08012406df77ec4 45 03c6ffa2bee74bc a9bec99e82d8726 73] Unexpected error raised: 'image_location' nova/nova/ api/ec2/ __init_ _.py", line 460, in __call__ invoke( context) nova/nova/ api/ec2/ apirequest. py", line 90, in invoke nova/nova/ api/ec2/ cloud.py" , line 1617, in create_image image(context, src_image) nova/nova/ api/ec2/ cloud.py" , line 1422, in _register_image service. create( context, metadata) nova/nova/ image/s3. py", line 105, in create create( context, metadata) nova/nova/ image/s3. py", line 256, in _s3_create 'properties' ]['image_ location' ] b92b-4ca4- 8c6e-5349fee5cd 0f 5e653de2fb5d4b5 08012406df77ec4 45 03c6ffa2bee74bc a9bec99e82d8726 73] Environment: {"HTTP_ AUTHORIZATION" : "Basic None", "SCRIPT_NAME": "/services/Cloud", "REQUEST_METHOD": "POST", "PATH_INFO": "/", "SERVER_PROTOCOL": "HTTP/1.0", "HTTP_X_ IDENTITY_ STATUS" : "Confirmed", "HTTP_USER_AGENT": "Boto/2.0 (linux2)", "SERVER_NAME": "192.168.1.138", "REMOTE_ADDR": "192.168.1.138", "wsgi.url_scheme": "http", "SERVER_PORT": "8773", "CONTENT_TYPE": "application/ x-www-form- urlencoded; charset=UTF-8", "HTTP_HOST": "192.168. 1.138:8773" , "GATEWAY_ INTERFACE" : "CGI/1.1", "HTTP_ACCEPT_ ENCODING" : "identity"} b92b-4ca4- 8c6e-5349fee5cd 0f 5e653de2fb5d4b5 08012406df77ec4 45 03c6ffa2bee74bc a9bec99e82d8726 73] UnknownError: An unknown error has occurred. Please try your request again. b92b-4ca4- 8c6e-5349fee5cd 0f 5e653de2fb5d4b5 08012406df77ec4 45 03c6ffa2bee74bc a9bec99e82d8726 73] 3.448191s 192.168.1.138 POST /services/Cloud/ CloudController :CreateImage 400 [Boto/2.0 (linux2)] application/ x-www-form- urlencoded text/xml ------- ------- ------- ------- ------- ------- ------- ------- ------- --
-------
2012-01-30 09:53:55,982 DEBUG keystone.
2012-01-30 09:53:55,983 DEBUG nova.api [req-ad27ede4-
2012-01-30 09:53:55,983 DEBUG nova.api [req-ad27ede4-
2012-01-30 09:53:55,983 DEBUG nova.api [req-ad27ede4-
2012-01-30 09:53:56,020 DEBUG nova.compute.api [req-ad27ede4-
2012-01-30 09:53:56,101 DEBUG nova.rpc [req-ad27ede4-
2012-01-30 09:53:56,101 DEBUG nova.rpc [req-ad27ede4-
2012-01-30 09:53:56,107 INFO nova.rpc [req-ad27ede4-
image_ref ----------> 871e53a5-
ec2_image_id -------> ami-00000003
src_image {'status': 'active', 'name': 'cirros-
2012-01-30 09:53:59,323 ERROR nova.api [req-ad27ede4-
(nova.api): TRACE: Traceback (most recent call last):
(nova.api): TRACE: File "/opt/stack/
(nova.api): TRACE: result = api_request.
(nova.api): TRACE: File "/opt/stack/
(nova.api): TRACE: result = method(context, **args)
(nova.api): TRACE: File "/opt/stack/
(nova.api): TRACE: image_id = self._register_
(nova.api): TRACE: File "/opt/stack/
(nova.api): TRACE: image = self.image_
(nova.api): TRACE: File "/opt/stack/
(nova.api): TRACE: image = self._s3_
(nova.api): TRACE: File "/opt/stack/
(nova.api): TRACE: image_location = metadata[
(nova.api): TRACE: KeyError: 'image_location'
(nova.api): TRACE:
2012-01-30 09:53:59,324 ERROR nova.api [req-ad27ede4-
2012-01-30 09:53:59,324 ERROR nova.api [req-ad27ede4-
2012-01-30 09:53:59,325 INFO nova.api [req-ad27ede4-
-------
I'd be happy to help debugging the issue.