summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Waldon <brian.waldon@rackspace.com>2011-11-10 16:55:32 -0500
committerBrian Waldon <brian.waldon@rackspace.com>2011-11-11 16:34:25 -0500
commitbf7b89d577a9fbe8d25c3db2deae926d852d8bcc (patch)
tree609f6683d275890edd8e7dba69da4a8af9de03c0
parent615c4df3201fce7ae95c1b50bcec7f212cfc2aa6 (diff)
downloadnova-bf7b89d577a9fbe8d25c3db2deae926d852d8bcc.tar.gz
nova-bf7b89d577a9fbe8d25c3db2deae926d852d8bcc.tar.xz
nova-bf7b89d577a9fbe8d25c3db2deae926d852d8bcc.zip
Converting inject_file to use instance objects
Related to blueprint internal-uuids. This function also appeared to be incomplete. It should actually work now. Change-Id: I77ccd29c7ac5e0cbe60d52a4ff5a64ecdff6fa1a
-rw-r--r--nova/compute/api.py8
-rw-r--r--nova/tests/test_compute.py8
2 files changed, 14 insertions, 2 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 060dcd799..ab81dfbd7 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -1455,9 +1455,13 @@ class API(base.Base):
{"method": "set_admin_password",
"args": {"instance_id": instance_id, "new_pass": password}})
- def inject_file(self, context, instance_id):
+ @scheduler_api.reroute_compute("inject_file")
+ def inject_file(self, context, instance, path, file_contents):
"""Write a file to the given instance."""
- self._cast_compute_message('inject_file', context, instance_id)
+ instance_id = instance['id']
+ params = {'path': path, 'file_contents': file_contents}
+ self._cast_compute_message('inject_file', context,
+ instance_id, params=params)
def get_ajax_console(self, context, instance_id):
"""Get a url to an AJAX Console."""
diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py
index bf3c1ea59..f99927909 100644
--- a/nova/tests/test_compute.py
+++ b/nova/tests/test_compute.py
@@ -1882,3 +1882,11 @@ class ComputeAPITestCase(BaseTestCase):
self.compute_api.add_fixed_ip(self.context, instance, '1')
self.compute_api.remove_fixed_ip(self.context, instance, '192.168.1.1')
self.compute_api.delete(self.context, instance)
+
+ def test_inject_file(self):
+ """Ensure we can write a file to an instance"""
+ instance_id = self._create_instance()
+ instance = self.compute_api.get(self.context, instance_id)
+ self.compute_api.inject_file(self.context, instance,
+ "/tmp/test", "File Contents")
+ db.instance_destroy(self.context, instance_id)