def test_register_configs_nvp(self):
     self.config.return_value = 'nvp'
     configs = quantum_utils.register_configs()
     confs = [quantum_utils.NEUTRON_DHCP_AGENT_CONF,
              quantum_utils.NEUTRON_METADATA_AGENT_CONF,
              quantum_utils.NOVA_CONF,
              quantum_utils.NEUTRON_CONF]
     for conf in confs:
         configs.register.assert_any_call(
             conf,
             quantum_utils.CONFIG_FILES['neutron'][quantum_utils.NVP][conf]
                                       ['hook_contexts']
         )
 def test_register_configs_ovs(self):
     self.config.return_value = 'ovs'
     configs = quantum_utils.register_configs()
     confs = [quantum_utils.NEUTRON_DHCP_AGENT_CONF,
              quantum_utils.NEUTRON_METADATA_AGENT_CONF,
              quantum_utils.NOVA_CONF,
              quantum_utils.NEUTRON_CONF,
              quantum_utils.NEUTRON_L3_AGENT_CONF,
              quantum_utils.NEUTRON_OVS_PLUGIN_CONF,
              quantum_utils.EXT_PORT_CONF]
     print configs.register.calls()
     for conf in confs:
         configs.register.assert_any_call(
             conf,
             quantum_utils.CONFIG_FILES['neutron'][quantum_utils.OVS][conf]
                                       ['hook_contexts']
         )
 def test_register_configs_pre_install(self):
     self.config.return_value = 'ovs'
     self.networking_name.return_value = 'quantum'
     configs = quantum_utils.register_configs()
     confs = [quantum_utils.QUANTUM_DHCP_AGENT_CONF,
              quantum_utils.QUANTUM_METADATA_AGENT_CONF,
              quantum_utils.NOVA_CONF,
              quantum_utils.QUANTUM_CONF,
              quantum_utils.QUANTUM_L3_AGENT_CONF,
              quantum_utils.QUANTUM_OVS_PLUGIN_CONF,
              quantum_utils.EXT_PORT_CONF]
     print configs.register.mock_calls
     for conf in confs:
         configs.register.assert_any_call(
             conf,
             quantum_utils.CONFIG_FILES['quantum'][quantum_utils.OVS][conf]
                                       ['hook_contexts']
         )
    get_packages,
    get_early_packages,
    get_common_package,
    valid_plugin,
    configure_ovs,
    reassign_agent_resources,
    n1kv_add_repo,
    stop_services
)
from quantum_contexts import (
    DB_USER, QUANTUM_DB,
    NOVA_DB_USER, NOVA_DB,
)

hooks = Hooks()
CONFIGS = register_configs()


@hooks.hook('install')
def install():
    execd_preinstall()
    if config('plugin') == 'n1kv':
        n1kv_add_repo()
    src = config('openstack-origin')
    if (lsb_release()['DISTRIB_CODENAME'] == 'precise' and
            src == 'distro'):
        src = 'cloud:precise-folsom'
    configure_installation_source(src)
    apt_update(fatal=True)
    if valid_plugin():
        apt_install(filter_installed_packages(get_early_packages()),