Hi Brian,
Thanks for review!
I think I fixed based on all of your comments.
(branch will update soon)
Also, regarding to the point 3 below,
> 3. We can use the "arch" sub-field below for our project. Can we talk about adding
> accelerator_info (for GPUs, FPGAs, or other co-procesors) and possibly network_info
> for details on the physical network interface?
We use cpu_info column to store an argument of compareCPU() in virConnect.
You can get examples following by the below procedure.
# python
# import libvirt
# conn = libvirt.openReadOnly()
# conn.getCapabilities()
Once you follow above, you get xml. We cut and store ... to db.
I think some other result will be shown in your hardware environment.
Then FPGA/GPU info is also included, I suppose.
If libvirt don’t find any FPGA/GPU info, then please let me know.
I have to give it much thought..
-----Original Message-----
From: [mailto:] On Behalf Of Brian Schott
Sent: Saturday, February 19, 2011 5:02 AM
To:
Subject: Re: [Merge] lp:~nttdata/nova/live-migration into lp:nova
Review: Needs Fixing
We're very interested in this capability, so looking forward to it. Few comments.
1. Current branch conflicts with lp:nova trunk.
+N nova/db/sqlalchemy/migrate_repo/versions/003_add_label_to_networks.py
+N nova/db/sqlalchemy/migrate_repo/versions/004_add_zone_tables.py
fix: bschott@island100:~/source/nova/live-migration/nova/db/sqlalchemy/migrate_repo/versions$ bzr rename 003_cactus.py 005_add_instance_migration.py
2. Should these be in their own table? That is a lot of fields to add to the Service table directly, since this is a table that has entries for every service type. I was thinking about adding a ComputeService (compute_services) table for our heterogeneous compute cluster.
627 + # The below items are compute node only.
628 + # None is inserted for other service.
629 + vcpus = Column(Integer, nullable=True)
630 + memory_mb = Column(Integer, nullable=True)
631 + local_gb = Column(Integer, nullable=True)
632 + vcpus_used = Column(Integer, nullable=True)
633 + memory_mb_used = Column(Integer, nullable=True)
634 + local_gb_used = Column(Integer, nullable=True)
635 + hypervisor_type = Column(Text, nullable=True)
636 + hypervisor_version = Column(Integer, nullable=True)
3. We can use the "arch" sub-field below for our project. Can we talk about adding accelerator_info (for GPUs, FPGAs, or other co-procesors) and possibly network_info for details on the physical network interface?
# Note(masumotok): Expected Strings example:
#
# '{"arch":"x86_64", "model":"Nehalem",
# "topology":{"sockets":1, "threads":2, "cores":3},
# features:[ "tdtscp", "xtpr"]}'
#
# Points are "json translatable" and it must have all
# dictionary keys above.
cpu_info = Column(Text, nullable=True)
bschott@island100:~/source/nova/live-migration$ bzr merge lp:nova
+N nova/api/openstack/zones.py
+N nova/db/sqlalchemy/migrate_repo/versions/003_add_label_to_networks.py
+N nova/db/sqlalchemy/migrate_repo/versions/004_add_zone_tables.py
+N nova/tests/api/openstack/test_common.py
+N nova/tests/api/openstack/test_zones.py
M .mailmap
M Authors
M HACKING
M MANIFEST.in
M bin/nova-manage
M locale/nova.pot
M nova/api/ec2/cloud.py
M nova/api/openstack/__init__.py
M nova/api/openstack/auth.py
M nova/api/openstack/common.py
M nova/api/openstack/servers.py
M nova/auth/ldapdriver.py
M nova/auth/novarc.template
M nova/compute/api.py
M nova/compute/manager.py
M nova/compute/power_state.py
M nova/context.py
M nova/db/api.py
M nova/db/sqlalchemy/api.py
M nova/db/sqlalchemy/migrate_repo/versions/001_austin.py
M nova/db/sqlalchemy/migrate_repo/versions/002_bexar.py
M nova/db/sqlalchemy/migration.py
M nova/db/sqlalchemy/models.py
M nova/flags.py
M nova/log.py
M nova/network/linux_net.py
M nova/network/manager.py
M nova/rpc.py
M nova/tests/api/openstack/__init__.py
M nova/tests/api/openstack/test_servers.py
M nova/tests/test_api.py
M nova/tests/test_compute.py
M nova/tests/test_log.py
M nova/tests/test_xenapi.py
M nova/twistd.py
M nova/utils.py
M nova/virt/fake.py
M nova/virt/xenapi/fake.py
M nova/virt/xenapi/vm_utils.py
M nova/virt/xenapi/vmops.py
M nova/virt/xenapi_conn.py
M nova/volume/manager.py
M plugins/xenserver/xenapi/etc/xapi.d/plugins/agent
M plugins/xenserver/xenapi/etc/xapi.d/plugins/glance
M plugins/xenserver/xenapi/etc/xapi.d/plugins/objectstore
M plugins/xenserver/xenapi/etc/xapi.d/plugins/xenstore.py
M setup.py
All changes applied successfully.
bschott@island100:~/source/nova/live-migration$ ./run_tests.sh
ERROR
======================================================================
ERROR:
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/bschott/source/nova/live-migration/.nova-venv/lib/python2.6/site-packages/nose/suite.py", line 208, in run
self.setUp()
File "/home/bschott/source/nova/live-migration/.nova-venv/lib/python2.6/site-packages/nose/suite.py", line 291, in setUp
self.setupContext(ancestor)
File "/home/bschott/source/nova/live-migration/.nova-venv/lib/python2.6/site-packages/nose/suite.py", line 314, in setupContext
try_run(context, names)
File "/home/bschott/source/nova/live-migration/.nova-venv/lib/python2.6/site-packages/nose/util.py", line 478, in try_run
return func()
File "/home/bschott/source/nova/live-migration/nova/tests/__init__.py", line 41, in setup
migration.db_sync()
File "/home/bschott/source/nova/live-migration/nova/db/migration.py", line 33, in db_sync
return IMPL.db_sync(version=version)
File "/home/bschott/source/nova/live-migration/nova/db/sqlalchemy/migration.py", line 41, in db_sync
db_version()
File "/home/bschott/source/nova/live-migration/nova/db/sqlalchemy/migration.py", line 49, in db_version
return versioning_api.db_version(FLAGS.sql_connection, repo_path)
File "", line 2, in db_version
File "/home/bschott/source/nova/live-migration/.nova-venv/lib/python2.6/site-packages/migrate/versioning/util/__init__.py", line 159, in with_engine
return f(*a, **kw)
File "/home/bschott/source/nova/live-migration/.nova-venv/lib/python2.6/site-packages/migrate/versioning/api.py", line 148, in db_version
schema = ControlledSchema(engine, repository)
File "/home/bschott/source/nova/live-migration/.nova-venv/lib/python2.6/site-packages/migrate/versioning/schema.py", line 27, in __init__
repository = Repository(repository)
File "/home/bschott/source/nova/live-migration/.nova-venv/lib/python2.6/site-packages/migrate/versioning/repository.py", line 81, in __init__
self._versions))
File "/home/bschott/source/nova/live-migration/.nova-venv/lib/python2.6/site-packages/migrate/versioning/version.py", line 84, in __init__
self.versions[VerNum(num)] = Version(num, path, files)
File "/home/bschott/source/nova/live-migration/.nova-venv/lib/python2.6/site-packages/migrate/versioning/version.py", line 154, in __init__
self.add_script(os.path.join(path, script))
File "/home/bschott/source/nova/live-migration/.nova-venv/lib/python2.6/site-packages/migrate/versioning/version.py", line 175, in add_script
self._add_script_py(path)
File "/home/bschott/source/nova/live-migration/.nova-venv/lib/python2.6/site-packages/migrate/versioning/version.py", line 198, in _add_script_py
'per version, but you have: %s and %s' % (self.python, path))
ScriptError: You can only have one Python script per version, but you have: /home/bschott/source/nova/live-migration/nova/db/sqlalchemy/migrate_repo/versions/003_cactus.py and /home/bschott/source/nova/live-migration/nova/db/sqlalchemy/migrate_repo/versions/003_add_label_to_networks.py
--
https://code.launchpad.net/~nttdata/nova/live-migration/+merge/49699
Your team NTT DATA is subscribed to branch lp:~nttdata/nova/live-migration.