summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorThierry Carrez <thierry@openstack.org>2012-02-07 16:37:34 +0100
committerThierry Carrez <thierry@openstack.org>2012-02-07 21:14:31 +0100
commit71410724cd1516608ee58c37077bf9080da38de2 (patch)
tree89d1b1c2930cef01565da8e5436ad8c2edb8a1bf /nova
parentae377f42e95b18438f4855c13230e077a870c64b (diff)
downloadnova-71410724cd1516608ee58c37077bf9080da38de2.tar.gz
nova-71410724cd1516608ee58c37077bf9080da38de2.tar.xz
nova-71410724cd1516608ee58c37077bf9080da38de2.zip
Remove ajaxterm from Nova
Removes copy of ajaxterm code, nova-ajax-console-proxy, and support for get_ajax_console from Nova proper. Implements blueprint remove-ajaxterm Fixes bug 917963 Change-Id: I2c0ff427c53c0f63a18b10475d6b4cbe9a085d83
Diffstat (limited to 'nova')
-rw-r--r--nova/compute/api.py13
-rw-r--r--nova/compute/manager.py9
-rw-r--r--nova/flags.py9
-rw-r--r--nova/tests/fake_libvirt_utils.py4
-rw-r--r--nova/tests/policy.json1
-rw-r--r--nova/tests/test_compute.py21
-rw-r--r--nova/tests/test_libvirt.py14
-rw-r--r--nova/tests/test_virt_drivers.py8
-rw-r--r--nova/tests/test_vmwareapi.py3
-rw-r--r--nova/virt/driver.py4
-rw-r--r--nova/virt/fake.py5
-rw-r--r--nova/virt/libvirt/connection.py26
-rw-r--r--nova/virt/libvirt/utils.py12
-rw-r--r--nova/virt/vmwareapi/vmops.py4
-rw-r--r--nova/virt/vmwareapi_conn.py4
-rw-r--r--nova/virt/xenapi/vmops.py5
-rw-r--r--nova/virt/xenapi_conn.py6
17 files changed, 1 insertions, 147 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py
index f54d184dd..2f4d3e200 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -1574,19 +1574,6 @@ class API(base.Base):
instance, params=params)
@wrap_check_policy
- def get_ajax_console(self, context, instance):
- """Get a url to an AJAX Console."""
- output = self._call_compute_message('get_ajax_console',
- context,
- instance)
- rpc.cast(context, '%s' % FLAGS.ajax_console_proxy_topic,
- {'method': 'authorize_ajax_console',
- 'args': {'token': output['token'], 'host': output['host'],
- 'port': output['port']}})
- return {'url': '%s/?token=%s' % (FLAGS.ajax_console_proxy_url,
- output['token'])}
-
- @wrap_check_policy
def get_vnc_console(self, context, instance, console_type):
"""Get a url to an instance Console."""
connect_info = self._call_compute_message('get_vnc_console',
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index e5600af32..c7cd1baaf 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -1553,15 +1553,6 @@ class ComputeManager(manager.SchedulerDependentManager):
@exception.wrap_exception(notifier=notifier, publisher_id=publisher_id())
@wrap_instance_fault
- def get_ajax_console(self, context, instance_uuid):
- """Return connection information for an ajax console."""
- context = context.elevated()
- LOG.debug(_("instance %s: getting ajax console"), instance_uuid)
- instance_ref = self.db.instance_get_by_uuid(context, instance_uuid)
- return self.driver.get_ajax_console(instance_ref)
-
- @exception.wrap_exception(notifier=notifier, publisher_id=publisher_id())
- @wrap_instance_fault
def get_vnc_console(self, context, instance_uuid, console_type):
"""Return connection information for a vnc console."""
context = context.elevated()
diff --git a/nova/flags.py b/nova/flags.py
index 3f3560057..a76a2328c 100644
--- a/nova/flags.py
+++ b/nova/flags.py
@@ -250,15 +250,6 @@ global_opts = [
cfg.StrOpt('network_topic',
default='network',
help='the topic network nodes listen on'),
- cfg.StrOpt('ajax_console_proxy_topic',
- default='ajax_proxy',
- help='the topic ajax proxy nodes listen on'),
- cfg.StrOpt('ajax_console_proxy_url',
- default='http://127.0.0.1:8000',
- help='URL of ajax console proxy, in the form http://host:port'),
- cfg.IntOpt('ajax_console_proxy_port',
- default=8000,
- help='port that ajax_console_proxy binds'),
cfg.StrOpt('vsa_topic',
default='vsa',
help='the topic that nova-vsa service listens on'),
diff --git a/nova/tests/fake_libvirt_utils.py b/nova/tests/fake_libvirt_utils.py
index 27b753a64..726e28a1d 100644
--- a/nova/tests/fake_libvirt_utils.py
+++ b/nova/tests/fake_libvirt_utils.py
@@ -93,10 +93,6 @@ def get_open_port(start_port, end_port):
return int((start_port + end_port) / 2)
-def run_ajaxterm(cmd, token, port):
- pass
-
-
def get_fs_info(path):
return {'total': 128 * (1024 ** 3),
'used': 44 * (1024 ** 3),
diff --git a/nova/tests/policy.json b/nova/tests/policy.json
index 4175d758e..99a97bba5 100644
--- a/nova/tests/policy.json
+++ b/nova/tests/policy.json
@@ -20,7 +20,6 @@
"compute:lock": [],
"compute:unlock": [],
- "compute:get_ajax_console": [],
"compute:get_vnc_console": [],
"compute:get_console_output": [],
diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py
index d99aed310..221f86fe7 100644
--- a/nova/tests/test_compute.py
+++ b/nova/tests/test_compute.py
@@ -724,16 +724,6 @@ class ComputeTestCase(BaseTestCase):
self.assertEqual(output, 'ANOTHER\nLAST LINE')
self.compute.terminate_instance(self.context, instance['uuid'])
- def test_ajax_console(self):
- """Make sure we can get console output from instance"""
- instance = self._create_fake_instance()
- self.compute.run_instance(self.context, instance['uuid'])
-
- console = self.compute.get_ajax_console(self.context,
- instance['uuid'])
- self.assert_(set(['token', 'host', 'port']).issubset(console.keys()))
- self.compute.terminate_instance(self.context, instance['uuid'])
-
def test_novnc_vnc_console(self):
"""Make sure we can a vnc console for an instance."""
instance = self._create_fake_instance()
@@ -2990,17 +2980,6 @@ class ComputeAPITestCase(BaseTestCase):
'novnc')
self.compute_api.delete(self.context, instance)
- def test_ajax_console(self):
- """Make sure we can an ajax console for an instance."""
- def ajax_rpc_call_wrapper(*args, **kwargs):
- return {'token': 'asdf', 'host': '0.0.0.0', 'port': 8080}
-
- self.stubs.Set(rpc, 'call', ajax_rpc_call_wrapper)
-
- instance = self._create_fake_instance()
- console = self.compute_api.get_ajax_console(self.context, instance)
- self.compute_api.delete(self.context, instance)
-
def test_console_output(self):
instance = self._create_fake_instance()
console = self.compute_api.get_console_output(self.context, instance)
diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py
index 72c9f8802..61d920ff1 100644
--- a/nova/tests/test_libvirt.py
+++ b/nova/tests/test_libvirt.py
@@ -1925,20 +1925,6 @@ disk size: 4.4M''', ''))
finally:
os.unlink(dst_path)
- def test_run_ajaxterm(self):
- self.mox.StubOutWithMock(utils, 'execute')
- token = 's3cr3tt0ken'
- shell_cmd = 'shell-cmd.py'
- port = 2048
- utils.execute(mox.IgnoreArg(),
- '--command', shell_cmd,
- '-t', token,
- '-p', port)
-
- # Start test
- self.mox.ReplayAll()
- libvirt_utils.run_ajaxterm(shell_cmd, token, port)
-
def test_get_fs_info(self):
# Use a 1024-byte block size (df -k) because OS X does not support
# the -B flag
diff --git a/nova/tests/test_virt_drivers.py b/nova/tests/test_virt_drivers.py
index 2cda7a61e..43dde697d 100644
--- a/nova/tests/test_virt_drivers.py
+++ b/nova/tests/test_virt_drivers.py
@@ -289,14 +289,6 @@ class _VirtDriverTestCase(test.TestCase):
self.assertTrue(isinstance(console_output, basestring))
@catch_notimplementederror
- def test_get_ajax_console(self):
- instance_ref, network_info = self._get_running_instance()
- ajax_console = self.connection.get_ajax_console(instance_ref)
- self.assertIn('token', ajax_console)
- self.assertIn('host', ajax_console)
- self.assertIn('port', ajax_console)
-
- @catch_notimplementederror
def test_get_vnc_console(self):
instance_ref, network_info = self._get_running_instance()
vnc_console = self.connection.get_vnc_console(instance_ref)
diff --git a/nova/tests/test_vmwareapi.py b/nova/tests/test_vmwareapi.py
index a1d0af440..bf8bcbe2f 100644
--- a/nova/tests/test_vmwareapi.py
+++ b/nova/tests/test_vmwareapi.py
@@ -259,6 +259,3 @@ class VMWareAPIVMTestCase(test.TestCase):
def test_get_console_output(self):
pass
-
- def test_get_ajax_console(self):
- pass
diff --git a/nova/virt/driver.py b/nova/virt/driver.py
index d87a7286a..34ce9613b 100644
--- a/nova/virt/driver.py
+++ b/nova/virt/driver.py
@@ -191,10 +191,6 @@ class ComputeDriver(object):
# TODO(Vek): Need to pass context in for access to auth_token
raise NotImplementedError()
- def get_ajax_console(self, instance):
- # TODO(Vek): Need to pass context in for access to auth_token
- raise NotImplementedError()
-
def get_vnc_console(self, instance):
# TODO(Vek): Need to pass context in for access to auth_token
raise NotImplementedError()
diff --git a/nova/virt/fake.py b/nova/virt/fake.py
index ff8da4724..ef3d392ba 100644
--- a/nova/virt/fake.py
+++ b/nova/virt/fake.py
@@ -219,11 +219,6 @@ class FakeConnection(driver.ComputeDriver):
def get_console_output(self, instance):
return 'FAKE CONSOLE OUTPUT\nANOTHER\nLAST LINE'
- def get_ajax_console(self, instance):
- return {'token': 'FAKETOKEN',
- 'host': 'fakeajaxconsole.com',
- 'port': 6969}
-
def get_vnc_console(self, instance):
return {'internal_access_path': 'FAKE',
'host': 'fakevncconsole.com',
diff --git a/nova/virt/libvirt/connection.py b/nova/virt/libvirt/connection.py
index 37ad07736..ac3d1fb41 100644
--- a/nova/virt/libvirt/connection.py
+++ b/nova/virt/libvirt/connection.py
@@ -102,9 +102,6 @@ libvirt_opts = [
cfg.BoolOpt('use_cow_images',
default=True,
help='Whether to use cow images'),
- cfg.StrOpt('ajaxterm_portrange',
- default='10000-12000',
- help='Range of ports that ajaxterm should try to bind'),
cfg.StrOpt('cpuinfo_xml_template',
default=utils.abspath('virt/cpuinfo.xml.template'),
help='CpuInfo XML Template (Used only live migration now)'),
@@ -777,29 +774,6 @@ class LibvirtConnection(driver.ComputeDriver):
return libvirt_utils.load_file(fpath)
- @exception.wrap_exception()
- def get_ajax_console(self, instance):
- def get_pty_for_instance(instance_name):
- virt_dom = self._lookup_by_name(instance_name)
- xml = virt_dom.XMLDesc(0)
- dom = minidom.parseString(xml)
-
- for serial in dom.getElementsByTagName('serial'):
- if serial.getAttribute('type') == 'pty':
- source = serial.getElementsByTagName('source')[0]
- return source.getAttribute('path')
-
- start_port, end_port = FLAGS.ajaxterm_portrange.split("-")
- port = libvirt_utils.get_open_port(int(start_port), int(end_port))
- token = str(uuid.uuid4())
- host = instance['host']
-
- ajaxterm_cmd = 'sudo netcat - %s' \
- % get_pty_for_instance(instance['name'])
-
- libvirt_utils.run_ajaxterm(ajaxterm_cmd, token, port)
- return {'token': token, 'host': host, 'port': port}
-
@staticmethod
def get_host_ip_addr():
return FLAGS.my_ip
diff --git a/nova/virt/libvirt/utils.py b/nova/virt/libvirt/utils.py
index f96128124..7b0e85f38 100644
--- a/nova/virt/libvirt/utils.py
+++ b/nova/virt/libvirt/utils.py
@@ -237,18 +237,6 @@ def get_open_port(start_port, end_port):
raise Exception(_('Unable to find an open port'))
-def run_ajaxterm(cmd, token, port):
- """Run ajaxterm
-
- :param cmd: Command to connect to
- :param token: Token to require for authentication
- :param port: Port to run on
- """
- cmd = ['%s/tools/ajaxterm/ajaxterm.py' % utils.novadir(),
- '--command', cmd, '-t', token, '-p', port]
- execute(*cmd)
-
-
def get_fs_info(path):
"""Get free/used/total space info for a filesystem
diff --git a/nova/virt/vmwareapi/vmops.py b/nova/virt/vmwareapi/vmops.py
index af867dc6a..39d24479f 100644
--- a/nova/virt/vmwareapi/vmops.py
+++ b/nova/virt/vmwareapi/vmops.py
@@ -719,10 +719,6 @@ class VMWareVMOps(object):
else:
return ""
- def get_ajax_console(self, instance):
- """Return link to instance's ajax console."""
- return 'http://fakeajaxconsole/fake_url'
-
def _set_machine_id(self, client_factory, instance, network_info):
"""
Set the machine id of the VM for guest tools to pick up and reconfigure
diff --git a/nova/virt/vmwareapi_conn.py b/nova/virt/vmwareapi_conn.py
index 909969fac..7275b363e 100644
--- a/nova/virt/vmwareapi_conn.py
+++ b/nova/virt/vmwareapi_conn.py
@@ -174,10 +174,6 @@ class VMWareESXConnection(driver.ComputeDriver):
"""Return snapshot of console."""
return self._vmops.get_console_output(instance)
- def get_ajax_console(self, instance):
- """Return link to instance's ajax console."""
- return self._vmops.get_ajax_console(instance)
-
def get_volume_connector(self, _instance):
"""Return volume connector information"""
# TODO(vish): When volume attaching is supported, return the
diff --git a/nova/virt/xenapi/vmops.py b/nova/virt/xenapi/vmops.py
index c2960b86a..30d77369b 100644
--- a/nova/virt/xenapi/vmops.py
+++ b/nova/virt/xenapi/vmops.py
@@ -1425,11 +1425,6 @@ class VMOps(object):
# TODO: implement this to fix pylint!
return 'FAKE CONSOLE OUTPUT of instance'
- def get_ajax_console(self, instance):
- """Return link to instance's ajax console."""
- # TODO: implement this!
- return 'http://fakeajaxconsole/fake_url'
-
def get_vnc_console(self, instance):
"""Return connection info for a vnc console."""
vm_ref = self._get_vm_opaque_ref(instance)
diff --git a/nova/virt/xenapi_conn.py b/nova/virt/xenapi_conn.py
index e034cb3ca..bbbc62df7 100644
--- a/nova/virt/xenapi_conn.py
+++ b/nova/virt/xenapi_conn.py
@@ -337,12 +337,8 @@ class XenAPIConnection(driver.ComputeDriver):
"""Return snapshot of console"""
return self._vmops.get_console_output(instance)
- def get_ajax_console(self, instance):
- """Return link to instance's ajax console"""
- return self._vmops.get_ajax_console(instance)
-
def get_vnc_console(self, instance):
- """Return link to instance's ajax console"""
+ """Return link to instance's VNC console"""
return self._vmops.get_vnc_console(instance)
def get_volume_connector(self, _instance):