# ChangeLog for sys-cluster/neutron
-# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/ChangeLog,v 1.49 2014/12/09 01:38:10 prometheanfire Exp $
+# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/ChangeLog,v 1.50 2015/01/13 03:59:07 prometheanfire Exp $
+
+*neutron-2014.2.1-r1 (13 Jan 2015)
+
+ 13 Jan 2015; Matthew Thode <prometheanfire@gentoo.org>
+ +files/CVE-2014-8153-juno.patch, +neutron-2014.2.1-r1.ebuild,
+ -files/neutron-confd, -files/neutron-confd-2, -files/neutron-initd,
+ -files/neutron-initd-2, -files/neutron-sudoers, -files/nicira.patch,
+ -files/sphinx_mapping.patch, -neutron-2014.2.1.ebuild, -neutron-2014.2.ebuild,
+ neutron-2014.2.9999.ebuild, neutron-9999.ebuild:
+ bunch o fixes removing old for old reasons removing badness for CVE-2014-7821
+ patching goodness for CVE-2014-8153
*neutron-2014.2.1 (09 Dec 2014)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
-AUX neutron-confd 75 SHA256 2e03d5dee96eb235d3d2742fb59b52376914dae1d8683144396d796dd35ea9f5 SHA512 fefe7dd1924fabed3cdddae2a407b254c62f39c49abeae238486896e9d26863caebfdfea6d52c5eef34d25452b163c373105929bd069b969c2af0f7d62d6c0e6 WHIRLPOOL 1ac7ed6b2287e66bc51be8b521e355a48e888e1e57371362bfd41fb831d63cc90aab542c1668b4acc1c087cb6bacd418a480e2732a7611b8df290bf63444c902
-AUX neutron-confd-2 75 SHA256 0fce0e6f6cec493b9b0bcb96fa3211ba47a6420b9ea675ef65979fd9505121c7 SHA512 e64116f6cab81a2ee56d797f8144dbc8b214fb627bc8d6c3045488b1fec694cee8e8f3f3fbd327fb28f704cdfae40ea468d8a212c819abd45e809a1fa56b9670 WHIRLPOOL fb027c386c99448c29b265adc234abbc4d23a8be015690fd024b1f39ccc18dd64a1ab57c6cc26a054d576a0bbbed797058b19db90abf0318ae79dddc4efd2056
+AUX CVE-2014-8153-juno.patch 5178 SHA256 ef2ef6ecfbe5aa821903c18c1362ca3079b1e2e5239000b32d521e12e0eff846 SHA512 fed7708976aada4146fdf3d22b3ded70defeb843e88920d6a3b164a701643590fcd2738185d5935024dd9c2bcf1b260368f958f33733ed87ff8e32373beb27be WHIRLPOOL 4ac46f4c9378ab894f2dbfc02ef8d204fa840c5f6c65a1015b5b82ef8f436ebb57c510843d5aed21c018230582161d538246ff2535cdebc66c56470528055a9b
AUX neutron-dhcp-agent.confd 75 SHA256 e36fe3d370ad2b4c82ccf1f4caac60882334d93e3abd7e0e6e268d23cb069d71 SHA512 94cf300c9a9d0275e4fcab4ffdb7e29ca26b73c120d6ff683b48ea0e9c21e46123289522aedd295e4d5d28307133b50084541a90a48db456802d675eed6c2d3e WHIRLPOOL 9e77fe1ef65fa8ef46f8272ddea7213a46e71c6f2884eab20f09eaddc977f5cc202c8529c1a75347132c667e4e2d39d5bdd3ab2c94812c4b1f95f398af75c38c
-AUX neutron-initd 1610 SHA256 58f26e65b4f81ec3d4b0a670f06d9e5dddb35d2ad0dc5376587e654064059d81 SHA512 abd4170e7d7b720cd2aa7b4a65bd2fb4fdba0c11f976eb516a086e9e0e40a92428f4bcf5b3095ee8c31a0839a9d28a703fc42c0baf21bcf280867a805e86f19f WHIRLPOOL 7702f2df1e6fbebc8cc7fffb2590d9a2d3d7d496f0f5b62e72ab2c35fa226dad96492626c9ed5f5c59a33c1e9f06501f7625f037efe1926e22de0ad023d20669
-AUX neutron-initd-2 1610 SHA256 f81c0269b6f602c3557d034ca94445da640bc7b2a59050dbefeaabb4879aa24f SHA512 06ad3c20c8f8a20df76459a5d5d8586403750a940aabe837e77a8a0b25e82a1dac50fbab4862289f6e209418d3aa60407672e9c147f5e298586b34b22b34dd05 WHIRLPOOL eb5b6564eaa14b543269bba9719d6bcbeb3ba950cbaaa2f670e265d783d1afe8f8b68533cc598a8b8ae9cfc0b629e09e09841b87f7f21d462c20b6aa600500da
AUX neutron-l3-agent.confd 73 SHA256 560997f3e40d90ef885483e4bd02728bf88720378238fc5e6b3b2abb2ba9dd0e SHA512 4a902c5621abc124424bdad97de8959f63f7c846b4c7b9b3ccaab5522ff3e6938acf748df269980484228d4fc13d2f1e3e3670619207e3c88ea5dd5373699e0a WHIRLPOOL 653156dbbff34606fa0694bab622eb40c2ead171b1ad0a0c934285a50f15db4d8927e40ebff8d2ffe64078a8a079d48a2834e68b049c11a68417dc3945374cb8
AUX neutron-linuxbridge-agent.confd 100 SHA256 d829f07e9062065ba1079a32f9de99b980e8ef818767ddf890c009b6b89a89e0 SHA512 3c999af9b63284218c630b3c73a047f4bb5ef36bd9eb8a2a10c08fe23e3836f276d13ad40b19f6698d49ec2ee6587e62ded9079851b2af5618456082badc1921 WHIRLPOOL dd354818597ea5e93a2cc9bb6a1e750450c4a1b6f513729d64b59c35c3074627a1ad543c5f8b20cc68afe928496633719dd503ca7b58416ca348ab1c96c27933
AUX neutron-metadata-agent.confd 79 SHA256 6888df2f0bf5332d880ceb5a1076816ee605d30b70879d9972b0c9504399edea SHA512 a7a4af56141f1528f7f9ca222f88d400f7a5f6cba392a603121974f6429ecdb925996b1bd6631b589df70464f910deed688e287668ccb1d61fe1d6aa641272a1 WHIRLPOOL e7fc657e6fd0dcf99dad0bc5b7747b1521e22ba1eced8ad163151a0e1ec8c6c9b4eb46ed17ce23264c8903c5aeb2455f9c057ad956fa925d6ad131345cb2d772
AUX neutron-openvswitch-agent.confd 102 SHA256 a5d5aa7ba2794f593e65c8c87888f29867a817dc169cbae21f06fd6424b5fa87 SHA512 9fb7fc95b1eb00e685e269213bb694019471f9c14074ccac5f55c3969d5ff4d6f98ab3f2ff7e56bd0837a0261ab59b58645e2e7f4caf9ff4ecb52877df816423 WHIRLPOOL aff1c3a5e2b858b598f88699720069031c33305870d2324bc5d059dfc380beae27f5a60278bc5560178596e6a2d22af957205ed75a2df145316d8999cf4b034c
AUX neutron-ovs-cleanup.confd 102 SHA256 a5d5aa7ba2794f593e65c8c87888f29867a817dc169cbae21f06fd6424b5fa87 SHA512 9fb7fc95b1eb00e685e269213bb694019471f9c14074ccac5f55c3969d5ff4d6f98ab3f2ff7e56bd0837a0261ab59b58645e2e7f4caf9ff4ecb52877df816423 WHIRLPOOL aff1c3a5e2b858b598f88699720069031c33305870d2324bc5d059dfc380beae27f5a60278bc5560178596e6a2d22af957205ed75a2df145316d8999cf4b034c
AUX neutron-server.confd 70 SHA256 40d09a699fc3bced40c5a9dc7394a76c40c245b579fc270909966e11485564d7 SHA512 79f1a40486c37b2c3486b4ef015864f6b20ee89b05d788ce6ade8af934e2c160da9e0495d22e941a717072c1d8ca3b77963a3ec06f3ec25a3f8af8b24a4e40a0 WHIRLPOOL 59f9ac13d58fd76014090988c642d4cb244d51726fb5733cc30e7fbba5c22226ef955f8e8021dad04ab457df0fe5879d13af8c40a6913d03c15bffb48cf4a5ac
-AUX neutron-sudoers 88 SHA256 bb631691e67d9ddc405fd1f6a23b066120ecebfbf3a48bca752e82aa8224922b SHA512 c6a87ad7047604caf1c5d66ff1f44e9f1a289cbaaf2031ffc6bf8c705fd439db2afaa8d5858746f8539beac84945886bbbc347be0ba85e7446ea7451bb81f027 WHIRLPOOL cbcb5da9b6c7629741a076767aadad9d849462005526dde7fad76fe93285724361839b64d28aa3f0ed7dafaa35b110765b759b3f6b525a52cad5abfe6679ef1c
AUX neutron.initd 792 SHA256 2170e60f05a3f41b47b80def27195fc3b67517adcdf8c6d53765cc8c552861d5 SHA512 aeaef18f5b0f29b9eddb2d76a640cd3e11af6bd211d837c2158e46f369aeebb915d5ca1deb354970fabe788478a3c6cb82f1886a85bdbdae9205c8017a89f0f4 WHIRLPOOL 77bd8b0eed45ab62314379239e19915b1368f8fbe069d22fa36ceab730780a920b6cbbb5aef85b053cfd66716775499689c874e91bcbc0c296a52140a26e7fab
AUX neutron.sudoersd 117 SHA256 b40ea04a95deedbb66fe504df61b55905cbd746e5ba26321c01cd25b5cc9dcbe SHA512 143f8a1faa7650bc66b2566d0bd62f71eb743231b9efc4c7df265e53d664418b23182e3f271b86845ed76c537b7f60157e87af59413cf659379f367924d14366 WHIRLPOOL bb0e35d7b7471fab424f86f181601bc87d4bba98f4fbc282cc6302a05128992613097afe1fea159e9c718cd688a03c280b53d72bfe47fc91bd24967a4b4618da
-AUX nicira.patch 5757 SHA256 62484fa9d817feee1edc0a51ea1eeca068406f8f76e34c845b85ea51664e20d6 SHA512 f160a36f78d9a1186e19cdfb4f97b17e39e1a6f3e20bcaf84e76e71c632b0a6e8af89645d507f2c6f60a9f7d09a741302d476731c2fc798dfa999aaf38f1e273 WHIRLPOOL b7b5e0618caa8c6acc65f46c315d81b427810f3d6b1e89b48fc79567717c90a2e81e091d532ea192ac68ad432374fb9debe79d7b2c0a5a82d7d8cec8ca64f50e
-AUX sphinx_mapping.patch 835 SHA256 f4745338474c9191ba386f81705cc8c9a6effb09116c65664654eb733d081252 SHA512 988236676ef0550ca96cc05e606d43280969e89b31971244ece89d63cdcbcbcfd3ac595adca03a6308996ef58ebc4f75b0dfd65a938ad7c3fb67fb785e09f8c9 WHIRLPOOL 6154ee51ecd63040d9a6c2058f369a7243c719cbda3f73484d55ea9425a5c9982d3921d91d152aa27c61c5635d74f2afa57ff1b5aaa10b1be1e7c1475ff74e5f
DIST neutron-2014.2.1.tar.gz 2062302 SHA256 39c9a8cd2d864b4346289cbcc4977db9a81e34d073abb4c6c0f39fadb2b9e881 SHA512 8a8fb5ae838eca5be5f167afc6c991a5aef0158cb49ec82ebaf5b87ac9ae22a3ef3c943130396ffcd6b037c40b974c3e3abbde8d7315e42c0db147dec0af420b WHIRLPOOL c04492e756fc647ce938152b8ab7c34ac443d9b9877c106d31a6581f4ef3a7cebeaaeedde75771bdef28c90ee42a5c3c7d985fb22de2acea60b0ed907a0a0081
-DIST neutron-2014.2.tar.gz 2052528 SHA256 94ee69dd043e9521a72b1aa970462b2aceb1555eafee645650a595eeb8f01f1c SHA512 6efd026ee4a2cc8702204b75a85e05844072e0c4e34dae06ec68bce34b02554af4891e0e175dc11a7938e0a731f070b87523391c23f9260c86c4dcf271fa343c WHIRLPOOL 46ab2278a373c91a42c060ed548f522c7b38ed90f37fbef569fc5f3aae9abdf76e90460d3b27db7c5da9b869ed433765265990a93e3eb2bdc48e30be9aef7ec4
-EBUILD neutron-2014.2.1.ebuild 7662 SHA256 6f47a33a0341568a36eb9aae16526148e8d62cc9b2715523e95494d92943e430 SHA512 670a23f0d61824de493ab0d380d1b0f2284619f8c8afe1320b9b27f1844ce3be4760902d88043866f02b70d937a4152b39735f7c8e3a9ae7690c07aff1c05ec9 WHIRLPOOL 0639098a64314835c1d5f1521bd588dfeb2fed1f5f04df845ac3348864ea812c1fc75f11e69e9640b0fb2fa1fe4b2f3f26dc594db725ff311cb15cf0a5ab32e9
-EBUILD neutron-2014.2.9999.ebuild 7673 SHA256 7619332893ac40fa31317736dee427c41048a2000e03c6b77f2db04712a0c28a SHA512 c54af57c4a90f6bfa80494d42bb77d52ab44dd1d8d1b6adf74d99daffbd87d7c1fe20972d96fec8a516d52dc4cdb41872c63458e685c88cab6e6d1a62351bf1b WHIRLPOOL 7981e95bf7434f2b5bbc1d2cafc0c50085d00ce11b0151f3dc84a17dc800e0aadb42ee32c14ab34a7c4235106a2b5b994d44684a4a12098e158871d5f3282e28
-EBUILD neutron-2014.2.ebuild 7556 SHA256 e08ad1551f91d2a048d898c900d22addfaa5bcf7fbf22a3d3d0332d8b234dc07 SHA512 3cf7f14e790918794a0aff27dacc2a58b70efae4ea88cb53a7c3b6490bae57c238c4a7b81b1c2c45ebfd38168606702fe7ef5ae2ea603f1f8a469b147a873fd8 WHIRLPOOL c947ff95e1647d1169d1e5865f80bab692aeb9e4c5bae6ec29cdf47878874bdc5bce08ec12dde7c4fb2317ffd344a0884efb0a92307fde975bcccef2e18c3d81
-EBUILD neutron-9999.ebuild 5708 SHA256 f50bbbca6ff649310d31b665b984bac6a96b4827b3fd6baf9499303c18f887f7 SHA512 0820ec933265d84921e84f9ed1cd3c4ab27af0292138e57d8f90a3e8c954bbc0d39d0fa822c210fb8957951bf71e4fe0ee9d69c600de48eedc6bd7c2950584e1 WHIRLPOOL 5699273d695853342c7cf90160996add4e1b525c8042efe2e0e16b9afbd684a6e30c988b94c3190b577f1f9edd3c63bf2f39f926aa5e60e7dc9ad3b5802a69e8
-MISC ChangeLog 14329 SHA256 09a54c576b097ec43e22c86a36a5cbfc3faad8fca91b4545f2fdd1805622f36e SHA512 44f8b906ec70a6cc983431231bc74818bc102fed7dc72b3defb4aecf435fc7ad3b641b8de439f5bcad206f39e3caa963dab191e169819d21743f178b051d5939 WHIRLPOOL 9643450f5aee9d93b81054cc5c99fb26e0c6c7246f6c428a918768f28c694a40db8da26f464d4df1f7a4b3b30ef09f7c8a471b1b667d45b28835e88441d729fe
+EBUILD neutron-2014.2.1-r1.ebuild 7684 SHA256 04e394754ede8774e29f589be742e807ee28e92149a3c2fbb9d149ebab7d9f54 SHA512 fc9bf1ce42a643cf02e35daa404aa9feadb6b8eecaf55fb8eebe499027c8b31e552d7a28ebf7f17cf6197de9c9853586bc6030e43ff610d2413354f54db5a5e3 WHIRLPOOL d8ce51c42eef6112c473bff14ea1e8d86a572526c7c7346462bf44fa64651ab92ade4692ccac07112aa0723856e502a5fa391a626619eee03a7f5feb971b7f3e
+EBUILD neutron-2014.2.9999.ebuild 7652 SHA256 10219dbc6c8da8993193bcedfbfc4e2c8a71eee84636728f5dade8c99775febf SHA512 206d8e1b05cb0bcc8d856a4e8c1ec625affe26854cffd9c03d26b43bf6d1088b2d4d26c56b6ea183fa3f309082e3e781224d16e315a30cbe89b05264953193d0 WHIRLPOOL 830cfdda79e0c07ee10e60d5f79c441893a3130467513f0fdc7a536b20c2d4e997cc762b6b5f6a3bf870be65810591f99220be743dfd80d75bd5485d1daf2696
+EBUILD neutron-9999.ebuild 7641 SHA256 07322b7181344125e6e1aaf3df227c403f547f72cec4ebadce09896e6b647276 SHA512 269780948a354c2d25e2ccb1deb60feeb19bbf3c2a0a35fb9b3a74f124a8945843d0b6d324984d0951df2e21121d6a30417907aef553b21951ec51167d4671f7 WHIRLPOOL 82a083866be4b9f83ee92ec3e37dd584ba325a558e52788ba97694bce80816c105366add92ba0486f0ecd07f8e50df379a0f7d56feabb654d4dfe823c2905e34
+MISC ChangeLog 14879 SHA256 ff3d96920045ccdfc7b37ffb5135381e6b54adba8c547a3a779573410cf08bd3 SHA512 50df8d5cd188854817edfb441d28efb887e95e3ced4bcd264dd90c01b75ddb94fbf50f3c1d05b2527faeb0a8cba618464b172427e58285b8631fec8674d25542 WHIRLPOOL 8c3f88331a8b18829df7e951b5c48163cc726507d6cd25a901cb5df252b5f6048ea6e6880897b77d9e78923099ebe6cf52214d43374c204522381a1d87e75f6e
MISC metadata.xml 1296 SHA256 7d6de6c9dc0602e7ea1147c40e8798aa61e01a891eade2b291628850d52889ab SHA512 e49d4872a6fefdb93f20665cf1a176744a1eaa3c068617dbb41e2591d084776d55334997c8046d725e84f5a7280481392f3fccf42f6cb02bbf1751d43076c49d WHIRLPOOL 0b3e08407b951bffdaa54e646d35c000e5b1df43381132386b77056e26773d6344ec7ace4b7a87ae14f29090fcdd490f05730ece3597b8e7a2d4389dfe816312
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
-iQIcBAEBCAAGBQJUhlLCAAoJECRx6z5ArFrDeZgQANCTfD3oNJTu/mGhE4fe3tNn
-/wr4x9a6IYAdle2ttPyJ7FeDOzkcbHvnaZ5JcH2uBGxuRyOzBaOVRHlgGtXxcy0A
-WqgvgLqlrxAehyj49WrcifCZiGKHiv9wXpsSy3b+ZfVmviT/LbeWCyOMn3ziJ8De
-3acxeXcr1wDklHlImaAt+lErvGuJjf8Wz9/TP//gHr6S/ru1w6qSSUqqnyUVp/f6
-ja2XAGG5UPiOD9Q0JLZZcGEpIFDholTI9lVkYj7PqIGkmJLn6fVG7DSKNiveJbPs
-KOAnswG//X0PfI3IbTw9AI9IDLq9UsaV7XlT0mwVmr7kxJ4LHL5ZCm7/iKv8kUHA
-lfdah3qZNUFZgfc1SxejCE2sU+cvSsiHeBl1R3LcvxjroIceML05dZ9oNpY/I+2J
-sTdw3OqNS/PtcnFKfPESkQu3vlNXs5QzD+yidH0OixIIoBHR0TpqpvyYOQHvdWVY
-PnbbfyRaMm6VbOtesbMslFvGq4mTXisCE/CyUJi1wBYGbwRGeFqId7ScYdzQ1aaA
-banAj+s3HZRuRjbmjicJG/WhcTbtLLtVuKUpGpGF1btUJ6vVyWHizkDe7vgJGpUp
-oK+toYScN9Yg2FAAGTILClED4TiQJBLvoJUtenmgOIEQsBrdtGIz02l7dbYSStWz
-aZWRAZdDl0gALBgaC/xl
-=63yy
+iQIcBAEBCAAGBQJUtJgUAAoJEGSje+quGaTo4GkP/3GzyE1/f5eo/pu0lWFenziB
+u6KcwQc0VF/DNKY97dF69DHEUrH7LDHTpwidDz8zZK8uNLCqjyJzQYXjwT0BlmC8
+ngNAS6mmLjnCtyA+VY4Oc/h2ceor56x7Z+qVPbw3yVhb/Sn6UC9jC4cSuqUs5po2
+AJDfJtp4WwX8V5BbH5vOL29obv36MXXd2PCmqpsBITcnFreeRBafHMHkrR90saW9
+aHTghuFNga2luMuj7zqjEgF8gC7Pw88BV87Ry5mjf/9ISE1oAZRni03aQrfgC70+
+crvOfwmCeuPOtUjzUpYe2Oi8xzM6y2H873jHVfWTReYWYp+vGswcwsAaEePzMgdc
+ccK41Q9hxnrW2IaQ+YUSWGBXGdtV82rssozjXm0PvjgIreDbFr2IZTsPczMW3UU1
+QL2CfNbPP3Yx5gmTy9/EFJRKsdrw++sxwzUYwIdj8MrBYd0JXhx2OW+BlPFEVcfF
++0AkUC1tdZiMPxzJBtMvSDdLfF4trqY/654K3Um2RQnx3lX0ZYNbKsARty1PXuL8
+y+oZt9gGh9Yi++Qu6bgeRuHGm2IAAZlZU8s2GEgk+8TeTtuZ2fe+DoWjIUS9xtK5
++yEfjUy1qVVsNVzbMovz9LFEtljvhLNguay2mVSTCfZoh3lm4lGWEl0C1mJ087uO
+Pf1esKhyokQ9DfY2BrZX
+=ytt8
-----END PGP SIGNATURE-----
--- /dev/null
+From 6c490a984af690e732f8b96a18493ac1afef892f Mon Sep 17 00:00:00 2001
+From: Ihar Hrachyshka <ihrachys@redhat.com>
+Date: Wed, 3 Dec 2014 12:44:57 +0100
+Subject: [PATCH] radvd: pass -m syslog to avoid thread lock for radvd 2.0+
+
+Since radvd 2.0, the daemon does not use daemon_fork() function from
+libdaemon, but instead calls Linux daemon() function directly. It also
+passes (1, 1) arguments when logging method (-m) is either stderr (the
+default) or stderr_syslog. The second argument's value = 1 means that
+stderr is not closed and left there for (some) log messages.
+
+For neutron, it means that corresponding execute() call that spawns
+radvd and expects the invoked process to close stderr does not ever get
+completed. The current thread that spawned radvd is locked waiting for
+radvd to exit, which does not ever occur unless the process crashes or
+receives a signal.
+
+Since L3 agent gives exclusive access to updates queue for each router
+to one of processing threads only, it means that the thread that got to
+serve a radvd-powered subnet will not proceed and not update any new
+ports or other changes to the router anymore.
+
+Passing -m syslog makes radvd 2.0+ close stderr and return to execute()
+caller, proceeding with router update processing. The same arguments
+should work for old (pre 2.0) versions of radvd too, so passing them
+unconditionally.
+
+We could instead use -m logfile and pass appropriate -l <logfile>
+argument to radvd to make it log to a log file located in router's
+namespace storage path. Though that would be not in line with what
+dnsmasq processes currently do for dhcp agent, where we log all messages
+to syslog, so sticking to syslog for radvd for consistency.
+
+Juno changes:
+- tests: we need to construct RouterInfo to get router namespace name.
+
+Change-Id: I131db0639bc46d332ed48faa2bbe68a214264062
+Closes-Bug: #1398779
+(cherry picked from commit 72d41174765540bb7672b545c336fb7aaad075e8)
+---
+ neutron/agent/linux/ra.py | 8 +++++++-
+ neutron/tests/unit/test_l3_agent.py | 34 ++++++++++++++++++++++++++++++++++
+ 2 files changed, 41 insertions(+), 1 deletion(-)
+
+diff --git a/neutron/agent/linux/ra.py b/neutron/agent/linux/ra.py
+index 66fa012..6bdfea5 100644
+--- a/neutron/agent/linux/ra.py
++++ b/neutron/agent/linux/ra.py
+@@ -82,9 +82,15 @@ def _generate_radvd_conf(router_id, router_ports, dev_name_helper):
+
+ def _spawn_radvd(router_id, radvd_conf, router_ns, root_helper):
+ def callback(pid_file):
++ # we need to use -m syslog and f.e. not -m stderr (the default)
++ # or -m stderr_syslog so that radvd 2.0+ will close stderr and
++ # exit after daemonization; otherwise, the current thread will
++ # be locked waiting for result from radvd that won't ever come
++ # until the process dies
+ radvd_cmd = ['radvd',
+ '-C', '%s' % radvd_conf,
+- '-p', '%s' % pid_file]
++ '-p', '%s' % pid_file,
++ '-m', 'syslog']
+ return radvd_cmd
+
+ radvd = external_process.ProcessManager(cfg.CONF,
+diff --git a/neutron/tests/unit/test_l3_agent.py b/neutron/tests/unit/test_l3_agent.py
+index 6fda182..f5b2ca4 100644
+--- a/neutron/tests/unit/test_l3_agent.py
++++ b/neutron/tests/unit/test_l3_agent.py
+@@ -27,6 +27,7 @@ from neutron.agent.common import config as agent_config
+ from neutron.agent import l3_agent
+ from neutron.agent import l3_ha_agent
+ from neutron.agent.linux import interface
++from neutron.agent.linux import ra
+ from neutron.common import config as base_config
+ from neutron.common import constants as l3_constants
+ from neutron.common import exceptions as n_exc
+@@ -2350,6 +2351,39 @@ vrrp_instance VR_1 {
+ self.assertFalse(nat.add_rule.called)
+ nat.clear_rules_by_tag.assert_called_once_with('floating_ip')
+
++ def test_spawn_radvd(self):
++ router = prepare_router_data()
++ ri = l3_agent.RouterInfo(router['id'], self.conf.root_helper,
++ self.conf.use_namespaces, router=router)
++
++ conffile = '/fake/radvd.conf'
++ pidfile = '/fake/radvd.pid'
++
++ # we don't want the whole process manager to be mocked to be
++ # able to catch execute() calls
++ self.external_process_p.stop()
++ self.ip_cls_p.stop()
++
++ get_pid_file_name = ('neutron.agent.linux.external_process.'
++ 'ProcessManager.get_pid_file_name')
++ with mock.patch('neutron.agent.linux.utils.execute') as execute:
++ with mock.patch(get_pid_file_name) as get_pid:
++ get_pid.return_value = pidfile
++ ra._spawn_radvd(router['id'],
++ conffile,
++ ri.ns_name,
++ self.conf.root_helper)
++ cmd = execute.call_args[0][0]
++
++ self.assertIn('radvd', cmd)
++
++ _join = lambda *args: ' '.join(args)
++
++ cmd = _join(*cmd)
++ self.assertIn(_join('-C', conffile), cmd)
++ self.assertIn(_join('-p', pidfile), cmd)
++ self.assertIn(_join('-m', 'syslog'), cmd)
++
+
+ class TestL3AgentEventHandler(base.BaseTestCase):
+
+--
+2.0.5
+
+++ /dev/null
-#Don't touch this unless you know what you are doing
-PID_PATH=/run/quantum
+++ /dev/null
-#Don't touch this unless you know what you are doing
-PID_PATH=/run/neutron
+++ /dev/null
-#!/sbin/runscript
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-depend() {
- need net
-}
-
-BASENAME=$(echo $SVCNAME | cut -d '-' -f 1)
-SERVERNAME=$(echo $SVCNAME | cut -d '-' -f 2)
-
-checkconfig() {
- if [ ! -r /etc/conf.d/$BASENAME ]; then
- eerror "No quantum conf.d file found: /etc/conf.d/$BASENAME)"
- return 1
- fi
- return 0
-}
-
-start() {
- checkconfig || return $?
- . /etc/conf.d/$BASENAME
-
- ebegin "Starting ${SVCNAME}"
-
- if [ ! -d ${PID_PATH} ]; then
- mkdir ${PID_PATH}
- fi
-
- start-stop-daemon --start \
- --user neutron:neutron \
- --quiet \
- --pidfile "${PID_PATH}/${SVCNAME}.pid" \
- --make-pidfile \
- --background \
- --exec /usr/bin/${SVCNAME} -- \
- --config-file /etc/quantum/quantum.conf \
- --config-file /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini \
- --log-file /var/log/quantum/server.log
-
- eend $? "Failed to start ${SVCNAME}"
-}
-
-stop() {
- checkconfig || return $?
- . /etc/conf.d/$BASENAME
-
- ebegin "Stopping ${SVCNAME}"
-
- start-stop-daemon --stop --user neutron --quiet --pidfile "${PID_PATH}/${SVCNAME}.pid" \
- --exec /usr/bin/${SVCNAME} -- \
- --config-file /etc/quantum/quantum.conf \
- --config-file /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini \
- --log-file /var/log/quantum/server.log
- eend $? "Failed to stop ${SVCNAME}"
-}
-
-#restart() {
-#
-#}
+++ /dev/null
-#!/sbin/runscript
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-depend() {
- need net
-}
-
-BASENAME=$(echo $SVCNAME | cut -d '-' -f 1)
-SERVERNAME=$(echo $SVCNAME | cut -d '-' -f 2)
-
-checkconfig() {
- if [ ! -r /etc/conf.d/$BASENAME ]; then
- eerror "No neutron conf.d file found: /etc/conf.d/$BASENAME)"
- return 1
- fi
- return 0
-}
-
-start() {
- checkconfig || return $?
- . /etc/conf.d/$BASENAME
-
- ebegin "Starting ${SVCNAME}"
-
- if [ ! -d ${PID_PATH} ]; then
- mkdir ${PID_PATH}
- fi
-
- start-stop-daemon --start \
- --user neutron:neutron \
- --quiet \
- --pidfile "${PID_PATH}/${SVCNAME}.pid" \
- --make-pidfile \
- --background \
- --exec /usr/bin/${SVCNAME} -- \
- --config-file /etc/neutron/neutron.conf \
- --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini \
- --log-file /var/log/neutron/server.log
-
- eend $? "Failed to start ${SVCNAME}"
-}
-
-stop() {
- checkconfig || return $?
- . /etc/conf.d/$BASENAME
-
- ebegin "Stopping ${SVCNAME}"
-
- start-stop-daemon --stop --user neutron --quiet --pidfile "${PID_PATH}/${SVCNAME}.pid" \
- --exec /usr/bin/${SVCNAME} -- \
- --config-file /etc/neutron/neutron.conf \
- --config-file /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini \
- --log-file /var/log/neutron/server.log
- eend $? "Failed to stop ${SVCNAME}"
-}
-
-#restart() {
-#
-#}
+++ /dev/null
-Defaults:neutron !requiretty
-
-neutron ALL = (root) NOPASSWD: /usr/bin/quantum-rootwrap
-
+++ /dev/null
-https://review.openstack.org/gitweb?p=openstack%2Fneutron.git;a=commitdiff;h=a52ef6ecf19b8b015465ddda2a3ca087f0e12122
-index 04dbfef..77f233a 100755 (executable)
-
-
---- a/neutron/plugins/nicira/vshield/tasks/tasks.py
-+++ b/neutron/plugins/nicira/vshield/tasks/tasks.py
-@@ -15,8 +15,6 @@
- # License for the specific language governing permissions and limitations
- # under the License.
-
--from __future__ import print_function
--
- import collections
- import uuid
-
-@@ -167,6 +165,9 @@ class TaskManager():
- # A dict to store resource -> resource's tasks
- self._tasks = {}
-
-+ # Current task being executed in main thread
-+ self._main_thread_exec_task = None
-+
- # New request event
- self._req = event.Event()
-
-@@ -311,8 +312,10 @@ class TaskManager():
- continue
-
- try:
-+ self._main_thread_exec_task = task
- self._execute(task)
- finally:
-+ self._main_thread_exec_task = None
- if task.status is None:
- # The thread is killed during _execute(). To guarantee
- # the task been aborted correctly, put it to the queue.
-@@ -348,20 +351,19 @@ class TaskManager():
- self._thread = None
-
- def has_pending_task(self):
-- if self._tasks_queue:
-- return True
--
-- if self._tasks:
-+ if self._tasks_queue or self._tasks or self._main_thread_exec_task:
- return True
--
-- return False
-+ else:
-+ return False
-
- def show_pending_tasks(self):
- for task in self._tasks_queue:
-- print(str(task))
-+ LOG.info(str(task))
- for resource, tasks in self._tasks.iteritems():
- for task in tasks:
-- print(str(task))
-+ LOG.info(str(task))
-+ if self._main_thread_exec_task:
-+ LOG.info(str(self._main_thread_exec_task))
-
- def count(self):
- count = 0
-
-
-diff --git a/neutron/tests/unit/nicira/test_edge_router.py b/neutron/tests/unit/nicira/test_edge_router.py
-
-index 41efeed..a360b71 100644 (file)
-
-
---- a/neutron/tests/unit/nicira/test_edge_router.py
-+++ b/neutron/tests/unit/nicira/test_edge_router.py
-@@ -135,7 +135,8 @@ class ServiceRouterTest(test_nicira_plugin.NiciraL3NatTest,
- def tearDown(self):
- plugin = NeutronManager.get_plugin()
- manager = plugin.vcns_driver.task_manager
-- for i in range(20):
-+ # wait max ~10 seconds for all tasks to be finished
-+ for i in range(100):
- if not manager.has_pending_task():
- break
- greenthread.sleep(0.1)
-@@ -183,8 +184,8 @@ class ServiceRouterTestCase(ServiceRouterTest, NvpRouterTestCase):
- for k, v in expected_value_1:
- self.assertEqual(router['router'][k], v)
-
-- # wait ~1 seconds for router status update
-- for i in range(2):
-+ # wait max ~10 seconds for router status update
-+ for i in range(20):
- greenthread.sleep(0.5)
- res = self._show('routers', router['router']['id'])
- if res['router']['status'] == 'ACTIVE':
-
-
-diff --git a/neutron/tests/unit/nicira/test_vcns_driver.py b/neutron/tests/unit/nicira/test_vcns_driver.py
-
-index b0d69a4..ddc0c33 100644 (file)
-
-
---- a/neutron/tests/unit/nicira/test_vcns_driver.py
-+++ b/neutron/tests/unit/nicira/test_vcns_driver.py
-@@ -253,6 +253,31 @@ class VcnsDriverTaskManagerTestCase(base.BaseTestCase):
- def test_task_manager_stop_4(self):
- self._test_task_manager_stop(False, False, 1)
-
-+ def test_task_pending_task(self):
-+ def _exec(task):
-+ task.userdata['executing'] = True
-+ while not task.userdata['tested']:
-+ greenthread.sleep(0)
-+ task.userdata['executing'] = False
-+ return TaskStatus.COMPLETED
-+
-+ userdata = {
-+ 'executing': False,
-+ 'tested': False
-+ }
-+ manager = ts.TaskManager().start(100)
-+ task = ts.Task('name', 'res', _exec, userdata=userdata)
-+ manager.add(task)
-+
-+ while not userdata['executing']:
-+ greenthread.sleep(0)
-+ self.assertTrue(manager.has_pending_task())
-+
-+ userdata['tested'] = True
-+ while userdata['executing']:
-+ greenthread.sleep(0)
-+ self.assertFalse(manager.has_pending_task())
-+
-
- class VcnsDriverTestCase(base.BaseTestCase):
-
-@@ -298,6 +323,10 @@ class VcnsDriverTestCase(base.BaseTestCase):
- self.edge_id = None
- self.result = None
-
-+ def tearDown(self):
-+ self.vcns_driver.task_manager.stop()
-+ super(VcnsDriverTestCase, self).tearDown()
-+
- def _deploy_edge(self):
- task = self.vcns_driver.deploy_edge(
- 'router-id', 'myedge', 'internal-network', {}, wait_for_exec=True)
-@@ -355,12 +384,13 @@ class VcnsDriverTestCase(base.BaseTestCase):
- self.assertTrue(jobdata.get('edge_deploy_result'))
-
- def test_deploy_edge_fail(self):
-- self.vcns_driver.deploy_edge(
-+ task1 = self.vcns_driver.deploy_edge(
- 'router-1', 'myedge', 'internal-network', {}, wait_for_exec=True)
-- task = self.vcns_driver.deploy_edge(
-+ task2 = self.vcns_driver.deploy_edge(
- 'router-2', 'myedge', 'internal-network', {}, wait_for_exec=True)
-- task.wait(TaskState.RESULT)
-- self.assertEqual(task.status, TaskStatus.ERROR)
-+ task1.wait(TaskState.RESULT)
-+ task2.wait(TaskState.RESULT)
-+ self.assertEqual(task2.status, TaskStatus.ERROR)
-
- def test_get_edge_status(self):
- self._deploy_edge()
+++ /dev/null
-diff -ur neutron-2013.2.orig/doc/source/conf.py neutron-2013.2/doc/source/conf.py
---- doc/source/conf.py 2013-10-17 22:01:20.000000000 +0800
-+++ doc/source/conf.py 2013-11-15 19:42:42.701213324 +0800
-@@ -238,12 +238,3 @@
-
- # If false, no module index is generated.
- #latex_use_modindex = True
--
--# Example configuration for intersphinx: refer to the Python standard library.
--intersphinx_mapping = {'python': ('http://docs.python.org/', None),
-- 'nova': ('http://nova.openstack.org', None),
-- 'swift': ('http://swift.openstack.org', None),
-- 'glance': ('http://glance.openstack.org', None),
-- 'horizon': ('http://horizon.openstack.org', None),
-- 'keystone': ('http://keystone.openstack.org', None),
-- }
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/neutron-2014.2.1.ebuild,v 1.1 2014/12/09 01:38:10 prometheanfire Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/neutron-2014.2.1-r1.ebuild,v 1.1 2015/01/13 03:59:07 prometheanfire Exp $
EAPI=5
PYTHON_COMPAT=( python2_7 )
dhcp? ( net-dns/dnsmasq[dhcp-tools] )"
PATCHES=(
+ "${FILESDIR}/CVE-2014-8153-juno.patch"
)
pkg_setup() {
NF_NAT_IPV4 NF_NAT NF_CONNTRACK IPTABLE_FILTER IP_TABLES X_TABLES"
if linux_config_exists; then
for module in ${CONFIG_CHECK_MODULES}; do
- linux_chkconfig_present ${module} || ewarn "${module} needs to be built as module (builtin doesn't work)"
+ linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel"
done
fi
enewgroup neutron
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/neutron-2014.2.9999.ebuild,v 1.5 2014/12/09 01:38:10 prometheanfire Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/neutron-2014.2.9999.ebuild,v 1.6 2015/01/13 03:59:07 prometheanfire Exp $
EAPI=5
PYTHON_COMPAT=( python2_7 )
NF_NAT_IPV4 NF_NAT NF_CONNTRACK IPTABLE_FILTER IP_TABLES X_TABLES"
if linux_config_exists; then
for module in ${CONFIG_CHECK_MODULES}; do
- linux_chkconfig_present ${module} || ewarn "${module} needs to be built as module (builtin doesn't work)"
+ linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel"
done
fi
enewgroup neutron
+++ /dev/null
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/neutron-2014.2.ebuild,v 1.4 2014/11/22 00:00:53 prometheanfire Exp $
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-
-inherit distutils-r1 linux-info user
-
-DESCRIPTION="A virtual network service for Openstack"
-HOMEPAGE="https://launchpad.net/neutron"
-SRC_URI="http://launchpad.net/${PN}/juno/${PV}/+download/${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="dhcp doc l3 metadata openvswitch linuxbridge server test sqlite mysql postgres"
-REQUIRED_USE="|| ( mysql postgres sqlite )"
-
-#the cliff dep is as below because it depends on pyparsing, which only has 2.7 OR 3.2, not both
-DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
- >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
- <dev-python/pbr-1.0[${PYTHON_USEDEP}]
- app-admin/sudo
- test? ( >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
- <dev-python/hacking-0.10[${PYTHON_USEDEP}]
- >=dev-python/cliff-1.7.0[${PYTHON_USEDEP}]
- >=dev-python/coverage-3.6[${PYTHON_USEDEP}]
- >=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
- >=dev-python/mock-1.0[${PYTHON_USEDEP}]
- >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
- dev-python/ordereddict[${PYTHON_USEDEP}]
- >=dev-python/requests-mock-0.4.0[${PYTHON_USEDEP}]
- >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
- !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
- <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
- >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
- >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
- >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
- >=dev-python/webtest-2.0[${PYTHON_USEDEP}]
- dev-python/configobj[${PYTHON_USEDEP}] )"
-
-RDEPEND="
- dev-python/paste[${PYTHON_USEDEP}]
- >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}]
- >=dev-python/routes-1.12.3[${PYTHON_USEDEP}]
- !~dev-python/routes-2.0[${PYTHON_USEDEP}]
- >=dev-python/anyjson-0.3.3[${PYTHON_USEDEP}]
- >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
- >=dev-python/eventlet-0.15.1[${PYTHON_USEDEP}]
- >=dev-python/greenlet-0.3.2[${PYTHON_USEDEP}]
- >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}]
- >=dev-python/requests-1.2.1[${PYTHON_USEDEP}]
- !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
- >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
- dev-python/jsonrpclib[${PYTHON_USEDEP}]
- dev-python/jinja[${PYTHON_USEDEP}]
- >=dev-python/keystonemiddleware-1.0.0[${PYTHON_USEDEP}]
- >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
- >=dev-python/python-neutronclient-2.3.6[${PYTHON_USEDEP}]
- <=dev-python/python-neutronclient-3.0.0[${PYTHON_USEDEP}]
- sqlite? (
- || (
- (
- >=dev-python/sqlalchemy-0.8.4[sqlite,${PYTHON_USEDEP}]
- <=dev-python/sqlalchemy-0.8.99[sqlite,${PYTHON_USEDEP}]
- )
- (
- >=dev-python/sqlalchemy-0.9.7[sqlite,${PYTHON_USEDEP}]
- <=dev-python/sqlalchemy-0.9.99[sqlite,${PYTHON_USEDEP}]
- )
- )
- )
- mysql? (
- dev-python/mysql-python
- || (
- (
- >=dev-python/sqlalchemy-0.8.4[${PYTHON_USEDEP}]
- <=dev-python/sqlalchemy-0.8.99[${PYTHON_USEDEP}]
- )
- (
- >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}]
- <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
- )
- )
- )
- postgres? (
- dev-python/psycopg:2
- || (
- (
- >=dev-python/sqlalchemy-0.8.4[${PYTHON_USEDEP}]
- <=dev-python/sqlalchemy-0.8.99[${PYTHON_USEDEP}]
- )
- (
- >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}]
- <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
- )
- )
- )
- >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
- >=dev-python/python-keystoneclient-0.10.0[${PYTHON_USEDEP}]
- >=dev-python/alembic-0.6.4[${PYTHON_USEDEP}]
- >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
- >=dev-python/stevedore-1.0.0[${PYTHON_USEDEP}]
- >=dev-python/oslo-config-1.4.0[${PYTHON_USEDEP}]
- >=dev-python/oslo-db-1.0.0[${PYTHON_USEDEP}]
- >=dev-python/oslo-messaging-1.4.0[${PYTHON_USEDEP}]
- >=dev-python/oslo-rootwrap-1.3.0[${PYTHON_USEDEP}]
- >=dev-python/python-novaclient-2.18.0[${PYTHON_USEDEP}]
- dev-python/pyudev[${PYTHON_USEDEP}]
- sys-apps/iproute2
- net-firewall/ipset
- openvswitch? ( net-misc/openvswitch )
- dhcp? ( net-dns/dnsmasq[dhcp-tools] )"
-
-PATCHES=(
-)
-
-pkg_setup() {
- linux-info_pkg_setup
- CONFIG_CHECK_MODULES="8021Q IP6TABLE_FILTER IP6_TABLES IPT_REJECT \
- IPTABLE_MANGLE IPT_MASQUERADE IPTABLE_NAT NF_CONNTRACK_IPV4 NF_DEFRAG_IPV4 \
- NF_NAT_IPV4 NF_NAT NF_CONNTRACK IPTABLE_FILTER IP_TABLES X_TABLES"
- if linux_config_exists; then
- for module in ${CONFIG_CHECK_MODULES}; do
- linux_chkconfig_present ${module} || ewarn "${module} needs to be built as module (builtin doesn't work)"
- done
- fi
- enewgroup neutron
- enewuser neutron -1 -1 /var/lib/neutron neutron
-}
-
-pkg_config() {
- fperms 0700 /var/log/neutron
- fowners neutron:neutron /var/log neutron
-}
-
-src_prepare() {
- #it's /bin/ip not /sbin/ip
- sed -i 's/sbin\/ip\,/bin\/ip\,/g' etc/neutron/rootwrap.d/*
- distutils-r1_src_prepare
-}
-
-python_compile_all() {
- use doc && make -C doc html
-}
-
-python_test() {
- # https://bugs.launchpad.net/neutron/+bug/1234857
- # https://bugs.launchpad.net/swift/+bug/1249727
- # https://bugs.launchpad.net/neutron/+bug/1251657
- # turn multiprocessing off, testr will use it --parallel
- local DISTUTILS_NO_PARALLEL_BUILD=1
- # Move tests out that attempt net connection, have failures
- mv $(find . -name test_ovs_tunnel.py) . || die
- sed -e 's:test_app_using_ipv6_and_ssl:_&:' \
- -e 's:test_start_random_port_with_ipv6:_&:' \
- -i neutron/tests/unit/test_wsgi.py || die
- testr init
- testr run --parallel || die "failed testsuite under python2.7"
-}
-
-python_install() {
- distutils-r1_python_install
- if use server; then
- newinitd "${FILESDIR}/neutron.initd" "neutron-server"
- newconfd "${FILESDIR}/neutron-server.confd" "neutron-server"
- dosym /etc/neutron/plugin.ini /etc/neutron/plugins/ml2/ml2_conf.ini
- fi
- if use dhcp; then
- newinitd "${FILESDIR}/neutron.initd" "neutron-dhcp-agent"
- newconfd "${FILESDIR}/neutron-dhcp-agent.confd" "neutron-dhcp-agent"
- fi
- if use l3; then
- newinitd "${FILESDIR}/neutron.initd" "neutron-l3-agent"
- newconfd "${FILESDIR}/neutron-l3-agent.confd" "neutron-l3-agent"
- fi
- if use metadata; then
- newinitd "${FILESDIR}/neutron.initd" "neutron-metadata-agent"
- newconfd "${FILESDIR}/neutron-metadata-agent.confd" "neutron-metadata-agent"
- fi
- if use openvswitch; then
- newinitd "${FILESDIR}/neutron.initd" "neutron-openvswitch-agent"
- newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-openvswitch-agent"
- newinitd "${FILESDIR}/neutron.initd" "neutron-ovs-cleanup"
- newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-ovs-cleanup"
- fi
- if use linuxbridge; then
- newinitd "${FILESDIR}/neutron.initd" "neutron-linuxbridge-agent"
- newconfd "${FILESDIR}/neutron-linuxbridge-agent.confd" "neutron-linuxbridge-agent"
- fi
- diropts -m 755 -o neutron -g neutron
- dodir /var/log/neutron /var/lib/neutron
- keepdir /etc/neutron
- insinto /etc/neutron
- insopts -m 0640 -o neutron -g neutron
-
- doins etc/*
- # stupid renames
- rm "${D}etc/neutron/quantum"
- insinto /etc/neutron
- doins -r "etc/neutron/plugins"
- insopts -m 0640 -o root -g root
- doins "etc/rootwrap.conf"
- doins -r "etc/neutron/rootwrap.d"
-
- insinto "/usr/lib64/python2.7/site-packages/neutron/db/migration/alembic_migrations/"
- doins -r "neutron/db/migration/alembic_migrations/versions"
-
- #add sudoers definitions for user neutron
- insinto /etc/sudoers.d/
- insopts -m 0440 -o root -g root
- newins "${FILESDIR}/neutron.sudoersd" neutron
-
- #remove superfluous stuff
- rm -R "${D}/usr/etc/"
-}
-
-python_install_all() {
- use doc && local HTML_DOCS=( doc/build/html/. )
- distutils-r1_python_install_all
-}
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/neutron-9999.ebuild,v 1.14 2014/08/10 20:20:58 slyfox Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-cluster/neutron/neutron-9999.ebuild,v 1.15 2015/01/13 03:59:07 prometheanfire Exp $
EAPI=5
PYTHON_COMPAT=( python2_7 )
-inherit distutils-r1 git-2 user
+inherit distutils-r1 git-2 linux-info user
DESCRIPTION="A virtual network service for Openstack"
HOMEPAGE="https://launchpad.net/neutron"
EGIT_REPO_URI="https://github.com/openstack/neutron.git"
+EGIT_BRANCH="master"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS=""
-IUSE="+dhcp doc +l3 +metadata +openvswitch +server test sqlite mysql postgres"
+IUSE="dhcp doc l3 metadata openvswitch linuxbridge server test sqlite mysql postgres"
REQUIRED_USE="|| ( mysql postgres sqlite )"
#the cliff dep is as below because it depends on pyparsing, which only has 2.7 OR 3.2, not both
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
- >=dev-python/pbr-0.6[${PYTHON_USEDEP}]
+ >=dev-python/pbr-0.8[${PYTHON_USEDEP}]
<dev-python/pbr-1.0[${PYTHON_USEDEP}]
app-admin/sudo
- test? ( >=dev-python/hacking-0.8.0[${PYTHON_USEDEP}]
- <dev-python/hacking-0.9[${PYTHON_USEDEP}]
- >=dev-python/cliff-1.4.3[${PYTHON_USEDEP}]
+ test? ( >=dev-python/hacking-0.9.2[${PYTHON_USEDEP}]
+ <dev-python/hacking-0.10[${PYTHON_USEDEP}]
+ >=dev-python/cliff-1.7.0[${PYTHON_USEDEP}]
>=dev-python/coverage-3.6[${PYTHON_USEDEP}]
>=dev-python/fixtures-0.3.14[${PYTHON_USEDEP}]
>=dev-python/mock-1.0[${PYTHON_USEDEP}]
>=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+ dev-python/ordereddict[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-0.4.0[${PYTHON_USEDEP}]
>=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}]
- <dev-python/sphinx-1.2[${PYTHON_USEDEP}]
+ !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}]
+ <dev-python/sphinx-1.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-sphinx-2.2.0[${PYTHON_USEDEP}]
>=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}]
>=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ !~dev-python/testtools-1.4.0[${PYTHON_USEDEP}]
>=dev-python/webtest-2.0[${PYTHON_USEDEP}]
dev-python/configobj[${PYTHON_USEDEP}] )"
-RDEPEND="dev-python/paste[${PYTHON_USEDEP}]
- >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}]
- >=dev-python/routes-1.12.3[${PYTHON_USEDEP}]
- >=dev-python/amqplib-0.6.1-r1[${PYTHON_USEDEP}]
- >=dev-python/anyjson-0.3.3[${PYTHON_USEDEP}]
- >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
- >=dev-python/eventlet-0.13.0[${PYTHON_USEDEP}]
- >=dev-python/greenlet-0.3.2[${PYTHON_USEDEP}]
- >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}]
- >=dev-python/requests-1.1[${PYTHON_USEDEP}]
- >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
- dev-python/jsonrpclib[${PYTHON_USEDEP}]
- dev-python/jinja[${PYTHON_USEDEP}]
- >=dev-python/kombu-2.4.8[${PYTHON_USEDEP}]
- >=dev-python/netaddr-0.7.6[${PYTHON_USEDEP}]
- >=dev-python/python-neutronclient-2.3.4[${PYTHON_USEDEP}]
- <=dev-python/python-neutronclient-3.0.0[${PYTHON_USEDEP}]
- sqlite? (
- >=dev-python/sqlalchemy-0.8.0[sqlite,${PYTHON_USEDEP}]
- !~dev-python/sqlalchemy-0.9.5[sqlite,${PYTHON_USEDEP}]
- <=dev-python/sqlalchemy-0.9.99[sqlite,${PYTHON_USEDEP}]
+RDEPEND="
+ dev-python/paste[${PYTHON_USEDEP}]
+ >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/routes-1.12.3[${PYTHON_USEDEP}]
+ !~dev-python/routes-2.0[${PYTHON_USEDEP}]
+ >=dev-python/anyjson-0.3.3[${PYTHON_USEDEP}]
+ >=dev-python/Babel-1.3[${PYTHON_USEDEP}]
+ >=dev-python/eventlet-0.15.1[${PYTHON_USEDEP}]
+ >=dev-python/greenlet-0.3.2[${PYTHON_USEDEP}]
+ >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.2.1[${PYTHON_USEDEP}]
+ !~dev-python/requests-2.4.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}]
+ dev-python/jsonrpclib[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/keystonemiddleware-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}]
+ >=dev-python/python-neutronclient-2.3.6[${PYTHON_USEDEP}]
+ <=dev-python/python-neutronclient-3.0.0[${PYTHON_USEDEP}]
+ sqlite? (
+ || (
+ (
+ >=dev-python/sqlalchemy-0.8.4[sqlite,${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.8.99[sqlite,${PYTHON_USEDEP}]
+ )
+ (
+ >=dev-python/sqlalchemy-0.9.7[sqlite,${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[sqlite,${PYTHON_USEDEP}]
+ )
)
- mysql? (
- dev-python/mysql-python
- >=dev-python/sqlalchemy-0.8.0[${PYTHON_USEDEP}]
- !~dev-python/sqlalchemy-0.9.5[${PYTHON_USEDEP}]
- <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ )
+ mysql? (
+ dev-python/mysql-python
+ || (
+ (
+ >=dev-python/sqlalchemy-0.8.4[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.8.99[${PYTHON_USEDEP}]
+ )
+ (
+ >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ )
)
- postgres? (
- dev-python/psycopg:2
- >=dev-python/sqlalchemy-0.8.0[${PYTHON_USEDEP}]
- !~dev-python/sqlalchemy-0.9.5[${PYTHON_USEDEP}]
- <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ )
+ postgres? (
+ dev-python/psycopg:2
+ || (
+ (
+ >=dev-python/sqlalchemy-0.8.4[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.8.99[${PYTHON_USEDEP}]
+ )
+ (
+ >=dev-python/sqlalchemy-0.9.7[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.9.99[${PYTHON_USEDEP}]
+ )
)
- >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
- >=dev-python/python-keystoneclient-0.7.0[${PYTHON_USEDEP}]
- >=dev-python/alembic-0.4.1[${PYTHON_USEDEP}]
- >=dev-python/six-1.5.2[${PYTHON_USEDEP}]
- >=dev-python/stevedore-0.14[${PYTHON_USEDEP}]
- >=dev-python/oslo-config-1.2.0[${PYTHON_USEDEP}]
- dev-python/oslo-rootwrap[${PYTHON_USEDEP}]
- >=dev-python/python-novaclient-2.17.0[${PYTHON_USEDEP}]
- dev-python/pyudev[${PYTHON_USEDEP}]
- sys-apps/iproute2
- openvswitch? ( net-misc/openvswitch )
- dhcp? ( net-dns/dnsmasq[dhcp-tools] )"
-
-PATCHES=( "${FILESDIR}/sphinx_mapping.patch" )
+ )
+ >=dev-python/webob-1.2.3[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-0.10.0[${PYTHON_USEDEP}]
+ >=dev-python/alembic-0.6.4[${PYTHON_USEDEP}]
+ >=dev-python/six-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-db-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-messaging-1.4.0[${PYTHON_USEDEP}]
+ !~dev-python/oslo-messaging-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-rootwrap-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/python-novaclient-2.18.0[${PYTHON_USEDEP}]
+ dev-python/pyudev[${PYTHON_USEDEP}]
+ sys-apps/iproute2
+ net-firewall/ipset
+ openvswitch? ( net-misc/openvswitch )
+ dhcp? ( net-dns/dnsmasq[dhcp-tools] )"
+
+PATCHES=(
+)
pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK_MODULES="8021Q IP6TABLE_FILTER IP6_TABLES IPT_REJECT \
+ IPTABLE_MANGLE IPT_MASQUERADE IPTABLE_NAT NF_CONNTRACK_IPV4 NF_DEFRAG_IPV4 \
+ NF_NAT_IPV4 NF_NAT NF_CONNTRACK IPTABLE_FILTER IP_TABLES X_TABLES"
+ if linux_config_exists; then
+ for module in ${CONFIG_CHECK_MODULES}; do
+ linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel"
+ done
+ fi
enewgroup neutron
enewuser neutron -1 -1 /var/lib/neutron neutron
}
python_install() {
distutils-r1_python_install
- newconfd "${FILESDIR}/neutron-confd" "neutron"
- newinitd "${FILESDIR}/neutron-initd" "neutron"
-
- use server && dosym /etc/init.d/neutron /etc/init.d/neutron-server
- use dhcp && dosym /etc/init.d/neutron /etc/init.d/neutron-dhcp-agent
- use l3 && dosym /etc/init.d/neutron /etc/init.d/neutron-l3-agent
- use metadata && dosym /etc/init.d/neutron /etc/init.d/neutron-metadata-agent
- use openvswitch && dosym /etc/init.d/neutron /etc/init.d/neutron-openvswitch-agent
-
- diropts -m 750
- dodir /var/log/neutron /var/log/neutron
- fowners neutron:neutron /var/log/neutron
+ if use server; then
+ newinitd "${FILESDIR}/neutron.initd" "neutron-server"
+ newconfd "${FILESDIR}/neutron-server.confd" "neutron-server"
+ dosym /etc/neutron/plugin.ini /etc/neutron/plugins/ml2/ml2_conf.ini
+ fi
+ if use dhcp; then
+ newinitd "${FILESDIR}/neutron.initd" "neutron-dhcp-agent"
+ newconfd "${FILESDIR}/neutron-dhcp-agent.confd" "neutron-dhcp-agent"
+ fi
+ if use l3; then
+ newinitd "${FILESDIR}/neutron.initd" "neutron-l3-agent"
+ newconfd "${FILESDIR}/neutron-l3-agent.confd" "neutron-l3-agent"
+ fi
+ if use metadata; then
+ newinitd "${FILESDIR}/neutron.initd" "neutron-metadata-agent"
+ newconfd "${FILESDIR}/neutron-metadata-agent.confd" "neutron-metadata-agent"
+ fi
+ if use openvswitch; then
+ newinitd "${FILESDIR}/neutron.initd" "neutron-openvswitch-agent"
+ newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-openvswitch-agent"
+ newinitd "${FILESDIR}/neutron.initd" "neutron-ovs-cleanup"
+ newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-ovs-cleanup"
+ fi
+ if use linuxbridge; then
+ newinitd "${FILESDIR}/neutron.initd" "neutron-linuxbridge-agent"
+ newconfd "${FILESDIR}/neutron-linuxbridge-agent.confd" "neutron-linuxbridge-agent"
+ fi
+ diropts -m 755 -o neutron -g neutron
+ dodir /var/log/neutron /var/lib/neutron
keepdir /etc/neutron
insinto /etc/neutron
+ insopts -m 0640 -o neutron -g neutron
- doins "etc/api-paste.ini"
- doins "etc/dhcp_agent.ini"
- doins "etc/l3_agent.ini"
- doins "etc/policy.json"
- doins "etc/neutron.conf"
+ doins etc/*
+ # stupid renames
+ rm "${D}etc/neutron/quantum"
+ insinto /etc/neutron
+ doins -r "etc/neutron/plugins"
+ insopts -m 0640 -o root -g root
doins "etc/rootwrap.conf"
- insinto /etc
- doins -r "etc/neutron/"
-
- #remove the etc stuff from usr...
- rm -R "${D}/usr/etc/"
+ doins -r "etc/neutron/rootwrap.d"
insinto "/usr/lib64/python2.7/site-packages/neutron/db/migration/alembic_migrations/"
doins -r "neutron/db/migration/alembic_migrations/versions"
#add sudoers definitions for user neutron
insinto /etc/sudoers.d/
- doins "${FILESDIR}/neutron-sudoers"
+ insopts -m 0440 -o root -g root
+ newins "${FILESDIR}/neutron.sudoersd" neutron
+
+ #remove superfluous stuff
+ rm -R "${D}/usr/etc/"
}
python_install_all() {