Files
nova-specs/specs/juno/implemented/refactor-network-api.rst
Michael Still f0b8204072 Re-organize juno specs
As discussed at our nova meetings, reorganize the juno specs into
three directories:

 - proposed: things proposed which weren't approved
 - approved: things we approved but didn't implement
 - implemented: things approved and implemented

The first I suspect is the most controversial. I've done this
because I worry about the case where a future developer wants to
pick up something dropped by a previous developer, but has trouble
finding previous proposed specifications on the topic. Note that
the actual proposed specs for Juno are adding in a later commit.

Change-Id: Idcf55ca37a83d7098dcb7c2971240c4e8fd23dc8
2014-10-07 07:49:59 +11:00

2.0 KiB

Refactor network API

https://blueprints.launchpad.net/nova/+spec/refactor-network-api

To have a common API network base with all required methods so neutron / nova network api can inherit from.

Problem description

Right now network api's do not inherit from a common base, and if the functionality is not implemented developers may forget to add the method. The situation is that every time that functionality want to be accessed from the API an exception is thrown due to missing methods and not clear error is returned.

Proposed change

The idea is to create a network_base API that define all the possible methods and just throw NotImplementedError, so next time the user will see the proper error message.

Also fields like sentinel object could be directly inherited in the base api.

Alternatives

The current way to do this is to manually add the missing methods to neutronv2 api for instance. Every time someone add a new method to one api has to do the same for the others and raise NotImplementedError if not supported.

Data model impact

None

REST API impact

None

Security impact

None

Notifications impact

None

Other end user impact

None

Performance Impact

None

Other deployer impact

None

Developer impact

If developers add new methods to neutronv2 or nova-network api, they must define it first on the new network base api.

Implementation

Assignee(s)

Primary assignee:

leandro-i-costantino

Work Items

  • Create a base network api files that has all the public methods from current network api

Dependencies

None

Testing

None

Documentation Impact

None

References

None