← Back to team overview

openstack team mailing list archive

db & notification support for API extension?


I'm working on an API and implementation to support the creation of filesystems that are shared among Nova instances.


My hope is to keep this API isolated from core Nova code, partly to avoid stepping on toes and partly because I hope to be able to drop it into an existing essex install. There are two things I need which I know how to do within Nova but am not clear on how to do without modding Nova code:

1)  DB support

I need a database table to keep track of some filesystem metadata. My current implementation adds the table via nova/db/sqlalchemy/migrate_repo... but is it really necessary to coordinate this table with the rest of Nova? Would it be reasonable to maintain the table independently within the extension code? And, if so, are there any existing extensions that do something like this?

2)  Responding to nova events

In order to manage access permissions, I need to hook the creation and deletion of instances. The easiest way to do this is by hooking into existing nova functions; a more isolated way is to listen on the queue for creation/deletion notifications. My question about that latter method is: who will listen? Should my API extension just spin up a daemon and leave it to run forever? Should I create a full-blown service for this?

I can think of various approaches to both these problems, but I welcome your suggestions. Thank you!


Follow ups