Difference between revisions of "NovaManageDBAnalysis"
(API for flavor extra specs does exist after all, just not documented) |
|||
Line 50: | Line 50: | ||
|- | |- | ||
| set_key | | set_key | ||
− | |rowspan="2" | | + | |rowspan="2" |API exists in flavorextraspecs.py but not documented at api.openstack.org |
|rowspan="2" |Need to add support to nova client | |rowspan="2" |Need to add support to nova client | ||
|- | |- |
Revision as of 09:53, 24 October 2012
nova-manage DB analysis
Analysis of the direct database usage by nova-manage. A place to keep information about where nova-manage is directly manipulating the database and extra Nova APIs that we will need in order in order to stop doing this. The blueprint for this work is here https://blueprints.launchpad.net/nova/+spec/apis-for-nova-manage
Changes needed by nova-manage command
Command | Subcommand | REST API | nova CLI |
account/project | quota | Quota Sets extension implements required functionality | Already supported |
scrub | Network and Security extensions have required support | Need to get list of networks for a tenant, disassociate them and then destroy the security groups. The nova command currently allows people to do the secgroup changes but not the network changes | |
agent | create | No support | No support |
db | sync | No support | No support |
fixed | list | Need Fixed IP extension | No nova support |
flavor/instance_type | create | Can be implemented using core Nova API and Flavor management extension | Already implemented in nova client |
set_key | API exists in flavorextraspecs.py but not documented at api.openstack.org | Need to add support to nova client | |
floating | create | Need to add REST API for bulk creation of floating ips and to list | Need to add support to nova client |
host | list | Host extensions API can list physical hosts, but does not show availability zones | Exists in nova client (without availability zone display) |
logs | No API required. No DB access | ||
network | create | Network API extension exists but needs extra options for creation (cf. API vs ""nova-manage network create"" options) | Need nova client support |
list | Network API extension exists but needs to return more information (eg DNS2, vlan) | Need nova client support | |
delete | Supported by Network API | Need nova client support | |
modify | Can add network to project using Network API but need support to add network to host. Similarly for disassociate. | Need nova client support | |
service | list | No REST API exist for list/enable/disable/describe nova services | Need nova client support |
shell | No API support required. No db access | ||
sm | flavor_list | Need a storage manager extension API | Need nova client support |
version | No API support required. No db access | ||
vm | list | Core API support | Support already in nova client |
volume | reattach | Volume extension API does not have reattach, but does have attach | |
vpn | change | Need to add to cloudpipe API to change ip and port for vpn | Need nova interface |
Nova REST API additions/modifications
Direct/Indirect DB calls by nova-manage command
Command | Subcommand | DB calls |
account/project | quota | db.quota_update, db.quota_create, get_project_quotas |
scrub | db.project_get_networks, db.network_disassociate | |
agent | create | db.agent_build_create |
delete | db.agent_build_get_by_triple, db.agent_build_destroy | |
list | db.agent_build_get_all | |
modify | db.agent_build_get_by_triple, db.agent_build_update | |
db | sync | migration.db_sync |
version | migration.db_version | |
fixed | list | db.fixed_ip_get_all db.fixed_ip_get_all_by_instance_host db.instance_get_all |
reserve/unreserve/_set_reserved | db.fixed_ip_get_by_address db.fixed_ip_update | |
flavor / instance_type | create | instance_types.create |
delete | instance_types.destroy | |
list | instance_types.get_all_types instance_types.get_instance_type_by_name | |
set_key | instance_types.get_instance_type_by_name db.instance_type_extra_specs_update_or_create | |
unset_key | instance_types.get_instance_type_by_name db.instance_type_extra_specs_delete | |
floating | create | db.floating_ip_bulk_create |
delete | ||
list | db.floating_ip_get_all db.floating_ip_get_all_by_host | |
host | ||
list | db.service_get_all | |
logs | ||
network | create | netmanager.create_networks |
list | db.network_get_all | |
delete | netmanager.delete_network | |
modify | db.network_get_by_cidr db.network_update | |
service | list | db.service_get_all |
enable | db.service_get_by_args db.service_update | |
disable | db.service_get_by_args db.service_update | |
describe_resource | ||
shell | ||
sm | flavor_list | db.sm_flavor_get_all db.sm_flavor_get |
flavor_create | db.sm_flavor_create | |
flavor_delete | db.sm_flavor_delete | |
backend_list | db.sm_backend_conf_get_all db.sm_backend_conf_get | |
backend_add | db.sm_backend_conf_get_by_sr db.sm_backend_conf_update db.sm_flavor_get_by_label db.sm_backend_conf_create db.sm_backend_conf_delete | |
version | ||
vm | list | db.instance_get_all db.instance_get_all_by_host |
volume | reattach | db.instance_get, db.volume_get |
vpn | change | db.project_get_networks db.network_update |