From 0766a3ace2df01e523d65e726fc3f7c0c00b4dc8 Mon Sep 17 00:00:00 2001 From: Marco Platania Date: Tue, 27 Feb 2018 16:32:25 -0500 Subject: [PATCH 1/1] Add NETCONF/RESTconf APIs to vLB Create a new directory for the vLB Manual Scale out use case (vLBMS). Add NETCONF/RESTconf APIs for configuring the vLB via ONAP. Change-Id: I06c557143d3a6d12159fc3195991cd8d49432348 Issue-ID: INT-432 Signed-off-by: Marco Platania --- .gitignore | 1 + pom.xml | 1 + scripts/.DS_Store | Bin 6148 -> 0 bytes vnfs/VES/.DS_Store | Bin 6148 -> 0 bytes vnfs/VES/code/.DS_Store | Bin 6148 -> 0 bytes vnfs/VES/code/evel_training/.DS_Store | Bin 6148 -> 0 bytes vnfs/VES/output/.DS_Store | Bin 6148 -> 0 bytes vnfs/honeycomb_plugin/.DS_Store | Bin 6148 -> 0 bytes .../sample_plugin/sample-distribution/.DS_Store | Bin 6148 -> 0 bytes .../sample-distribution/src/.DS_Store | Bin 6148 -> 0 bytes .../sample-distribution/src/main/.DS_Store | Bin 6148 -> 0 bytes .../sample-distribution/src/main/java/.DS_Store | Bin 6148 -> 0 bytes .../sample-distribution/src/main/java/io/.DS_Store | Bin 6148 -> 0 bytes .../src/main/java/io/fd/.DS_Store | Bin 6148 -> 0 bytes .../src/main/java/io/fd/honeycomb/.DS_Store | Bin 6148 -> 0 bytes .../sample_plugin/sample-plugin-api/.DS_Store | Bin 6148 -> 0 bytes .../sample_plugin/sample-plugin-api/src/.DS_Store | Bin 6148 -> 0 bytes .../sample-plugin-api/src/main/.DS_Store | Bin 6148 -> 0 bytes .../sample_plugin/sample-plugin-impl/.DS_Store | Bin 6148 -> 0 bytes vnfs/vFW/.DS_Store | Bin 8196 -> 0 bytes vnfs/vFW/pg_streams/.DS_Store | Bin 6148 -> 0 bytes vnfs/vFW/scripts/.DS_Store | Bin 6148 -> 0 bytes vnfs/vLB/DNSClient/.DS_Store | Bin 6148 -> 0 bytes vnfs/vLB/DNSClient/src/.DS_Store | Bin 6148 -> 0 bytes vnfs/vLB/DNSClient/src/main/.DS_Store | Bin 6148 -> 0 bytes vnfs/vLB/DNSClient/src/main/java/.DS_Store | Bin 6148 -> 0 bytes vnfs/vLB/DNSManager/.DS_Store | Bin 6148 -> 0 bytes vnfs/vLB/DNSManager/src/.DS_Store | Bin 6148 -> 0 bytes vnfs/vLB/DNSManager/src/main/.DS_Store | Bin 6148 -> 0 bytes vnfs/vLB/DNSManager/src/main/java/.DS_Store | Bin 6148 -> 0 bytes vnfs/vLB/dns_streams/.DS_Store | Bin 6148 -> 0 bytes vnfs/vLBMS/apis/asciidoc/Readme.adoc | 3 + vnfs/vLBMS/apis/pom.xml | 56 ++++++++ .../asciidoc/Readme.adoc | 3 + .../apis/vlb-business-vnf-onap-plugin-api/pom.xml | 75 +++++++++++ .../main/yang/vlb-business-vnf-onap-plugin.yang | 66 ++++++++++ .../asciidoc/Readme.adoc | 3 + .../apis/vlb-business-vnf-onap-plugin-impl/pom.xml | 96 ++++++++++++++ .../main/java/org/onap/vnf/vlb/CrudService.java | 64 ++++++++++ .../java/org/onap/vnf/vlb/ElementCrudService.java | 114 +++++++++++++++++ .../src/main/java/org/onap/vnf/vlb/Module.java | 66 ++++++++++ .../java/org/onap/vnf/vlb/ModuleConfiguration.java | 46 +++++++ .../org/onap/vnf/vlb/write/DnsInstanceManager.java | 142 +++++++++++++++++++++ .../org/onap/vnf/vlb/write/ElementCustomizer.java | 73 +++++++++++ .../onap/vnf/vlb/write/ModuleWriterFactory.java | 54 ++++++++ .../vlb-vnf-onap-distribution/asciidoc/Readme.adoc | 3 + vnfs/vLBMS/apis/vlb-vnf-onap-distribution/pom.xml | 103 +++++++++++++++ 47 files changed, 969 insertions(+) delete mode 100644 scripts/.DS_Store delete mode 100644 vnfs/VES/.DS_Store delete mode 100644 vnfs/VES/code/.DS_Store delete mode 100644 vnfs/VES/code/evel_training/.DS_Store delete mode 100644 vnfs/VES/output/.DS_Store delete mode 100644 vnfs/honeycomb_plugin/.DS_Store delete mode 100644 vnfs/honeycomb_plugin/sample_plugin/sample-distribution/.DS_Store delete mode 100644 vnfs/honeycomb_plugin/sample_plugin/sample-distribution/src/.DS_Store delete mode 100644 vnfs/honeycomb_plugin/sample_plugin/sample-distribution/src/main/.DS_Store delete mode 100644 vnfs/honeycomb_plugin/sample_plugin/sample-distribution/src/main/java/.DS_Store delete mode 100644 vnfs/honeycomb_plugin/sample_plugin/sample-distribution/src/main/java/io/.DS_Store delete mode 100644 vnfs/honeycomb_plugin/sample_plugin/sample-distribution/src/main/java/io/fd/.DS_Store delete mode 100644 vnfs/honeycomb_plugin/sample_plugin/sample-distribution/src/main/java/io/fd/honeycomb/.DS_Store delete mode 100644 vnfs/honeycomb_plugin/sample_plugin/sample-plugin-api/.DS_Store delete mode 100644 vnfs/honeycomb_plugin/sample_plugin/sample-plugin-api/src/.DS_Store delete mode 100644 vnfs/honeycomb_plugin/sample_plugin/sample-plugin-api/src/main/.DS_Store delete mode 100644 vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/.DS_Store delete mode 100644 vnfs/vFW/.DS_Store delete mode 100644 vnfs/vFW/pg_streams/.DS_Store delete mode 100644 vnfs/vFW/scripts/.DS_Store delete mode 100644 vnfs/vLB/DNSClient/.DS_Store delete mode 100644 vnfs/vLB/DNSClient/src/.DS_Store delete mode 100644 vnfs/vLB/DNSClient/src/main/.DS_Store delete mode 100644 vnfs/vLB/DNSClient/src/main/java/.DS_Store delete mode 100644 vnfs/vLB/DNSManager/.DS_Store delete mode 100644 vnfs/vLB/DNSManager/src/.DS_Store delete mode 100644 vnfs/vLB/DNSManager/src/main/.DS_Store delete mode 100644 vnfs/vLB/DNSManager/src/main/java/.DS_Store delete mode 100644 vnfs/vLB/dns_streams/.DS_Store create mode 100644 vnfs/vLBMS/apis/asciidoc/Readme.adoc create mode 100755 vnfs/vLBMS/apis/pom.xml create mode 100644 vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-api/asciidoc/Readme.adoc create mode 100644 vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-api/pom.xml create mode 100644 vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-api/src/main/yang/vlb-business-vnf-onap-plugin.yang create mode 100644 vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/asciidoc/Readme.adoc create mode 100644 vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/pom.xml create mode 100644 vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/CrudService.java create mode 100644 vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/ElementCrudService.java create mode 100644 vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/Module.java create mode 100644 vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/ModuleConfiguration.java create mode 100644 vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/write/DnsInstanceManager.java create mode 100644 vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/write/ElementCustomizer.java create mode 100644 vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/write/ModuleWriterFactory.java create mode 100644 vnfs/vLBMS/apis/vlb-vnf-onap-distribution/asciidoc/Readme.adoc create mode 100644 vnfs/vLBMS/apis/vlb-vnf-onap-distribution/pom.xml diff --git a/.gitignore b/.gitignore index 93fc263e..bd5fd821 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /.project /.pydevproject .*.sw? +.DS_Store \ No newline at end of file diff --git a/pom.xml b/pom.xml index dc3d7d2a..1ce01a40 100755 --- a/pom.xml +++ b/pom.xml @@ -52,6 +52,7 @@ vnfs/VESreporting_vLB5.0 vnfs/VESreporting_vFW5.0 vnfs/vCPE/kea-sdnc-notify-mod + vnfs/vLBMS/apis diff --git a/scripts/.DS_Store b/scripts/.DS_Store deleted file mode 100644 index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0mY|@YZ`L%vg}w0c(jbQWHvU9z*r%+6GjO5(9?cK zyRG{lWBU*LDZA}GNhu9!j~(lHPdt53Pwz?gCnH&mG2Sbp7Go}B%mGEL)SC6BVvSljC1x0N1X@6oZvxW2|qj-|ujo$SiL*fAPvjb+h)wsc&s# zad)=P{E?dZd5{-bFPOa7Eg8k3wFf~yTH0@wN^a~RJeKin=`3J&|do zW<6D;QFiK^@lIrvkB08k!6cqS>L5ttW0}cNCNlr%)UgcR{rSAzZ8b!z`(n`$^G>JP z5C<<07Yp~oah^SIzdCw1UVOT|`uyeV^|$Xo%t~ljMsZqDNeY2p_8RcPt?lNjy6G`sP)I0Aa3v(-1+g-cY!i$@hn(^m zP22Q8O7jo-l-xSAyDm=L^wfl;?1-5+yF0Uso}^t30I>ETdJW(LfP+d{siOIV&^YOw zESR1OB2#m8Aprp)WDv|n+YZZsW#FMPK;P~&h+&AD!0h*%!Erds`(cuX7;_c&6OkA7 z`XyUftUP(T-qLXRP?&;%T5*#F|`xOcvs{i6p1K~on^YZ?)rG# zXtZj)(W*~se7w0?ukmK%?PTJfIL@n$*1PSG{mJR)voBx2oqzxFQ$G=g8<>(+gHyOb z=T?G-ekPMt9$^gSKc6A8P@A9ti5sGXqen~Sn-)^pZ2l`M|3c9XGN%u~;$1OdUU_Hb zt`@NKS_UiwkCp-2A2=$ZXRy?$whlC^1VE(U2qoxKEkQZlpl7huh$ARWry}Z9W=agE z)3KkMIL~0IQKthl#RoGhGgF~3wK~qvRX8wDqqUX+%fNL87Io95^Z&!`_5bxG+p-K; z2L3AsSY^xKYU3@Lvvuy~=&a?apHN9CuGFYf(3s;`Idl}Sqbk8MP7b1Hu+)e>DE3D{ M(O`{b;9eQ{1=(N4YXATM diff --git a/vnfs/VES/code/evel_training/.DS_Store b/vnfs/VES/code/evel_training/.DS_Store deleted file mode 100644 index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0ry44$>o6kGC&_tkbraTfOiMQd?de?#Wd8GLqR3tBj>>uMCHq+qH_QZGRqB#Bgh? zS`i!T_0h=wX<4gln_qVhx}%HBU%&rcUEkc^>6PH{(JJ|5a18fgOptQs_TngsPr*OV z8OIV51H=F^@BtYxTbZ@+0iT^7nHV4jUY7yf9|S0(V=&jKwhpN9_YwO`h$vv=T>?=U zbPVPip$CNPR6w1|%@u>|bnpuk=NQa2>U74{%rK6bnVTC5SF?j(sBp#|jZ_l@#K0s2 zMcuUV{Qv&%`~PGTwTJ;?;J;#kmzr*~0k34v)~T1nvsQqffTCbruJJhq40RMkEFQ%x bpi00m&;WD{<{H5RLO%kE2C9gGH)Y@nR2*Yp diff --git a/vnfs/honeycomb_plugin/.DS_Store b/vnfs/honeycomb_plugin/.DS_Store deleted file mode 100644 index 102e7ce10608685d64427217df9dd3883ee6ce1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK&1%~~5T141L{2Cuv?YaJ_8RcPp=nKSs*@fA29=o71Xn^LUQi@s$uY$kbjT@> z(VryG5!#37oAlV3-L;e8q{r5jnPv8yot@d0z7@M#01&NVv<2V-fP+d{sbO`GP(SIM zRIG?bNO8jYW# zvQ&MvyyDbW*QmJbt4Dq>8~H_04D(hn_@G-VibHF+gQ7RJ-(^`cvxD$J#iOqKbT>pp7_;!{j*2WfnuauupX6`!0Mm9D!n9yfRD za;vd3smpP**{I9ym#-%i_snr#Y`%K4|Gqyt|NQ0aw~NcG>+fb+1b)F-j14>bP3 z(5XL2lPo>PsObpPOh#sa8DIt$l>xh7Ictmhfc#v{05kB<7@++@q7r%*OM`mrz>0n! zslQ4{f;QbH2&F~OVrdY2P=rZEG^xT~F@#A+zqE0l#nPZj2cc)iaqP^(-cW>|9sN>= zgYXP;%?vODcNthRO_$F9w-4X{?l8AH^6;NAYu1E$EkIAbJ){gXlrw9|27RSIod)W#BiD*lBeD diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-distribution/.DS_Store b/vnfs/honeycomb_plugin/sample_plugin/sample-distribution/.DS_Store deleted file mode 100644 index 935eda939228f3c4f9288c0de32373610f39ac88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKPixyS6qk~$b=r$dS19bF>mUc0bW4wJmL3NImzJ`Q%%066Fm|w=m=Xd$^wf{h z{rw(e{SNymyY)RuE-l$^V>IJE^YnXqdQY-`GLpp@Hbb-Sd2&Z&M=E+kUI2}=tSl+kg+T-tTsL)dv`wXItLxm-FFrpG4J)9j@a+M zTrBKM%X;?w#o_C-$>Qqz5Qw9p&v6cH#ZcnMhCx8;f%W)sU!x7frkt~Ov#+BOOwO1R)D?(MZvgA<6R0E>L`X-Jc@Tgm4IKM W0q7d6G=c|&egqT^R1gFIl!04-#$yTq diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-distribution/src/.DS_Store b/vnfs/honeycomb_plugin/sample_plugin/sample-distribution/src/.DS_Store deleted file mode 100644 index 6816049ec11ae8d40091de81fe3cfa751b017168..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}(Pm5VlK~P1{QlAR%$_6{&};+69iGut%gyS%DC&N}@#6Qb?*Mr9xGu960S` z>@Gj=vD$qH9)%k-wp&qkIf5266OF&|c*c%DM|R8@Dp34GupMJ7+$VEP1+qK`)kB?l||nv{3%A_|d9VYxvkp z)o)%m9eTN+53-iuKUOsvMuD;0e%_tfU(+<6+J0~#qhZHh*-ew&mr2xrl6rC|lQ12& z(m@htC!X%_P=?ePvne8=rUfk9yr_CU%FPvn>vZr76XzN%H0pH5)yU9~8JU|K3Rk0pU#M`#U5!){1H`~A0}Hxp zV!Z diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-distribution/src/main/.DS_Store b/vnfs/honeycomb_plugin/sample_plugin/sample-distribution/src/main/.DS_Store deleted file mode 100644 index 7db2c2e3ebdf4b699b81b681b1d25d610907704c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKL2KJE6qXWib=r%|RtW5(Yas`ZbWM+5)*c4|kCxGn%*JL>F?NWZm=O#<^wgix zZSDTY*#5(Q%5Hm4QbJ3%W6Lt$Gf&^s(|eNj$w(GsjQ6L}bH*ITm<@{9XhHD@!FJRY zX&4V8$3DU`ABRa6LjBiDG&%l725{{xcFqDeW5Mn93&)Af3)lV08%^uc;|;sDxrL9j zz4^``Wu;#P#We2+lT%fbQ5+h35EP?@{U*zjr5%LFGA@VC(^pwq1Tu{$w^GkeWEy2< zKbxjee&*}`PGnS!hR)7l63-xY5Tx<3%w;GOS$wox_za!)eBN~rI-+V;Tb79-hc3-@F{dQbkUVZxf<@)C9x9@rtIDD{5o)}!f4=|R5%=}53Wa$U+E#en( zgv0pT&;Qk;$5j}&oMzwW7fxnN~ZXu$8jduw|VbC*J zYlIdMu2TVZDmPaQuG7IUOq^%1)~M4NS0h6|W@K(|C|r#Wexbq{_cT&T3=ji%8EERN zgXjOz-|zo-lc+`v5Ci`e1Kc|F5Bo4BbGEKb4$oQv`W_So<7$n|6fo3L46%3=w?UPF YU!Vc#8LTye2ZVkE6b)1m0}sl;Z?J=7#{d8T diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-distribution/src/main/java/.DS_Store b/vnfs/honeycomb_plugin/sample_plugin/sample-distribution/src/main/java/.DS_Store deleted file mode 100644 index 0645048616effc9e2140dc489ff927afe312c7f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKPfH^)6i;e(r+S%17X&Z4F7z-`|Lk$Lx<{cf(ju$W8D_A7VNyC%%Tfw+*wcQD z-F4URA^IKsDBgT8NkysNM5MeIUVbkx?@aG}WYl%n_Ec7cGD`-JQja?_i`A&9hFP2+ z2WGsEjEi2^{nQ#H=aAY8v!pF^8Oc-@Kb#ttuDd=SH@q)((b)1Pbur%E_3C1)u``*t zKOJY|^Y+(+qyFUA?>~Pp{{6qax;8t&;bYaZYHm(PKb|KJ_^>^ zlJOvN93zO+0PLT^B$hkTVNa$hFVbR%^*kV%-%JLxP5 zv!SQQ8^|ypkL<(VG`fV;o}Wa0naM!LGXG>%v5f4-V$pJ5H$|)MESq9+eC#wuyY*_h zw684d`O(Xh^NY#y`sViT{^9eNuix|zaQIl2JTU*#jS^_aZ4E$XN@O%)Uh_1mxqdGdE!rw>iuOOm;jc*A=VbC>LXoMaR zu2TVZDmPCIuG7IUOq^@5(5TZHS2M#nW@c_)C|u1Bexbq{cQsN?3=jj`43u@##{2*5 z&+q^3Bx(@@#K2xLz$;y^+kqvSyLD%Ac-IQh_n;^kS7=(vT4(!vrUhM1($@9l&xKxuE4dHwKq#x7JTTb zkJ0AuJxcNpd6e8bBWXjzrq|Gv88P}sqZ!HmWF!j!M0cFN1n>dCLnUmqu)0I2pL9VQ z&O<277>Do$G<<_3nJh%J<6mTe)~*EuT(tr+xUqiaFv)d-y;sRFS7j9hm!h%MeDwH< z*IHho;y+#f6b3zU;T$f|xPzL5XjJ67 z_=>&r%y|YQGr$Zm0}q4&w|#jl59E3IF_{5o;Qkn({XwD3X2x;c%);GJgqa=v(u9KuEpp8a zFax(4Sh7u@&i{9RzyIG(;ubT&4E$FNh~{>*-NjdOXY0bt(OD}|KckXRTy60>1r2i) gV=NuTtEfiMFUdd*9o81ngTg-oh6b*ffqP}(50{x{v;Y7A diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-distribution/src/main/java/io/fd/honeycomb/.DS_Store b/vnfs/honeycomb_plugin/sample_plugin/sample-distribution/src/main/java/io/fd/honeycomb/.DS_Store deleted file mode 100644 index 70a476229b9ecadc9565890d4b5659252208f21f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKPfO%56i>#{?dYZA3WAqhg*jBlRgZOakHSC~MO4O?mYqOphPE@qG7R+K$&ayr z-2EP+-(f$BH{VM#qRj49RNf0Ozn7QylJ=L9G>kFc9>klBxr{Lf6tUKT>K}srs54Tt z9z?Fk$eCmzOQTWIpNS^NYh(b|&S51RfGYN6{i0Mw(03p8Q(2Ur_m|h^>hlX9oW|l3 z7I%5^Jm{%WP=@88XovZ!Zpk=_tlbIA-qil0RQhO#(UD9>UH9X@%F0k?N&Y1D>{w>8 z8nx9Ri;J_sjCU;Kve$K2J9#pM)J~WsN3xKSOlA4aX<+HPYvXat+ii;0mN#jN@y?Fd z6kDzB$;7>Mob`=Qdxt0e$<_BCKYv~S{&RC{R)fQbt7XOF6z;&7A!ZolS*o(H&^OJS z#uE|)!~ikyh8VD0n6vbTo|zt%7$62-h5_6k1Sq0!u`;N)4yf?=5&P?iC}87V0#R7> zEmj7h2ZWncK$FVt6@!~}@CzH~TdWM4bjJ0}Fpiy>+Zzhkvx8sgaK?RuR1*Wlz;g!X zOw+~l|MUOv|Id@CMGO!F?}`ClKL`%m@JjYmUc0bW4wJmL3NImzJ`Q%%066Fm|w=m=Xd$^wf{h z{rw(e{SNymyY)RuE-l$^V>IJE^YnXqdQY-`GLpp@Hbb-Sd2&Z&M=E+kUI2}=tSl+kg+T-tTsL)dv`wXItLxm-FFrpG4J)9j@a+M zTrBKM%X;?w#o_C-$>Qqz5Qw9p&v6cH#ZcnMhCx8;f%W)sU!x7frkt~Ov#+BOOwO1R)D?(MZvgA<6R0E>L`X-Jc@Tgm4IKM W0q7d6G=c|&egqT^R1gFIl!04-#$yTq diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-api/src/.DS_Store b/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-api/src/.DS_Store deleted file mode 100644 index 6816049ec11ae8d40091de81fe3cfa751b017168..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}(Pm5VlK~P1{QlAR%$_6{&};+69iGut%gyS%DC&N}@#6Qb?*Mr9xGu960S` z>@Gj=vD$qH9)%k-wp&qkIf5266OF&|c*c%DM|R8@Dp34GupMJ7+$VEP1+qK`)kB?l||nv{3%A_|d9VYxvkp z)o)%m9eTN+53-iuKUOsvMuD;0e%_tfU(+<6+J0~#qhZHh*-ew&mr2xrl6rC|lQ12& z(m@htC!X%_P=?ePvne8=rUfk9yr_CU%FPvn>vZr76XzN%H0pH5)yU9~8JU|K3Rk0pU#M`#U5!){1H`~A0}Hxp zV!Z diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-api/src/main/.DS_Store b/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-api/src/main/.DS_Store deleted file mode 100644 index 45c9ff180d165d4a974f7105302afbfe04583a06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKPfP1S5Z|r!y;Lue=L5mZUWFba_1`g8Jqm@0A}Tc@!7hZPG^s^OAqP)>jQ9Na zJw(5QAH|z9yW65vkBZ7nnElPp&g^D?8+NmdF<$S6i;UTfF$)y2RDt3R!FJR!DH#tU z$3B8y)(+w{fcn!|G&#N^1Gsi&cE)^`u#=bT7qnxU<&N{nOB3bEU%#!&)HFW!%+!(B zN_$@J=iRLCcMeodhEZVbhM%{F_D-6{Bij#lWz=ihvm0rW`!b0-FH#TpWD=&mdfH9G z?9kKw?a452HSNERPIL;X4L^x?WhMg|%lyo$;M26{`u&=-Ru#1+XHXUW)m5h|mTD`5 zfqiaS^9#%C+xzXo#lQcTSJyYUclUY~IDD{5{ums>0~jMhPQ6YNr^yNUhVjEVLSldz zAO^lM17=IJroZtV=+%hQ=i_=O5*+|@`WF+dEwW?({BZ9MmUc0bW4wJmL3NImzJ`Q%%066Fm|w=m=Xd$^wf{h z{rw(e{SNymyY)RuE-l$^V>IJE^YnXqdQY-`GLpp@Hbb-Sd2&Z&M=E+kUI2}=tSl+kg+T-tTsL)dv`wXItLxm-FFrpG4J)9j@a+M zTrBKM%X;?w#o_C-$>Qqz5Qw9p&v6cH#ZcnMhCx8;f%W)sU!x7frkt~Ov#+BOOwO1R)D?(MZvgA<6R0E>L`X-Jc@Tgm4IKM W0q7d6G=c|&egqT^R1gFIl!04-#$yTq diff --git a/vnfs/vFW/.DS_Store b/vnfs/vFW/.DS_Store deleted file mode 100644 index d5659b63221fb40fd2bc3696fe306e20254c01e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHMO>YxN7=9;&#tCh+A#pxL4=Zvg6%k4x5OF{;Ca8@Niix9;C`rwJOq>zxoz?C* zA+aL)&{Gdc{D5A{M|Q4X+13(6=MC$}L2NXFj>%P*F_VgeU={Rmncf?$Zb&Z-1MALz!E0Z)sA!>Ex*~%SAPNQj!0!D%T z3dr2O2O=m#33K+Q{N3G3A~)bJj{oCE0ZYXA_-oQ}tn>IMU77Bl6Y^vA^{f>)_*PLk zqMGELctw31Vz%?EUhlMn5qORU%q0hJSyc+t+YEjR3 zoB3j+WMvC6-9&1^3F#tBn9Bktwlm%GQ?iC?wW-Tv_Qd$*-7&j1H8nnFPhPmRyK8-y z$(;J?;?1Ut! zT74(``v&^5+3es@c6emuRLSah9q(>AmixNK10LstDqShZ%r8cc$HMZGp!YU7ndZ0G0>`DnT$txV@QU=5vw1vB56}`rTkd6a z`Y$c)XzoVCIHL^Ua^mRddG@>7HXIr~ zGP+ts3Ca^ik5?kiJV>?*pPBKi!UK5q;@!D}J^Uj)qK%_gX*tkMKgXCxfwocLnBM8I z%>S<+{{Fvh^e`JW3bdmFq;sY?lgFJmo|sxikh!*v^$u29q+ea5qF|%aaYU7lBYyb9 g5N#V>B`23+T_g5j`QKjz;G>+m|10TD)5Z$?2jT;4F#rGn diff --git a/vnfs/vFW/pg_streams/.DS_Store b/vnfs/vFW/pg_streams/.DS_Store deleted file mode 100644 index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0ju^f%c`n|tPOLd3I?Yky6(h`e%^R()VjmTdxx3`7 zt+B)q+w+(4euj6(38r{PforVrbe9*|I4{QJB_B1@;hp16d2{BRl08DsYsmGmq?fI7 zTxgCLax*NLrNkqn^lz6eXPRZDoW+jZ6LMt@Z;zqP=ugRO_PY(UN9I>w+qB=uwPbxV z1x$gzqX748vEFe&i>81nU_T& z3shpDx_HEJfzEm#+och!fPoGd4<9bR*~Jrz)3-Cf*XD3(K#Qh;DNtA7AlxRh|KI+6 z{;!kl&J-{O{*?l*JGdY8Ii$F^HU=kqt*1ZG#iU&oa6@51w_>)Ht@w(r#(FOWVj8gu R$Qqjc2&fDeOo3lj;1d(Aumu1B diff --git a/vnfs/vLB/DNSClient/.DS_Store b/vnfs/vLB/DNSClient/.DS_Store deleted file mode 100644 index 210fb02d827d3971a459688aefaa766c31d84e7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK!EVz)5Zz4zb=r#&RI0?qCnTgC5=z^v3E|KKQdFZ>h@xP}RY z6Q5CN;Xe?30T&Kj`3Fv6W_MCjgRvyAn37x^z?iOA}j_yd%c@Q$3X4+NwhC=5r|k6Z>>6B zJ$qv^d9=ONa9YjHX~UW9>@*wBeB(8IsyRJAgm00 zJWC+QA#@2#jgSH3nhL0?oQ@b=(;@Cqol971)O5z_@WJWMoK7fQ-5ut4R5|0WM$;Pw zi~^SxsOq7O`~S16&;OT6W@HpF3fw3Kc&+1g+VD!Ww=TUL?zIlIH_*_quGDxz0Y`1c hP>Wmf1~g?5chCWJ2}_L-0W*IDlnkab3j9+AegpWKjWYlM diff --git a/vnfs/vLB/DNSClient/src/.DS_Store b/vnfs/vLB/DNSClient/src/.DS_Store deleted file mode 100644 index dba6f68401ec0a77df06b1210d83c6ddd69b6228..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKPjAyO6t}y=((MuiNRznaiqu2P{#~z4GxOY`HU_KKp`D_2agYWdW67?cwTrkd3v(LYR zG!|LjX#C`rrRtr#%T{e=6(9TF%4@GL$6oH|qpal*U#XD@qrm7LKkv`<7gENh?gx7! z8h7mnPi2z(B8i4`sR#Qa3FWvYM@g6+czV8l5$64_{jf8Pjv%$;C()kBL?B|3zq4xi zbnUgt=!-c-Izj)3gZSKU-Y?UreGAF+dFbR}AoK+iSPrmCW6G>E-aQb)db4hJta0#xeyIbrnM_ eUd3zBlz`nq1<*BEXaoxgeF!KTs3Qh$lz~6ZHimBi diff --git a/vnfs/vLB/DNSClient/src/main/.DS_Store b/vnfs/vLB/DNSClient/src/main/.DS_Store deleted file mode 100644 index 9206bc712e8894c02a6e6ead66f6eb94e1c5257a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKPjAyO6t}y=((MuiNRznaiqu2P*mliIIUs>lDN`rJpd?MS8l`d6q^(d@DTkf* zG5G%#c1G|CxbRUp!F#qFwHnoK2*G=i{d@L%&#r&2Y(K^rZ;ityV>V;Vf`VA7LG>F! zJC;jQF+H1r9LIPR%YG2c0NOYp$=}Za?p>9=Vm_NNe|7(O6>N`xDp3n5{eo$hntlEe zq_N2IM&moLY*epZ-?VC5+xXcxww`+fIrVZsA7?Fp^h~ux7zIY}`1xR=A4wUPx*v2! zH0{~99>^s3MG}pcLQjrG63S^yj*~Du@$`7dBFqOp`*vp(O(3-6Cs9{qA`r32Ut2Z& zdiKt2c5i>L?lc>_^SU!TIB3+J`@8$|xqW6?ckb>TK6#qX&)>X#_x{7jPoKZ&z2or5 zR&vwe0=|M$5)z*_y}lf#3*)kFDBJCDoc9^~cJZRCJj%GC4AL-YAJ>atfm@ ze&5p6q!I(f05NbC1Lo+kwy$y|J25~E{C5oC`QSi7bPX07)zJZ!N&x`zsi*{W_4EgH zumjLFSZIVE5UxW3btpF}1~-`l*WqAyjent0hcm8bhH=cy++--+Bp%#R?u@${sU`-9 zfmH@JbkoNB|Ka-le>I3&!~ikyPcgu&ZLi&eC7HYR(&F&0b)dY2f`Wd9#xevHbrpjz fUd205lt90O3ZQGS&Y5PhR50-{`*a({u~KUm@^*x2L`n5czv7!b9-E{f(iO4MFgBf6AK6J{6vftf#yh^C@p4psIHBANw7AEDzkU8I zmRxIj*R3B{-Fn5kW;-xj@Eo^fU!%hd*>CvZ&VOSb{y&*b1yX@jAQeajj$HxvY_;i` zW5!e<6-Whs6wvQOp)1zF-qAiC40?Rm`H7+$pY1L|EHSQuy(4F6;#8tjC9W9abmmLc z)xh4-=@8qQ>%`6yHx#kmnJ-ojsg4;_fmC3qz^M-#?f*CQU+(`yQjSuARN$x-kV(5} z=X|B;t)rLIUR&r7^qsNR${7ZS01mVj&-UtyKC`X{_Krqp-sr?U2&gV;slb0I@C|7- BIdcF2 diff --git a/vnfs/vLB/DNSManager/.DS_Store b/vnfs/vLB/DNSManager/.DS_Store deleted file mode 100644 index cc896b07397124949a1a47b26ca3517c720f1e51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKL2uJA6t>&K((MuiNRznaiqu1J?6lj8^$) zm?fepUH3b$)f=~NuUO61HGJ$ltFQf$ocd)@PKs`jzfvs`#Uc6qpd2my7g8qYeh}`8 zcsj7}J(X!0h&0YGQ1|yl8p&x_PSU8@_w{&tA}U7%`+h%<4}sbb(s)-CA{2=z-&#$4 z2KM@F)_&4yIc?XSx13q0C- z1Bfhsl^W7iMggOMQQ$fX&_-gdU59KqMggP1jaC5n2L}qGM_6f8TL)C?3IN!Eurlz~ z$3LKh0YHzi(g+bSuBm{U%IS*1>F&Ta9r7OauQX~pY4!xPv4TaOygFC7_$W)5i0E`|A7uGRd@z0!D!wr2udA{9YHPL}%-z$>CY+KzRcN4f|CZ&ne)j iqZs<)QM?XC8N?lQ06oG=BSgT=hk%m7R7Qb+s=#j+2!s;= diff --git a/vnfs/vLB/DNSManager/src/.DS_Store b/vnfs/vLB/DNSManager/src/.DS_Store deleted file mode 100644 index 201b6cf39a4f0f9ee37d9c7cd0241c3a1526cb0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKPm9w)6rbr10xy0PPx{`>G_cPrkdeAkuiUl6u@1X(VSIIZdPd*w^#*MO2Ii_U+yzK84g?kj6(M7okW*ab`8} z8Q6RCdFw&D>9kyT(RAkRw%c^>w(c($_AATUzjN>5lV{oD^_%mz@7`a0`20oh9fv=* zlA8vX@D-GbkmTgRAIfpIbgufwvfGWO#gMUYpN1b*M3py|(MDf3+C1l}KS>jrp1^F& z-?y?fsl)&=Knz^PfH^v>-Kzr0PYe(P{~ZH(J~+@2J%go2b#y?dN&vt*n3aI8KK%h5 zGyr-AOO0Rw;W`yir*czba8o&OoeqA_#FrX%I^$|(n8&QlO@+cu;lUjh&bX(MdSZYW zSZ82M4{f~vA8oGx*OO>O3=jkV6a&28^}8K-C3Cl4dO5sn9cVA1pfW9|DR7>WG0q%D^wZwuagO diff --git a/vnfs/vLB/DNSManager/src/main/.DS_Store b/vnfs/vLB/DNSManager/src/main/.DS_Store deleted file mode 100644 index d0f5e8528368081659a1bb841bc55cc0687f8e8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKKX21O6u(OYb=t)UkSeiwMatkRK*Z*TbYMV=WYh{#6zte)4mmz6b`qf|l7~(V zd;%u^e+3p61fPI~kHQ4+-CeAd5_Lle-m~t0@7|xg_;=BrA7hMnCebcqHe<|!hFEJr z_ZvY!wlh*QmQ6s8bKFhjAWUQkW1NuW?`Ht_uFjsYfK6HO%l^Fp-}4_z)QePc;VjS0 zK7S9hMC66*e&e-``h|;|R%2@$AN$hQBY!Aoei0Otyc3Kcs*#A|(CEFO7%uhuQYMui zga;y?_3bNnWLg9wjmImgM~5Pfq_Rf6Xy4`L%E!SN%oq4331H{08#{ixW4m3p1V5w0Z9nh%~0I&{bC7`QM ze?SKffS$opBUnJVP6gDd+>{vHR1RFHgWogprAD33xLO(JF)MRZp>R`pa7TqR?rEf+ z7$62tGq9nDHs1gH>+Ap1Ni-q`h=G5K0bcL=-448xxm(Y?9Nx7Kw8zj;Fs{^CrGTQY hVu;17cn6viusf&#dIn34U;&{I0Yw9K#K0eA;3rddhXeos diff --git a/vnfs/vLB/DNSManager/src/main/java/.DS_Store b/vnfs/vLB/DNSManager/src/main/java/.DS_Store deleted file mode 100644 index 097132be6b9586b494b525a988cdc7a6f6bf4d98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%Sr=55UkN00wU~DZ}SC$f3Sp&;6X3@172UR+r6#o3{TXzSX{0)x7}*fF}wO0h%NFM7p&P@&h}54yU0<@DHsR_f`MRQ zzZl?|EtwuUMjs3W1Hr&I1KJ-lo3Jj}JKEO4PS^ArrSpHzUuN`?KTL_Q zU?3RSGX~P6X`2}rRnFF5%hOq#*>2b*itD9Ns1Ggy{LnsfVovvG>5Quj_KvC|yQLH3 NB4C6>7YzIZ1D}?$J(U0e diff --git a/vnfs/vLB/dns_streams/.DS_Store b/vnfs/vLB/dns_streams/.DS_Store deleted file mode 100644 index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 + + + + demo-aggregator + 1.2.0-SNAPSHOT + org.onap.demo.vnf + ../../../pom.xml + + + org.onap.vnf.vlb + vlb-business-vnf-onap-plugin-aggregator + 1.2.0-SNAPSHOT + vlb-business-vnf-onap-plugin-aggregator + pom + 4.0.0 + + + vlb-business-vnf-onap-plugin-api + vlb-business-vnf-onap-plugin-impl + vlb-vnf-onap-distribution + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + org.apache.maven.plugins + maven-install-plugin + + true + + + + + diff --git a/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-api/asciidoc/Readme.adoc b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-api/asciidoc/Readme.adoc new file mode 100644 index 00000000..84ed862b --- /dev/null +++ b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-api/asciidoc/Readme.adoc @@ -0,0 +1,3 @@ += vlb-business-vnf-onap-plugin-api + +Overview of vlb-business-vnf-onap-plugin-api \ No newline at end of file diff --git a/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-api/pom.xml b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-api/pom.xml new file mode 100644 index 00000000..dd6c5972 --- /dev/null +++ b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-api/pom.xml @@ -0,0 +1,75 @@ + + + + + io.fd.honeycomb.common + api-parent + 1.17.07 + + + 4.0.0 + org.onap.vnf.vlb + vlb-business-vnf-onap-plugin-api + vlb-business-vnf-onap-plugin-api + bundle + + + + org.opendaylight.mdsal.model + iana-if-type-2014-05-08 + + + org.opendaylight.mdsal.model + ietf-yang-types-20130715 + + + org.opendaylight.mdsal.model + ietf-interfaces + + + org.opendaylight.mdsal.model + ietf-inet-types-2013-07-15 + + + org.opendaylight.mdsal.model + yang-ext + + + + + + + org.codehaus.mojo + exec-maven-plugin + + + none + + + + true + + + + maven-checkstyle-plugin + + true + + + + + + diff --git a/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-api/src/main/yang/vlb-business-vnf-onap-plugin.yang b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-api/src/main/yang/vlb-business-vnf-onap-plugin.yang new file mode 100644 index 00000000..229ad7a3 --- /dev/null +++ b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-api/src/main/yang/vlb-business-vnf-onap-plugin.yang @@ -0,0 +1,66 @@ +module vlb-business-vnf-onap-plugin { + + yang-version 1; + namespace "urn:opendaylight:params:xml:ns:yang:vlb-business-vnf-onap-plugin"; + prefix "vlb-business-vnf-onap-plugin"; + + description + "This YANG module defines the generic configuration and + operational data for vlb-business-vnf-onap-plugin in VPP"; + + revision "2016-09-18" { + description "Initial revision of vlb-business-vnf-onap-plugin model"; + } + + container vlb-business-vnf-onap-plugin { + uses vlb-business-vnf-onap-plugin-params; + description "Configuration data of vlb-business-vnf-onap-plugin in Honeycomb"; + + // READ + // curl -u admin:admin http://localhost:8181/restconf/config/vlb-business-vnf-onap-plugin:vlb-business-vnf-onap-plugin + + // WRITE + // curl http://localhost:8181/restconf/operational/vlb-business-vnf-onap-plugin:vlb-business-vnf-onap-plugin + + } + + container vlb-business-vnf-onap-plugin-state { + config false; + uses vlb-business-vnf-onap-plugin-params; + description "Operational data of vlb-business-vnf-onap-plugin persisted in VPP"; + + // READ + // curl -u admin:admin http://localhost:8181/restconf/operational/vlb-business-vnf-onap-plugin:vlb-business-vnf-onap-plugin-state + } + +// grouping vlb-business-vnf-onap-plugin-params { +// list element { +// +// key id; +// leaf id { +// type uint32; +// } +// +// leaf description { +// type string; +// } +// } +// } + + + grouping vlb-business-vnf-onap-plugin-params { + container vdns-instances { + list vdns-instance { + + key ip-addr; + leaf ip-addr { + type string; + } + + leaf is-enabled { + type boolean; + } + } + } + } +} diff --git a/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/asciidoc/Readme.adoc b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/asciidoc/Readme.adoc new file mode 100644 index 00000000..ab759c7b --- /dev/null +++ b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/asciidoc/Readme.adoc @@ -0,0 +1,3 @@ += vlb-business-vnf-onap-plugin-impl + +Overview of vlb-business-vnf-onap-plugin-impl \ No newline at end of file diff --git a/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/pom.xml b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/pom.xml new file mode 100644 index 00000000..7f96b5c6 --- /dev/null +++ b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/pom.xml @@ -0,0 +1,96 @@ + + + + io.fd.honeycomb.common + impl-parent + 1.17.07 + + + 4.0.0 + org.onap.vnf.vlb + vlb-business-vnf-onap-plugin-impl + vlb-business-vnf-onap-plugin-impl + bundle + + + 1.17.07 + + + + + ${project.groupId} + vlb-business-vnf-onap-plugin-api + ${project.version} + + + + + io.fd.honeycomb + translate-api + ${honeycomb.infra.version} + + + + io.fd.honeycomb + translate-spi + ${honeycomb.infra.version} + + + + io.fd.honeycomb + cfg-init + ${honeycomb.infra.version} + + + + + com.google.inject + guice + + + net.jmob + guice.conf + + + com.google.inject.extensions + guice-multibindings + + + + + + + org.codehaus.mojo + exec-maven-plugin + + + none + + + + true + + + + maven-checkstyle-plugin + + true + + + + + + diff --git a/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/CrudService.java b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/CrudService.java new file mode 100644 index 00000000..1e7be67b --- /dev/null +++ b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/CrudService.java @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2016 Cisco and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onap.vnf.vlb; + +import io.fd.honeycomb.translate.read.ReadFailedException; +import io.fd.honeycomb.translate.write.WriteFailedException; +import java.util.List; +import javax.annotation.Nonnull; +import org.opendaylight.yangtools.yang.binding.DataObject; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; + +/** + * Example of an aggregated access interface. + *

+ * Shared by all the customizers hiding the ugly details of our data management. + * + * TODO update javadoc + */ +public interface CrudService { + + /** + * Perform write of provided data. + */ + void writeData(@Nonnull final InstanceIdentifier identifier, @Nonnull final T data) + throws WriteFailedException; + + + /** + * Perform delete of existing data. + */ + void deleteData(@Nonnull final InstanceIdentifier identifier, @Nonnull final T data) + throws WriteFailedException; + + /** + * Perform update of existing data. + */ + void updateData(@Nonnull final InstanceIdentifier identifier, @Nonnull final T dataOld, + @Nonnull final T dataNew) + throws WriteFailedException; + + /** + * Read data identified by provided identifier. + */ + T readSpecific(@Nonnull final InstanceIdentifier identifier) throws ReadFailedException; + + /** + * Read all nodes of type {@link T}. + */ + List readAll() throws ReadFailedException; +} diff --git a/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/ElementCrudService.java b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/ElementCrudService.java new file mode 100644 index 00000000..d17c6c18 --- /dev/null +++ b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/ElementCrudService.java @@ -0,0 +1,114 @@ +/* + * Copyright (c) 2016 Cisco and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onap.vnf.vlb; + +import io.fd.honeycomb.translate.read.ReadFailedException; +import io.fd.honeycomb.translate.write.WriteFailedException; +import java.util.Collections; +import java.util.List; +import javax.annotation.Nonnull; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vlb.business.vnf.onap.plugin.rev160918.VlbBusinessVnfOnapPluginState; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vlb.business.vnf.onap.plugin.rev160918.vlb.business.vnf.onap.plugin.params.VdnsInstances; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vlb.business.vnf.onap.plugin.rev160918.vlb.business.vnf.onap.plugin.params.vdns.instances.VdnsInstance; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vlb.business.vnf.onap.plugin.rev160918.vlb.business.vnf.onap.plugin.params.vdns.instances.VdnsInstanceBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vlb.business.vnf.onap.plugin.rev160918.vlb.business.vnf.onap.plugin.params.vdns.instances.VdnsInstanceKey; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Simple example of class handling Crud operations for plugin. + *

+ * No real handling, serves just as an illustration. + * + * TODO update javadoc + */ +final class ElementCrudService implements CrudService { + + private static final Logger LOG = LoggerFactory.getLogger(ElementCrudService.class); + + @Override + public void writeData(@Nonnull final InstanceIdentifier identifier, @Nonnull final VdnsInstance data) + throws WriteFailedException { + if (data != null) { + + // identifier.firstKeyOf(SomeClassUpperInHierarchy.class) can be used to identify + // relationships such as to which parent these data are related to + + // Performs any logic needed for persisting such data + LOG.info("Writing path[{}] / data [{}]", identifier, data); + } else { + throw new WriteFailedException.CreateFailedException(identifier, data, + new NullPointerException("Provided data are null")); + } + } + + @Override + public void deleteData(@Nonnull final InstanceIdentifier identifier, @Nonnull final VdnsInstance data) + throws WriteFailedException { + if (data != null) { + + // identifier.firstKeyOf(SomeClassUpperInHierarchy.class) can be used to identify + // relationships such as to which parent these data are related to + + // Performs any logic needed for persisting such data + LOG.info("Removing path[{}] / data [{}]", identifier, data); + } else { + throw new WriteFailedException.DeleteFailedException(identifier, + new NullPointerException("Provided data are null")); + } + } + + @Override + public void updateData(@Nonnull final InstanceIdentifier identifier, @Nonnull final VdnsInstance dataOld, + @Nonnull final VdnsInstance dataNew) throws WriteFailedException { + if (dataOld != null && dataNew != null) { + + // identifier.firstKeyOf(SomeClassUpperInHierarchy.class) can be used to identify + // relationships such as to which parent these data are related to + + // Performs any logic needed for persisting such data + LOG.info("Update path[{}] from [{}] to [{}]", identifier, dataOld, dataNew); + } else { + throw new WriteFailedException.DeleteFailedException(identifier, + new NullPointerException("Provided data are null")); + } + } + + @Override + public VdnsInstance readSpecific(@Nonnull final InstanceIdentifier identifier) throws ReadFailedException { + + // read key specified in path identifier + final VdnsInstanceKey key = identifier.firstKeyOf(VdnsInstance.class); + + // load data by this key + // *Key class will always contain key of entity, in this case long value + + return new VdnsInstanceBuilder() + .setIpAddr(key.getIpAddr()) + .setKey(key) + .setIsEnabled(true) + .build(); + } + + @Override + public List readAll() throws ReadFailedException { + // read all data under parent node,in this case {@link ModuleState} + return Collections.singletonList( + readSpecific(InstanceIdentifier.create(VlbBusinessVnfOnapPluginState.class).child(VdnsInstances.class).child(VdnsInstance.class, new VdnsInstanceKey("")))); + } +} diff --git a/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/Module.java b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/Module.java new file mode 100644 index 00000000..37506d1e --- /dev/null +++ b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/Module.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2016 Cisco and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onap.vnf.vlb; + +import static org.onap.vnf.vlb.ModuleConfiguration.ELEMENT_SERVICE_NAME; + +import com.google.inject.AbstractModule; +import com.google.inject.TypeLiteral; +import com.google.inject.multibindings.Multibinder; +import com.google.inject.name.Names; +//import org.onap.vnf.vlb.read.ModuleStateReaderFactory; +import org.onap.vnf.vlb.write.ModuleWriterFactory; +import io.fd.honeycomb.data.init.DataTreeInitializer; +import io.fd.honeycomb.translate.read.ReaderFactory; +import io.fd.honeycomb.translate.write.WriterFactory; +import net.jmob.guice.conf.core.ConfigurationModule; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vlb.business.vnf.onap.plugin.rev160918.vlb.business.vnf.onap.plugin.params.vdns.instances.VdnsInstance; + +/** + * Module class instantiating vlb-business-vnf-onap-plugin plugin components. + */ +public final class Module extends AbstractModule { + + // TODO This initiates all the plugin components, but it still needs to be registered/wired into an integration + // module producing runnable distributions. There is one such distribution in honeycomb project: + // vpp-integration/minimal-distribution + // In order to integrate this plugin with the distribution: + // 1. Add a dependency on this maven module to the the distribution's pom.xml + // 2. Add an instance of this module into the distribution in its Main class + + @Override + protected void configure() { + // requests injection of properties + install(ConfigurationModule.create()); + requestInjection(ModuleConfiguration.class); + + // creates binding for interface implementation by name + bind(new TypeLiteral>(){}) + .annotatedWith(Names.named(ELEMENT_SERVICE_NAME)) + .to(ElementCrudService.class); + + // creates reader factory binding + // can hold multiple binding for separate yang modules + //final Multibinder readerFactoryBinder = Multibinder.newSetBinder(binder(), ReaderFactory.class); + //readerFactoryBinder.addBinding().to(ModuleStateReaderFactory.class); + + // create writer factory binding + // can hold multiple binding for separate yang modules + final Multibinder writerFactoryBinder = Multibinder.newSetBinder(binder(), WriterFactory.class); + writerFactoryBinder.addBinding().to(ModuleWriterFactory.class); + } +} diff --git a/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/ModuleConfiguration.java b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/ModuleConfiguration.java new file mode 100644 index 00000000..c2a429ab --- /dev/null +++ b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/ModuleConfiguration.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2016 Cisco and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onap.vnf.vlb; + +import net.jmob.guice.conf.core.BindConfig; +import net.jmob.guice.conf.core.InjectConfig; +import net.jmob.guice.conf.core.Syntax; + +/** + * Class containing static configuration for vlb-business-vnf-onap-plugin module,
+ * either loaded from property file vlb-business-vnf-onap-plugin.json from classpath. + *

+ * Further documentation for the configuration injection can be found at: + * https://github.com/yyvess/gconf + */ +@BindConfig(value = "vlb-business-vnf-onap-plugin", syntax = Syntax.JSON) +public final class ModuleConfiguration { + + // TODO change the sample property to real plugin configuration + // If there is no such configuration, remove this, vlb-business-vnf-onap-plugin.json resource and its wiring from Module class + + /** + * Sample property that's injected from external json configuration file. + */ + @InjectConfig("sample-prop") + public String sampleProp; + + /** + * Constant name used to identify vlb-business-vnf-onap-plugin plugin specific components during dependency injection. + */ + public static final String ELEMENT_SERVICE_NAME = "element-service"; +} diff --git a/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/write/DnsInstanceManager.java b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/write/DnsInstanceManager.java new file mode 100644 index 00000000..dc3e9248 --- /dev/null +++ b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/write/DnsInstanceManager.java @@ -0,0 +1,142 @@ + +/*************************************************************************//** + * + * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ****************************************************************************/ + +package org.onap.vnf.vlb.write; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * + * Class that maintains a map of all the active vDNS instances. + * A vDNS instance is represented by its IP address and a flag + * that represents its status, i.e. enabled or disabled. + * + * Clients can update the vDNS map via NETCONF or RESTconf. + * Operations are translated by the Honeycomb agent into a JSON + * object that is persisted on disk (see Honeycomb distribution + * configuration for more information). The ElementCustomizer + * class then updates this map. Each operation results in a vLB + * setup change, e.g. GRE tunnels that connect the vLB to the + * vDNS instances are created or deleted, depending on the kind + * of operation that is invoked. Only vDNS instances for which + * the isEnabled flag is true are currently served by the vLB. + * + * The vLB setup and configuration is executed via shell scripts. + * + */ + +public class DnsInstanceManager { + + private static final Logger LOG = LoggerFactory.getLogger(DnsInstanceManager.class); + private Map dnsInstances = new HashMap(); + + /* + * Add a new DNS instance to the map and create a GRE tunnel + * towards that instance if isEnabled is set to true. + */ + void addDnsInstance(String ipAddr, Boolean isEnabled) { + // Call updateDnsInstance in case the DNS instance already exists. + // This is somewhat redundant because Honeycomb already runs this check. + if(dnsInstances.containsKey(ipAddr)) { + updateDnsInstance(ipAddr, isEnabled); + return; + } + + dnsInstances.put(ipAddr, isEnabled); + LOG.debug("DNS instance " + ipAddr + " with status isEnabled=" + isEnabled + " has been added."); + + // Create a GRE tunnel towards the new DNS instance if isEnabled is true. + if(isEnabled) { + addGreTunnel(ipAddr); + } + } + + /* + * Update an existing DNS instance and create or remove a GRE + * tunnel based on the current value of the isEnabled flag. + */ + void updateDnsInstance(String ipAddr, Boolean isEnabled) { + // This is somewhat redundant because Honeycomb already runs this check. + if(dnsInstances.get(ipAddr) == isEnabled) { + LOG.debug("DNS instance " + ipAddr + " with status isEnabled=" + isEnabled + " already exists. No update is necessary."); + return; + } + + dnsInstances.put(ipAddr, isEnabled); + LOG.debug("DNS instance " + ipAddr + " has been updated with status isEnabled=" + isEnabled + "."); + + if(isEnabled) { + addGreTunnel(ipAddr); + } + else { + deleteGreTunnel(ipAddr); + } + } + + /* + * Delete an existing DNS instance from the map and remove the + * GRE tunnel if isEnabled was set to true. + */ + void deleteDnsInstance(String ipAddr) { + // This is somewhat redundant because Honeycomb already runs this check. + if(!dnsInstances.containsKey(ipAddr)) { + LOG.debug("DNS instance " + ipAddr + " doesn't exist."); + return; + } + + // Remove a GRE tunnel towards this DNS instance if it exists. + if(dnsInstances.get(ipAddr)) { + deleteGreTunnel(ipAddr); + } + + dnsInstances.remove(ipAddr); + } + + /* + * Auxiliary function that calls a shell script to create a GRE tunnel towards a new vDNS instance. + */ + private void addGreTunnel(String ipAddr) { + String script = new String("bash /opt/add_dns.sh " + ipAddr); + try { + Runtime.getRuntime().exec(script); + LOG.debug("New GRE tunnel towards DNS instance " + ipAddr + " created."); + } catch (IOException e) { + LOG.error("add_dns.sh returned an error."); + e.printStackTrace(); + } + } + + /* + * Auxiliary function that calls a shell script to delete a GRE tunnel towards a vDNS instance. + */ + private void deleteGreTunnel(String ipAddr) { + String script = new String("bash /opt/remove_dns.sh " + ipAddr); + try { + Runtime.getRuntime().exec(script); + LOG.debug("GRE tunnel towards DNS instance " + ipAddr + " removed."); + } catch (IOException e) { + LOG.error("remove_dns.sh returned an error."); + e.printStackTrace(); + } + } +} diff --git a/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/write/ElementCustomizer.java b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/write/ElementCustomizer.java new file mode 100644 index 00000000..d8da0b5b --- /dev/null +++ b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/write/ElementCustomizer.java @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2016 Cisco and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onap.vnf.vlb.write; + +import org.onap.vnf.vlb.CrudService; +import io.fd.honeycomb.translate.spi.write.ListWriterCustomizer; +import io.fd.honeycomb.translate.write.WriteContext; +import io.fd.honeycomb.translate.write.WriteFailedException; +import javax.annotation.Nonnull; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vlb.business.vnf.onap.plugin.rev160918.vlb.business.vnf.onap.plugin.params.vdns.instances.VdnsInstance; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vlb.business.vnf.onap.plugin.rev160918.vlb.business.vnf.onap.plugin.params.vdns.instances.VdnsInstanceKey; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Writer for {@link Element} list node from our YANG model. + */ +public final class ElementCustomizer implements ListWriterCustomizer { + + private final CrudService crudService; + private DnsInstanceManager dnsInstanceManager; + private static final Logger LOG = LoggerFactory.getLogger(ElementCustomizer.class); + + public ElementCustomizer(@Nonnull final CrudService crudService) { + this.crudService = crudService; + dnsInstanceManager = new DnsInstanceManager(); + } + + @Override + public void writeCurrentAttributes(@Nonnull final InstanceIdentifier id, @Nonnull final VdnsInstance dataAfter, + @Nonnull final WriteContext writeContext) throws WriteFailedException { + //perform write of data,or throw exception + //invoked by PUT operation,if provided data doesn't exist in Config data + crudService.writeData(id, dataAfter); + dnsInstanceManager.addDnsInstance(dataAfter.getIpAddr(), dataAfter.isIsEnabled()); + } + + @Override + public void updateCurrentAttributes(@Nonnull final InstanceIdentifier id, + @Nonnull final VdnsInstance dataBefore, + @Nonnull final VdnsInstance dataAfter, @Nonnull final WriteContext writeContext) + throws WriteFailedException { + //perform update of data,or throw exception + //invoked by PUT operation,if provided data does exist in Config data + crudService.updateData(id, dataBefore, dataAfter); + dnsInstanceManager.updateDnsInstance(dataAfter.getIpAddr(), dataAfter.isIsEnabled()); + } + + @Override + public void deleteCurrentAttributes(@Nonnull final InstanceIdentifier id, + @Nonnull final VdnsInstance dataBefore, + @Nonnull final WriteContext writeContext) throws WriteFailedException { + //perform delete of data,or throw exception + //invoked by DELETE operation + crudService.deleteData(id, dataBefore); + dnsInstanceManager.deleteDnsInstance(dataBefore.getIpAddr()); + } +} diff --git a/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/write/ModuleWriterFactory.java b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/write/ModuleWriterFactory.java new file mode 100644 index 00000000..8be4bb10 --- /dev/null +++ b/vnfs/vLBMS/apis/vlb-business-vnf-onap-plugin-impl/src/main/java/org/onap/vnf/vlb/write/ModuleWriterFactory.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2016 Cisco and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onap.vnf.vlb.write; + +import static org.onap.vnf.vlb.ModuleConfiguration.ELEMENT_SERVICE_NAME; + +import com.google.inject.Inject; +import com.google.inject.name.Named; +import org.onap.vnf.vlb.CrudService; +import io.fd.honeycomb.translate.impl.write.GenericWriter; +import io.fd.honeycomb.translate.write.WriterFactory; +import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder; +import javax.annotation.Nonnull; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vlb.business.vnf.onap.plugin.rev160918.VlbBusinessVnfOnapPlugin; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vlb.business.vnf.onap.plugin.rev160918.vlb.business.vnf.onap.plugin.params.VdnsInstances; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vlb.business.vnf.onap.plugin.rev160918.vlb.business.vnf.onap.plugin.params.vdns.instances.VdnsInstance; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; + +/** + * Factory producing writers for vlb-business-vnf-onap-plugin plugin's data. + */ +public final class ModuleWriterFactory implements WriterFactory { + + private static final InstanceIdentifier ROOT_CONTAINER_ID = InstanceIdentifier.create(VlbBusinessVnfOnapPlugin.class); + + /** + * Injected crud service to be passed to customizers instantiated in this factory. + */ + @Inject + @Named(ELEMENT_SERVICE_NAME) + private CrudService crudService; + + @Override + public void init(@Nonnull final ModifiableWriterRegistryBuilder registry) { + + //adds writer for child node + //no need to add writers for empty nodes + registry.add(new GenericWriter<>(ROOT_CONTAINER_ID.child(VdnsInstances.class).child(VdnsInstance.class), new ElementCustomizer(crudService))); + } +} diff --git a/vnfs/vLBMS/apis/vlb-vnf-onap-distribution/asciidoc/Readme.adoc b/vnfs/vLBMS/apis/vlb-vnf-onap-distribution/asciidoc/Readme.adoc new file mode 100644 index 00000000..0a6c66d4 --- /dev/null +++ b/vnfs/vLBMS/apis/vlb-vnf-onap-distribution/asciidoc/Readme.adoc @@ -0,0 +1,3 @@ += vlb-vnf-onap-distribution + +Overview of vlb-vnf-onap-distribution \ No newline at end of file diff --git a/vnfs/vLBMS/apis/vlb-vnf-onap-distribution/pom.xml b/vnfs/vLBMS/apis/vlb-vnf-onap-distribution/pom.xml new file mode 100644 index 00000000..b70c2594 --- /dev/null +++ b/vnfs/vLBMS/apis/vlb-vnf-onap-distribution/pom.xml @@ -0,0 +1,103 @@ + + + + + io.fd.honeycomb.common + minimal-distribution-parent + 1.17.07 + + + 4.0.0 + org.onap.vnf.vlb + vlb-vnf-onap-distribution + 1.2.0-SNAPSHOT + + + -Xms128m -Xmx128m + io.fd.honeycomb.infra.distro.Main + 1.17.07 + 1.17.07 + + + org.onap.vnf.vlb.Module + + + + + + + maven-compiler-plugin + + + org.codehaus.gmaven + groovy-maven-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + org.apache.maven.plugins + maven-dependency-plugin + + + maven-assembly-plugin + + + org.apache.maven.plugins + maven-deploy-plugin + + false + + + + org.apache.maven.plugins + maven-install-plugin + + false + + + + org.codehaus.mojo + exec-maven-plugin + + + none + + + + true + + + + maven-checkstyle-plugin + + true + + + + + + + + + org.onap.vnf.vlb + vlb-business-vnf-onap-plugin-impl + ${interfaces.mapping.version} + + + + io.fd.honeycomb + minimal-distribution + ${honeycomb.min.distro.version} + + + + -- 2.16.6