summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorTodd Willey <todd@ansolabs.com>2011-01-19 15:29:35 -0500
committerTodd Willey <todd@ansolabs.com>2011-01-19 15:29:35 -0500
commita7165d76efe048acba68c607ed4a1f9ebb44a659 (patch)
tree3d42d4345fbf8b2d0078f9db0c50e28f0a934294 /bin
parentc58a8edb5c282f661d5be361ce68131516c741ba (diff)
parent1b6a78910aa959dd0a51502da7e8d1505e871ffd (diff)
Merge trunk.
Diffstat (limited to 'bin')
-rwxr-xr-xbin/nova-manage101
1 files changed, 19 insertions, 82 deletions
diff --git a/bin/nova-manage b/bin/nova-manage
index 1ad3120b8..d0901ddfc 100755
--- a/bin/nova-manage
+++ b/bin/nova-manage
@@ -62,7 +62,6 @@ import time
import IPy
-
# If ../nova/__init__.py exists, add ../ to Python search path, so that
# it will override what happens to be installed in /usr/(local/)lib/python...
possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
@@ -82,9 +81,9 @@ from nova import log as logging
from nova import quota
from nova import utils
from nova.auth import manager
-from nova import rpc
from nova.cloudpipe import pipelib
-from nova.api.ec2 import cloud
+from nova.db import migration
+
logging.basicConfig()
FLAGS = flags.FLAGS
@@ -467,82 +466,6 @@ class NetworkCommands(object):
int(vpn_start), fixed_range_v6)
-class InstanceCommands(object):
- """Class for mangaging VM instances."""
-
- def live_migration(self, ec2_id, dest):
- """live_migration"""
-
- ctxt = context.get_admin_context()
- instance_id = cloud.ec2_id_to_id(ec2_id)
-
- if FLAGS.connection_type != 'libvirt':
- msg = _('Only KVM is supported for now. Sorry!')
- raise exception.Error(msg)
-
- if FLAGS.volume_driver != 'nova.volume.driver.AOEDriver':
- instance_ref = db.instance_get(ctxt, instance_id)
- if len(instance_ref['volumes']) != 0:
- msg = _(("""Volumes attached by ISCSIDriver"""
- """ are not supported. Sorry!"""))
- raise exception.Error(msg)
-
- rpc.call(ctxt,
- FLAGS.scheduler_topic,
- {"method": "live_migration",
- "args": {"instance_id": instance_id,
- "dest": dest,
- "topic": FLAGS.compute_topic}})
-
- msg = 'Migration of %s initiated. ' % ec2_id
- msg += 'Check its progress using euca-describe-instances.'
- print msg
-
-
-class HostCommands(object):
- """Class for mangaging host(physical nodes)."""
-
- def list(self):
- """describe host list."""
-
- # To supress msg: No handlers could be found for logger "amqplib"
- logging.basicConfig()
-
- service_refs = db.service_get_all(context.get_admin_context())
- hosts = [h['host'] for h in service_refs]
- hosts = list(set(hosts))
- for host in hosts:
- print host
-
- def show(self, host):
- """describe cpu/memory/hdd info for host."""
-
- result = rpc.call(context.get_admin_context(),
- FLAGS.scheduler_topic,
- {"method": "show_host_resource",
- "args": {"host": host}})
-
- # Checking result msg format is necessary, that will have done
- # when this feture is included in API.
- if type(result) != dict:
- print 'Unexpected error occurs'
- elif not result['ret']:
- print '%s' % result['msg']
- else:
- cpu = result['phy_resource']['vcpus']
- mem = result['phy_resource']['memory_mb']
- hdd = result['phy_resource']['local_gb']
-
- print 'HOST\t\tPROJECT\t\tcpu\tmem(mb)\tdisk(gb)'
- print '%s\t\t\t%s\t%s\t%s' % (host, cpu, mem, hdd)
- for p_id, val in result['usage'].items():
- print '%s\t%s\t\t%s\t%s\t%s' % (host,
- p_id,
- val['vcpus'],
- val['memory_mb'],
- val['local_gb'])
-
-
class ServiceCommands(object):
"""Enable and disable running services"""
@@ -597,6 +520,21 @@ class LogCommands(object):
print re.sub('#012', "\n", "\n".join(lines))
+class DbCommands(object):
+ """Class for managing the database."""
+
+ def __init__(self):
+ pass
+
+ def sync(self, version=None):
+ """Sync the database up to the most recent version."""
+ return migration.db_sync(version)
+
+ def version(self):
+ """Print the current database version."""
+ print migration.db_version()
+
+
CATEGORIES = [
('user', UserCommands),
('project', ProjectCommands),
@@ -605,10 +543,9 @@ CATEGORIES = [
('vpn', VpnCommands),
('floating', FloatingIpCommands),
('network', NetworkCommands),
- ('instance', InstanceCommands),
- ('host', HostCommands),
('service', ServiceCommands),
- ('log', LogCommands)]
+ ('log', LogCommands),
+ ('db', DbCommands)]
def lazy_match(name, key_value_tuples):