Re: [openstack-dev] [Neutron] how to add a new plugin to the neutron repo?

2014-10-07 Thread Ivar Lazzaro
Hi,

There are mainly two things you need to know when proposing a new Neutron
Plugin (or even any Openstack feature):

- The process [0];
- The tools [1].

Although the above documents cover those two points pretty well, I can give
you a high level overview of what the process looks like.
I'll not cover the how to implement a plugin part since it looks like you
are already past that :)

In order to add a new plugin/feature to the neutron repo, you first need to
propose it through our *specification process*.
The first step is to file a blueprint on launchpad [2] (register a
blueprint), in which you very briefly explain what you are trying to
attempt.
You can find many examples on how to write a blueprint in [2], but it'll
more or less look like this:


 *name: ferryboat-l2-plugin**title: L2 Neutron Plugin for supporting
 Ferryboat framework*



 *Summary:*
 *This proposal tracks the implementation of a new Neutron core plugin
 which allows the user **to implement L2 networks on the Ferryboat
 technology. In its first release, the plugin will support:*

 *- Port, Subnet, Network APIs;*
 *- Router APIs;**- Floating IPs;*
 *Security group support is planned for further iterations.*


Once you have filed the blueprint, you can publish your spec[3](look at
Spec + Blueprints lifecycle section) in the spec repo[4].
To do that, follow the Gerrit Workflow ([1] for details).
In a nutshell, you need to:

- Clone the spec repository locally,
- Write a specification following the template, it should be targeted to
Kilo (specs/kilo)
- Run git review so that it can be reviewed by the core dev team.

Once you do that, you spec will be published for review in the Openstack's
review board [5], where it'll have to wait for some core reviewer's
attention in order to
get approved.

Now to the actual patch:
When the specification gets approved (or even in parallel actually), you
can publish you Ferryboat plugin code for review just like you did for the
spec.
GerritWorkflow[1] will provide you a very clear understanding on how to
configure/use git in order to be able to do that.
So, again, you'll have to clone the Neutron's repository, add your code in
a local branch properly named, and then run git review so that it gets
published in the
review board.
In order to get approved and finally merged in the main Neutron repo, your
plugin needs to pass at least the following criteria:

- Pass all the unit tests;
- Its own unit tests have to be implemented! With as much code coverage as
possible;
- The Spec discussed above have to be approved and properly targeted;
- A *Third party CI system [5] *needs to be in place and positively voting
your patch;
- At least 2 core developers need to approve the patch based on its
compliance in terms of functionalities and code quality.

For those who implement a Neutron plugin for the first time, the Third
Party Ci system is usually the moment in which things get very hard!
The documentation pointed in [5][6], plus participating the weakly CI
meetings, should be enough for you to understand what needs to be done.
Very rapidly, Neutron needs to make sure that your plugin actually works,
and you want to make sure that no changes are trying to break your plugin!
To reach the goal,
you'll need to setup a continuous integration system at home which votes
a rightful amount of patches in review in order to validate that your
implementation is not
broken. Without a CI in place you plugin won't be approved, and removed if
already in tree.

The above should cover roughly 60% of the whole process, there are other
small details like the commit format, unit testing, and other things that
would be useless to overload here.
More than that, I suggest you to go on the IRC channels and look for help
there. My IRC alias is ivar-lazzaro, feel free to contact me :)

Last but not least, the first push in Openstack (especially if it's
something so big as a vendor plugin) is always tough! You'll go through a
TON of review rounds and nasty issues.
But don't be discouraged! It gets way better once you grasp the whole
process :)

Cheers,
Ivar.

[0] https://wiki.openstack.org/wiki/NeutronDevelopment
[1] https://wiki.openstack.org/wiki/Gerrit_Workflow
[2] https://launchpad.net/neutron
[3] https://wiki.openstack.org/wiki/Neutron/BlueprintTemplate
[4] https://github.com/openstack/neutron-specs
[5]
https://review.openstack.org/#/q/status:open+project:openstack/neutron-specs,n,z
[4] https://github.com/openstack/neutron
https://github.com/openstack/neutron-specs
[5] https://wiki.openstack.org/wiki/NeutronThirdPartyTesting
[6] http://ci.openstack.org/third_party.html
[7] https://wiki.openstack.org/wiki/IRC

