Ask Your Question

Revision history [back]

Is it possible to bypass the conventional DevStack `get_networks` functionality and use a custom built one?

The main idea is to bypass the functions get_networks, create_network, etc (at least the basic ones) that ml2 utilizes and use my own implementations to get/create this information

On my local project I have a get_networks function that can return the networks in JSON format through REST API and an endpoint that will call this function and provide the results. On a remote machine I have deployed a DevStack infrastructure and I want, when getting the networks through horizon UI, to receive the information of my endpoint, alongside with the local database that neutron keeps.

I have done something similar with cinder volumes successfully by editing the cinder.conf file with the line volume_driver = myproject.mydriver and with instances using compute_driver = myproject.mydriver but after a lot of research I have figured that neutron does not work like that and instead of a driver I have several agents/plugins/other ( I am still a newbie and have many gaps) and so I can not edit the neutron.conf file to do something similar. I tried replacing core_plugin = ml2 setting but to no avail.

Supposedly I could inject my call into .../neutron/plugins/ml2/plugin.py but I'd really prefer to leave the DevStack code as is.

So I am looking for a way to override, bypass, or extend the plugin though external file to utilize my own functionality. Any insight or correction to my misunderstandings is more than welcome.