Difference between revisions of "NovaManageDBAnalysis"
m (Text replace - "__NOTOC__" to "") |
|||
| Line 1: | Line 1: | ||
| − | + | ||
= nova-manage DB analysis = | = nova-manage DB analysis = | ||
Latest revision as of 23:29, 17 February 2013
Contents
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 | delete by id supported by Network API, but not deletion by fixed-range | 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 |