On Sun, Oct 5, 2014 at 9:51 PM, thanh le giang legiangth...@gmail.com
wrote:

 Hi all



 I want to add a plugin to the Public Neutron Repository. Although I have
 read the gerrit workflow and Neutron Development page (
 https://wiki.openstack.org/wiki/NeutronDevelopment), I don't know clearly
 how we can add our plugin to 

Re: [openstack-dev] [Neutron] how to add a new plugin to the neutron repo?

2014-10-07 Thread Ihar Hrachyshka
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512

On 06/10/14 06:51, thanh le giang wrote:
 Hi all
 
 
 
 I want to add a plugin to the Public Neutron Repository. Although I
 have read the gerrit workflow and Neutron Development page 
 (https://wiki.openstack.org/wiki/NeutronDevelopment), I don't know 
 clearly how we can add our plugin to neutron repository. Could you 
 please share me the process?
 

Note that there are discussions to move all (or most) plugins outside
the neutron tree (can't find the link atm, but it's mentioned in [1]).
So in the end, your plugin may end up in a separate repository.

[1]: https://etherpad.openstack.org/p/kilo-neutron-summit-topics

/Ihar
-BEGIN PGP SIGNATURE-
Version: GnuPG/MacGPG2 v2.0.22 (Darwin)

iQEaBAEBCgAGBQJUNDzwAAoJEC5aWaUY1u57O08H8Pwm93FbLr7SR9LUiVg114eJ
9jKsuhOBartQMidKHXMfCTxC6lYtqFkaZdjnHuZ6ADFAQsDEzucHxHiJZx0SmiIs
uD0NJeqLrS3UR0RJZMya5InfF1wso7B3CAXuGejAuQB0D08K7qR3nSRNGqcUn3k5
RVn6JNJk5DicuXrtrOOzvlUuPNeHx9b1/YfKhiC2J1Bl1WttOXzedZMXcRhlTBGN
wtWfyl4OzKLHPTvumUkT6NMoHyg0zHs/FBM7caOOzo3xsA+pq89E6q+mY5un6zUy
KKQI36zhIBvVUE0eIqekm9zqV+2AJxQnb+H6U4vRrAFMxjArvjUpgnLDN70T
=ow33
-END PGP SIGNATURE-

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Neutron] how to add a new plugin to the neutron repo?

2014-10-07 Thread Robert Kukura
If you are thinking about adding a new neutron core plugin, please 
consider whether you could accomplish what you need with an ML2 
MechanismDriver instead. Its a lot less code to write, review, and maintain.


-Bob

On 10/6/14 12:51 AM, thanh le giang wrote:


Hi all

I want to add a plugin to the Public Neutron Repository. Although I 
have read the gerrit workflow and Neutron Development page 
(https://wiki.openstack.org/wiki/NeutronDevelopment), I don't know 
clearly how we can add our plugin to neutron repository. Could you 
please share me the process?


Thanks and best regards,


--
L.G.Thanh

Email:legiangt...@gmail.com mailto:legiangth...@gmail.com
lgth...@fit.hcmus.edu.vn mailto:lgth...@fit.hcmus.edu.vn


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Neutron] how to add a new plugin to the neutron repo?

2014-10-07 Thread Kyle Mestery
On Tue, Oct 7, 2014 at 2:20 PM, Ihar Hrachyshka ihrac...@redhat.com wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA512

 On 06/10/14 06:51, thanh le giang wrote:
 Hi all



 I want to add a plugin to the Public Neutron Repository. Although I
 have read the gerrit workflow and Neutron Development page
 (https://wiki.openstack.org/wiki/NeutronDevelopment), I don't know
 clearly how we can add our plugin to neutron repository. Could you
 please share me the process?


 Note that there are discussions to move all (or most) plugins outside
 the neutron tree (can't find the link atm, but it's mentioned in [1]).
 So in the end, your plugin may end up in a separate repository.

 [1]: https://etherpad.openstack.org/p/kilo-neutron-summit-topics

Yes, this is very likely to happen in Kilo and it's one of the
refactoring related items the team will focus on in Kilo. I hope next
week to have this more documented on an etherpad for folks to consume
prior to the Summit.

Thanks,
Kyle


 /Ihar
 -BEGIN PGP SIGNATURE-
 Version: GnuPG/MacGPG2 v2.0.22 (Darwin)

 iQEaBAEBCgAGBQJUNDzwAAoJEC5aWaUY1u57O08H8Pwm93FbLr7SR9LUiVg114eJ
 9jKsuhOBartQMidKHXMfCTxC6lYtqFkaZdjnHuZ6ADFAQsDEzucHxHiJZx0SmiIs
 uD0NJeqLrS3UR0RJZMya5InfF1wso7B3CAXuGejAuQB0D08K7qR3nSRNGqcUn3k5
 RVn6JNJk5DicuXrtrOOzvlUuPNeHx9b1/YfKhiC2J1Bl1WttOXzedZMXcRhlTBGN
 wtWfyl4OzKLHPTvumUkT6NMoHyg0zHs/FBM7caOOzo3xsA+pq89E6q+mY5un6zUy
 KKQI36zhIBvVUE0eIqekm9zqV+2AJxQnb+H6U4vRrAFMxjArvjUpgnLDN70T
 =ow33
 -END PGP SIGNATURE-

 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Neutron] how to add a new plugin to the neutron repo?

2014-10-07 Thread Damon Wang
I agree to @Kukura that implement as a driver to ML2 is recommend.

Regards,
Wei Wang


2014-10-08 3:57 GMT+08:00 Kyle Mestery mest...@mestery.com:

 On Tue, Oct 7, 2014 at 2:20 PM, Ihar Hrachyshka ihrac...@redhat.com
 wrote:
  -BEGIN PGP SIGNED MESSAGE-
  Hash: SHA512
 
  On 06/10/14 06:51, thanh le giang wrote:
  Hi all
 
 
 
  I want to add a plugin to the Public Neutron Repository. Although I
  have read the gerrit workflow and Neutron Development page
  (https://wiki.openstack.org/wiki/NeutronDevelopment), I don't know
  clearly how we can add our plugin to neutron repository. Could you
  please share me the process?
 
 
  Note that there are discussions to move all (or most) plugins outside
  the neutron tree (can't find the link atm, but it's mentioned in [1]).
  So in the end, your plugin may end up in a separate repository.
 
  [1]: https://etherpad.openstack.org/p/kilo-neutron-summit-topics
 
 Yes, this is very likely to happen in Kilo and it's one of the
 refactoring related items the team will focus on in Kilo. I hope next
 week to have this more documented on an etherpad for folks to consume
 prior to the Summit.

 Thanks,
 Kyle


  /Ihar
  -BEGIN PGP SIGNATURE-
  Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
 
  iQEaBAEBCgAGBQJUNDzwAAoJEC5aWaUY1u57O08H8Pwm93FbLr7SR9LUiVg114eJ
  9jKsuhOBartQMidKHXMfCTxC6lYtqFkaZdjnHuZ6ADFAQsDEzucHxHiJZx0SmiIs
  uD0NJeqLrS3UR0RJZMya5InfF1wso7B3CAXuGejAuQB0D08K7qR3nSRNGqcUn3k5
  RVn6JNJk5DicuXrtrOOzvlUuPNeHx9b1/YfKhiC2J1Bl1WttOXzedZMXcRhlTBGN
  wtWfyl4OzKLHPTvumUkT6NMoHyg0zHs/FBM7caOOzo3xsA+pq89E6q+mY5un6zUy
  KKQI36zhIBvVUE0eIqekm9zqV+2AJxQnb+H6U4vRrAFMxjArvjUpgnLDN70T
  =ow33
  -END PGP SIGNATURE-
 
  ___
  OpenStack-dev mailing list
  OpenStack-dev@lists.openstack.org
  http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


[openstack-dev] [Neutron] how to add a new plugin to the neutron repo?

2014-10-05 Thread thanh le giang
Hi all



I want to add a plugin to the Public Neutron Repository. Although I have
read the gerrit workflow and Neutron Development page (
https://wiki.openstack.org/wiki/NeutronDevelopment), I don't know clearly
how we can add our plugin to neutron repository. Could you please share me
the process?



Thanks and best regards,

-- 
L.G.Thanh

Email: legiangt...@gmail.com legiangth...@gmail.com
lgth...@fit.hcmus.edu.vn
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev