From f506784b485b1da38eb80e93a0d6a0fe5730ec76 Mon Sep 17 00:00:00 2001 From: Anastasia Kuznetsova Date: Wed, 21 May 2014 17:22:31 +0400 Subject: [PATCH] Fix skipped tests for application creation Fix WebUI tests for application creation and tests for checking catalog features. Commit should be merged after https://review.openstack.org/#/c/94614/ because archiving packages was moved from tests to jobs. Change-Id: Iab86775bbda3ddfc1800d8024fd1eb782e02eafe --- .../Classes/AppForUploadTest.yaml | 31 -- .../AppForUploadTest/UI/ui.yaml | 85 ------ .../AppForUploadTest/logo.png | Bin 11634 -> 0 bytes .../AppForUploadTest/manifest.yaml | 10 - .../PostgreSQL/Classes/PostgreSql.yaml | 47 --- .../ConfigurePostgreSqlDatabase.template | 22 -- .../Resources/DeployPostgreSql.template | 21 -- .../PostgreSQL/Resources/GetIP.template | 19 -- .../PostgreSQL/Resources/scripts/common.sh | 204 ------------- .../scripts/configurePostgreSqlDatabase.sh | 28 -- .../Resources/scripts/deployPostgreSql.sh | 31 -- .../PostgreSQL/Resources/scripts/getIp.sh | 2 - .../PostgreSQL/Resources/scripts/installer.sh | 142 --------- muranodashboard-tests/PostgreSQL/UI/ui.yaml | 85 ------ muranodashboard-tests/PostgreSQL/logo.png | Bin 11634 -> 0 bytes .../PostgreSQL/manifest.yaml | 13 - muranodashboard-tests/base.py | 125 ++++---- muranodashboard-tests/common.ini | 4 +- muranodashboard-tests/config/config_file.conf | 2 +- muranodashboard-tests/sanity_check.py | 288 +++++++++--------- 20 files changed, 210 insertions(+), 949 deletions(-) delete mode 100644 muranodashboard-tests/AppForUploadTest/Classes/AppForUploadTest.yaml delete mode 100644 muranodashboard-tests/AppForUploadTest/UI/ui.yaml delete mode 100644 muranodashboard-tests/AppForUploadTest/logo.png delete mode 100644 muranodashboard-tests/AppForUploadTest/manifest.yaml delete mode 100644 muranodashboard-tests/PostgreSQL/Classes/PostgreSql.yaml delete mode 100644 muranodashboard-tests/PostgreSQL/Resources/ConfigurePostgreSqlDatabase.template delete mode 100644 muranodashboard-tests/PostgreSQL/Resources/DeployPostgreSql.template delete mode 100644 muranodashboard-tests/PostgreSQL/Resources/GetIP.template delete mode 100644 muranodashboard-tests/PostgreSQL/Resources/scripts/common.sh delete mode 100644 muranodashboard-tests/PostgreSQL/Resources/scripts/configurePostgreSqlDatabase.sh delete mode 100644 muranodashboard-tests/PostgreSQL/Resources/scripts/deployPostgreSql.sh delete mode 100644 muranodashboard-tests/PostgreSQL/Resources/scripts/getIp.sh delete mode 100644 muranodashboard-tests/PostgreSQL/Resources/scripts/installer.sh delete mode 100644 muranodashboard-tests/PostgreSQL/UI/ui.yaml delete mode 100644 muranodashboard-tests/PostgreSQL/logo.png delete mode 100644 muranodashboard-tests/PostgreSQL/manifest.yaml diff --git a/muranodashboard-tests/AppForUploadTest/Classes/AppForUploadTest.yaml b/muranodashboard-tests/AppForUploadTest/Classes/AppForUploadTest.yaml deleted file mode 100644 index b2ccb25..0000000 --- a/muranodashboard-tests/AppForUploadTest/Classes/AppForUploadTest.yaml +++ /dev/null @@ -1,31 +0,0 @@ -Namespaces: - =: io.murano.apps.AppForUploadTest - std: io.murano - res: io.murano.resources - - -Name: AppForUploadTest - -Extends: std:Application - -Properties: - name: - Contract: $.string().notNull() - - instance: - Contract: $.class(res:Instance).notNull() - - username: - Contract: $.string().notNull() - - password: - Contract: $.string().notNull() - - database: - Contract: $.string().notNull() - -Workflow: - deploy: - Body: - - $.instance.deploy() - - $resources: new('io.murano.system.Resources') diff --git a/muranodashboard-tests/AppForUploadTest/UI/ui.yaml b/muranodashboard-tests/AppForUploadTest/UI/ui.yaml deleted file mode 100644 index 62532f0..0000000 --- a/muranodashboard-tests/AppForUploadTest/UI/ui.yaml +++ /dev/null @@ -1,85 +0,0 @@ -Version: 2 - -Application: - ?: - type: io.murano.apps.AppForUploadTest - name: $.serviceConfiguration.name - database: $.serviceConfiguration.database - username: $.serviceConfiguration.username - password: $.serviceConfiguration.password - instance: - ?: - type: io.murano.resources.Instance - name: generateHostname($.serviceConfiguration.unitNamingPattern, 1) - flavor: $.instanceConfiguration.flavor - image: $.instanceConfiguration.osImage - -Forms: - - serviceConfiguration: - fields: - - name: name - type: string - label: Service Name - description: >- - To identify your service in logs please specify a service name - - name: database - type: string - label: Database - description: >- - Please, provide database name that is going to be created - - name: username - type: string - label: Username - description: >- - Please, provide username that is going to be used to connect to the database - - name: password - type: password - label: Password - descriptionTitle: Password - description: >- - Please, provide password that is going to be used to connect to the database - - name: dcInstances - type: integer - hidden: true - initial: 1 - - name: unitNamingPattern - type: string - required: false - hidden: true - widgetMedia: - js: ['muranodashboard/js/support_placeholder.js'] - css: {all: ['muranodashboard/css/support_placeholder.css']} - - instanceConfiguration: - fields: - - name: title - type: string - required: false - hidden: true - descriptionTitle: Instance Configuration - description: Specify some instance parameters on which service would be created. - - name: flavor - type: flavor - label: Instance flavor - description: >- - Select registered in Openstack flavor. Consider that service performance - depends on this parameter. - required: false - - name: osImage - type: image - imageType: linux - label: Instance image - description: >- - Select valid image for a service. Image should already be prepared and - registered in glance. - - name: keyPair - type: keypair - label: Key Pair - description: >- - Select the Key Pair to control access to instances. You can login to - instances using this KeyPair after the deployment of service. - required: false - - name: availabilityZone - type: azone - label: Availability zone - description: Select availability zone where service would be installed. - required: false diff --git a/muranodashboard-tests/AppForUploadTest/logo.png b/muranodashboard-tests/AppForUploadTest/logo.png deleted file mode 100644 index e1a24717ead46edf8a7a111f11a97e48bde97693..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11634 zcmZX318^lwuP^+m^mO;v zJ>4}mHPsWLC@+BkivtS)01%`kMV0@Vng8w3kpGMX0^tn+0G7O^h=`(;hzOCQlf9Xx zjVS=22~(qGu8KaraFwwNagpdO&MY}Y!gY)%W;%|on@B`NLLwwa79IqnH~=tHLP2IE zP9&qEDa;QjGzO53uSD(o&hkBfz8z(sdbW0U9#x#>=2mC}AjX!`)1i|w0>;WYGn+yi z%FEK)s2s8K1pyA=C;`eJKwvZ;zU{yluNf3T_}ZsXu3N93oS}q=u`-?TpI|sv6aEF&}coli_P(!+{V15Pm@J(;Jxnc6UJ-?=;Y&O#-qMiU3g|VxzNbaA& zerUK(AB17G1{iw(-&;{d9Setyc7Fu1K$*Sz#O4>ive~436fXP%0d$ODrGn_gLyJhF z!HmdjT&}*bpRXVwVtD{$kPwmL3*BFqL0}6dY%4txwhx4oBIVOH=RRmlFdlF?>0i?K znr@glN} za#I{Q_eIha=o>i4gJVGJI;o+ou|I6u(GSz?Y zQzC9g`@w+!GnHkM$@<-F_j#0-Gs&OiHc$QY6y`ga;^dJ4TZ7F7vm0SoFyAmv{kb5z z_25|p;srbY*O5&xPR>rByR&|b1?L0tLtN~g)}hp4i9p}yt8^$TH~1@F|05x0I~!uH zfFUY=k|-PkVgwpnP?tk~xmt4Hp0<*jDTXWH#G6|WD!_iG%A0L)^D!?Xke$MES<^U=eI5vB{s8Za0k&?;{8*I^a7$wvQlII5_r663rY$XFqZ} znDq`oHxTm=L=nL^65?~w_-}3jKjWdEf{h)p@W4~@ak8P(`d#M$R{`ETC?}8~J6yWB z_5)Ci2xbE$K}4bdam7SD3A_gYCoHbO zB_hlO+%fzE;)P&d5q;96F%1*25k=;S2-pJUa@5KgoC5Z8+D;S%@wWVN3yMx8Ix*Tg z=M%OE#8>D`35hwR6L?5QifCN4A#_IDDG2BO?gpahuo9yVO&Ik+kTJ)uuE2nJJ+%#i zM8D&Xs3WX{ulC-C!)H5PJL?9)hLJAY6;3U}GsH6vN6cG9+0OUdyBAjv+HOjIti15q z!L%KP-MYQ&LGxoezf?gY2ee`s?VHsHk`RS>DNm(+KM4IvJ1Gz{N(|Bn~bIF)u{RK|TguoP`L?irQa1nqA zstCUb#*kbXeOMcORJ2X>LbO+OZM0D|50(tJHTE@gui^Xe;o;^msbAv})XCI270IXH z7QstbWbaMf8u3;`E<|D}uSxSLIFj-b`jn{9sUwL;vQQ;fB`OMdsYA%ZKuzqp=g83ydDj!P|+l6P(1(Usyt)6X^ z?U{Yd#luzB@uy>{W22+hDaCQ~2xs?qdr5muJ8AoU2ZJM$1H%pUE!Hi>-NDV$-NW6~ zE$j`>9pv57-SX|zJ^f9@UB+$bJ;sgRvG;h~e%ikKp2C5^gnyd9bbyMWM!x}(#!g~? zJP{2Q<;l->xq9V#5eIQe%`ssr@soJPs<~vww)z5xbcY0oqMKsqU*Wxy<&p`KNn_qh z^h%`j(DTak?DLjPLQFCZ9t~*5ImS`e#VhSK%FU=w0AvvOv z!&(u~M>XAB-7H&(c@n!xutpQ15q2201YcV@9oe}tv z^T@npvgGa**yJnP57lMGSjAdpzuLiC3=9I%HB48} zN5RLUGX*wI)(ciQ>t>6e)>f7atk!IlEo99;EfXz}EnF@5EzcGLa|7pC=Qb;ra~TF@ z9rSjaC9Zj{7%oGuvnTS^Y5Iiiy;dLPTR41`TQEH+zDm9ZAN#MQkj9Xz!LY#`VS8a< zVP){6F(xsC(KFb-%%BuCi1O?-;MoFbJAlI+m*kq*0d+NL7mfKHv7iTe~w~mvgxLuO7X4CZ8a>O2lW^D zCq6sD9qOH^Ts%&xF55?LQ_%*-=PRa8bDAQZBkz4N5!0sW&2`Q6V)X9y^18;`N4i?t zo7&&nSK4Pi)4lL+ux?fFWFLJFMy@f=)UM?o+@ARl`I-i7L~g^{_;L8P_`z{YIP5lG z9MHZ>!{ypInruq#dM~1$A8+{fyF^{{)fLU(tKTO+Njbw{W;%wA(y=k)3^RRZYNYEWC&dhEEY&`KE zb|-e1@O^r(Jy%}PZFV&>SQwc1ntjfHgnTHyLBYbqRwC8oOY$>nTWEOHNH$Zoop|3K z?foJ@BOgU%CWsc`RJPL5_Ltn7`xKG+C4%^zhMfjVflED3p2dgZT<~7HvAAR^0D6x8 zi2X(2?=`qL+yYw>nJ6u6Dty>Q^IZ8x*`lzVy(f_3ZuQq?=`_LW_^cJDCNq;I$oy`$ z(0qSZKKGt$#dqt$$G1lKGJ^Z6vm0(l_&xL))0Y8Jx3Oc%N$bt&5@Ve9P=l-XNMEFu zTraDaz{$6GtE%@n>@g-atCOQ{OS#*%Q>eP&f_>%kUHtd&soyE32c;QD=|>ej1McEF z>}|aEk2aUq&Q|B$*3QoZeD~fp&oNgVd~@D&Hx8RaxR+~}D}9d`l@jhayh-VoSw&W(A($6y~g=rMd9msW&Mr4t2NOz={6H~ zEi_v2X?*(#d$t!C_R-9qcpZCccu$%tqs>DQaF_L#@B0vbYrJ!v<><99>#Op&&v4Af z&W*{|%bxrgcrNnN_x}708XbHw-a~b)aM5!6d!&$+$DmH4p>ABxdUnz_yHqfYlf)UCp~LBkH@M(!ew9D`~`SdVZXz(p;Ncqh|`L=oqs@OI)f6}U%8 zrDp&BBp53_qh!aGOSVPf_X7-RfTqBnS(=s^oq=F?X44v-4!dsq##p~WAVTL`0YB2QWL6| z?%O+rFoHn0x7*({+nJO+yjQv5fOSCJz(dE9MR0`C zBc#BI4T%$F6(fjS!^TJ5Zx_p=z>$gkz~eyPPFKv)Y-gjRCRw%4Qj65DRL?we%W)~f zXU8Vs0cY8FyPTj|(@XK?D&uM+wKtrt>e+weKl0xcP+{~oEOjWgD1dN}uX4F0jvD$j zU7wVRTOzRKeme2kjwpysm>93TE~{VE1v#<(HussK$ff1>uV^j1niOl5u}agc9oFCU zuQ__1e&ylNwrAh&1UWpq=>g?bOz#tTM(8?fsBMkh^{yC;41>`);I7P8Kkyg@vN8P4)qEcRVp%_~T8v%1?k)B? z{OfhC^Z8tkeP)BKD*=RaPs7kqS3fqu>j(%ls{8|SMZ%x6Beg_I%_zwt%~C^5tFp|* z)9}(%+JFzVKS)0?K3qO3xHG%g+a>&Af~t(RMU+VIC0uPe?R<+ZML~^XiGWS3Wza$P zcd!K$gBzVP*^$P$@*LC++Go9Et!lQj5LotXx_a{p$_?m^49qbKQR=<@o@BQecSHt9 zETcxtV$Ff;zfRRv^JIz0gYV8|%4Obl(0S!J={ox$c?W;%^vJ$xxC88+_g2|EGTw$; z`qAh1)di*jJ{jEl-8+QpSE5MSVCRs%_>yR<*r9~^@LcQ596V6W7<2!1f0ojO{MD9C zMp-`f4@L4|+C<9l&YXH*_K)eAt#+o{Ga+f3Umk?G9@cc&#S*y1IKa5g+= z)1&tNy@`7U?g_JL_lnJ5?N+=0vGH{)>qX}bASiWjsrx8ZRtJNdc1)H>XC`h0gy z=&AVk#^SA4;ufDi4ujh8mcKu#zd_i0FpKQTCL&&5mKx#B~6~otQn+>1-y;Rc(wfvUi$8fodnqd6- zT998^a0+SNzIU1Uv2Yr)h8{=cdi|Sc9J+!v1AU#w76`X+_s!pL|5ENWOU_5Cmv70b z&*AG4>>!|^e^E#$s3kZ}I8%6W2!2S&!+AJXGKoreY4b#nNt{WbHM_)fz}-zQTV&(; zWg+AdW+>uRC$x1-{!Z>lo?y+5-PF9&JX3b<;%WI|5Ptx>l;@Dy)1ApQu==`7qKWW$ z>F{d2=t^l@W`n2sTG;RE^X6L=_yyDzh8wMvOo#$Il5nW78-J1GU#3qL)^1Fk=+lT}>{$x(09&RVn6TE=Z<@)-U<=o+E3~|Hp z2t$fKQ=dHEWR~Qs#h0twRs{c7pOyWC`!^x90O54=&g;-)GQjs0u=vjJ03=dCEIL5f z70}uBBmYMW0A~B~`6Cd3M>LR~q+gKy{fu$3`TG{5^A@a=p|~d^YmmMsl$P)x6s=+8 zqhAeU`sqkpV&X~=7$PzA02hv_JFofgvUp8Hi49gZ$P$A!Lt=Y0jL*I(<_hEi>QFxbHF~?p=*p)~sJ5lAO>t)~? zma6o_YPQwKHh4C;He@wzAI%-L|L%xwN}0^CPUgw|)vq#0JEAjdKFcwXN0(2+NaG

Eo_#nLtfaCydh?co~N1qTsZ4r?~^8_TziW64x9T1e|ggtD6S zoX(yekz`Spgd{{K#3ig9v=%fA zi~u?l;UVE>*GTp92=_~pPtt@YMg&qFdca86H za0Wl>k|Y1QpW663|9U8o+*TGW!m^FdQm@47@;aI>x|ZU$AmC;l=!jlr3Y4D^xsN|g zJz>C4@Sb}*K7a-|daivaj|Ce2`JXX-G;%>1IvKNif5yedj&z(L6FilyX#7bUZW~W&w-}yG_vW>hymKFrseWDcaWSD4vbiJ+EYlNf10#q@ zg=3|)zJ9|d#msl`sQ0qDCm=Wj$mvst(Shee=SJ%!a5aDMcSHv$(mA^?H<-2W)Ac_5 z5&SI@ybjV8GA{IInB%W1v379^QT$lDSWkuh2(~zxaDg1g<`lMZdM^L|EvEl5Mij;WJFDXzh{SYA|IG^4qnyJd>_h zrk9&=dTD00mAVQYx8;E)^UWE{PL;NIy|+U$_%u0(n+)E4&%W4L{@mQGw|j522W^egJOOe|0JzcU}~DCb@@(J zdaa9ShyG#28HcMM0_`+>jXM4vH{m9nm*`8)nnm;P_PONs>gB=p$m!0}r+VM!qO7LM z$@r``?_XslD@h1K`~vKk4`Ss^eji}kfrkU|#5{voL$suqg+f!V+Ai4+KGw!Q%Kfbh zmTIR`Jdn((%=3E1KbJSHRvWl{J?*?Ho=vYcetM{<>s9OAl{6pSlsf$;EsL|n@6$6< zT=iLaQ1xyB%57_{IB&KbxpL4?=yH36y0AU2Df`aIRp@NCv1GDlQR+;r<6Z4uZF^z8 zN%jJ(?=9NQ8IF^-KHr7T%Vgzyx^#{Z0cD6UHMG6Her^?D~K? zyxa3HyiVp1|H3;BmnHg@Jo&!Qw-*6~?uol+(n-gEJ{VveB(2W|!i zcXxMscNThkCvyfSE-o$xMrH#ovW%xIO{}s`Hrt3er z|Ky7wmY3nbbI%Wp?D`S}0H6^`i3+J&eBaFUbkGC&j`ltG%6Vz`j6tp^4*cF}5BxF6 zEYgJh&DMevc_B4JmO4J8RmCDRxz#0$LPc1FMI}+W5%pUV>ms^z5~?yZSd%OxGHfxj z8@Rs7WGdZw<5SzF_uJoGN|0^&QcxT3U*0m%En< z)s`#iD@qsza!{9V;yng%>iYQZKv~}s$ugWeC;|c#M6>ebT(6_p_?jpe10%X=q_if| zl1CIxv1ir7rp{{^lY51q{!3Q1 z)Dr2$utZK3Qo@Qg?KxSQN@Yu3%xu*2xY-%Y{j<{aAGKdi{oTaKRf%HRWEK3+moUDU zSCwZeg^~McH00&!(vf>V;=ko9s%p#N zv09uumKI5c-RvPQYP}*byt-qjn=eX#kHS@PUoB&1nCt!d65(U@DJ+#iB1c_n^TG1ix0h0- zQMd9*(KEGKaev8=Xev*PD+IHOw^3oJPWJSfpQUgBWhvfNZW}j6Bw&a8yyEj*{YU(VUnG=d&) zh-zA){G_t0o0(OCes1vvrKCOcE)Mm#wyjZX0IW%o{0D1{AY7 zCdd1Fey*pP_}>cOauvTV>+iY5Fa_My!{ORCv#MA5PMfR0S;9Z&EJ~AtLEX@hB56E!Nlnlcy6+K)e!jI!jIU4vpLO?4qyP_2UhE+{9Bam{#dqK_YpKA%wp zbi?|V-a7Fd3sszjqy4+=GHMCIa?uZ)r zLxx6{Y&x8CTiNSzzP0LJp!I+efOWW|sQ0`fkYDWwp#MXW&MFxaiU-nx_9{{33R)4> z(2^Ko(|g|I>%2Pr#k!fe!ZiE~=_>dS{Wl_gS}RlhHV=9sL)jZlqrzVJAh4G+rHYB_ z1ctqlbdGP5(tX4EiV~Q0vljV`3WouHH~stwh-ltN2qZ3W2KUqxJvw1(8I@=!J3h#wx$HEkRZ!_x5noFG+twE?BvGlc^-zKK_$ZT&QWDy;U*MC6&@OE4|FZ_gE? zN#kCSz{7(>R4#P95gsIUd+kxqTiYN%hkJUl#3SK;c1_UnPX*;;p%UZdQTi}^N5gir z*0@<-ODAW{){^<{=SpL;ceDWc*2rSQ@7(i)ff#!h*r_& z`I|6Vj0?%(jHzfbuS$jUKsxU&tT7jIkc`f+WOlP}w*&{LP7dbH8wF~jiB(_EKYR~b zByM_5c^7DerIh|cM)kME;#(`>x~%?9>Ch}gu!t_F&Z)*h0kHVK70Zf1%-*%D3Q2pC zC9VdH&x&3ha$@iYVyD8QGDClnvv_%)gH5YCvXZ-d^gu+wU)5Qen4qR)KEleTMoCUa zk?S>o5&Jrg)|}PoX!~NhX5BeZRe_UaC^vs`nnJ}UbV6s1d{YjL#{Lmd3(tsHXhIx0 z%5tfXdiu0ayc57Go@q8DziBL^K8{`%k8gq}3WrplZ&#gSjAA2j?+3oG2Bh?Dqw{G3zQ(cTwVYKTJidjN~8smcLvNn{~Yx$o0bDUGWj zk#~{>{_G1H%RbjG`^wQ>vdg1)$+42yLBzlUCJYu;Zm*>TmJeh*w6gF-bTifz8RInF z11R5lrGH=u92*yi(K(3J4u;H`kx!vF9#U)IUqFxNCy!ehEUTtI1G7aSm~VF`0C!bu z_LBr_0O=ZHimHuo$^=I{9jY!Rub*B%=HU@xt_zbV@WnL18W>6P(Z8-L7JwbDhz~xN z{RPFw5o}bOcgw}eJ^nT_@~&)JipuS!7>Narf#pfC!ZK3$)w~-lYs@~)h~TE06J|lP z>bR56ZCNwS%JA(-YWa()O<}P&fC-J~bI+Hz4h$ZUw6i7Gb@>wX^l-3bX!QrpEu5ML zV~pHQlLb#INK`h>Hndeaa7#oQkhoV+{i}dk4w)8@=x3$%QGV~Db0WbxC&~;0Q_Vp1 z{7Tpj!Wm_`B3^&~4FwQ(Mp=bd`6@-SEgR*WOO+l6Xmt<7mj6r+qQSkx(bhoLONl@7 zrp(;ieTNAXGqkHrQJXX>5OTE+h>`&;7$yO!@g@SJuAYH$hQoW#8c+N3LKM*aNWmKMpdLhYC}DkU2&3fHHw^QebsOAJ8!2;=tUiZVmQ>eInDaOs7XIVC*_suc4RH|8?HAk z8{`Uj#m%b`%>?yfUmt|G$L*t=oi{H_pnP5*Ug2wcCuSkFK1Dkh>z}t5!$0Lqp9EyC z{WMF>3D88;ztDwf>(#(v9+(`7Uhy%;N;nWFpjrNw)vi! z5KPH8TuSM?r4|tJO)rWuvIdO4+wbR#=c>;lmCI#4g0A{Bir(z&mBJ;JI9^xjc#apC zC45xRuyVho*c%p`KS{8{^*hB=BBzidMeC}i4Fsb^D zOOzmfcD1Qj{kF+r^il_g78q?SQ3&x_^aQJ6b`)O68g=y+@dx|<&19k|E7AFwZktLq z%@tfyRch7i*Pxy`f@)gr`HG6|)!}SOZcak*de&)zMRT5A=t#Pe0&+luJD4944!!wY=yr>6_4(5IZ!XAg|f)TiU3WnN77;MZtfPEZm!Qctph4!N3WPcY;$H!V|c~ zFQd6Lzb|E@86qdds3qsN3AM;gI&7;5l?-lC4XIZILLV9Q|Hx(g=cFqigg_Kii$W2> z!-|VvnWpJ5QX0x9dCO5GC^hw^{m$@*m6OE5;>qY&<*qE7vsb2_)*LJsPW1@{!4p;m z-$nCDsz30w4<;zGQxea>G0!xb(eq;?SIgO@WQ3u688+v{1-3MEzBAB+NqX}ftH9p~ zWsn;_5M)E1A%s}#hw89E0yrBDSvex{Ti zXnKgCU3XK{WNO-sZbgakl$#Uja#d)sTyw>qGs$b}mr*vf0&0t<1Kk~A1Yf<<5^{&g zf7rR1)pzt0nW{DF{dg`JNWTeP*?8luOfhFL4B;pu@y_?h6-CJE#|bgwnO~x7u4{nY zU^T}NF;`@nwM1^kXp^J_2B+ydbmGX&B~Q38zAO!7FmWw8PvaC`5R(J6Tvf|DS3g3H zX9KY4l!J+v2D>v+Pj(aRvsQYaTZEKW|DtZgb@pj5Ays+uN$R(xJv+79tmja;3%qc( z+Z!|4$m29g>G}c&Sk|CHgH4iX@S5JuR+zak$WXfL-|5p8Fn84PW6pVtLpT>eph|@E zR7(pN?w5DSPTbwFn!)U;3i2$(_zZ{hN57C@K%WBJ=#VcD@qffCr}3B;i<(~@=UXQm?1+Xnyg!-|Kg>yR9A;e zmfzmDS-pbS6$YI&U(RV;XMWD9nr9D>dK`4hFSuRWy4U2~mVa<}1` zy?5wn$V-9xLk53pIB4P= zN@K9)mh;XQ>d@C(kv84+9)H3w#rAHxje4y&tBC>9X-7iPSRYzUx!zH|o=gBQTG#V0 zm#hh@AI?~})pXB$5pCa?)DA6{LMS=`=_CJEGUr+r76lAjek1xxlcgdzhVj~I+5qlF z2r|;Geky~73Jj*-@$Chkh7jw@K))qSz0*_hT7Qtc3Kgq)qIqq^$?s49!q2*yAKgw=(VNsL<<&VU3GB zgQ&<3{D3Jspw=e+K~lk?NNWtIn&0djMwp3_{xTx~P{=8yNX@0|ZLP9je52g5f|x{g(FBs%p^lImG?3gw`<{I$MKD zq4myYPYOrqtvDr&Wbdg=_;zk@ISLT?m2pqJ5@_}2e?eaSL6$7a);{Jep~y=hP`xu> zE|aj-`LVDJl7!|F>?DTE1vlLDEjP7X{9T^8eP5KlTuXfx=Ko&56)KWmWKJCOOP}yZ zIL|b~R*Q8S|Lv*H<7SuCd-bUN&)|6-Hd$VIqGEt96jZ-++mjUnr)|pvW0wuIiTM^8 zf4jpMn$W%0ne1S{WE4H8eNpY-^{A!wbshz%;5f}K#m)Gro2(BheN9CtZvpLVG2PyjG1s_rvDv-1p--^V`?m z0hHcY=;8g$t*JuFq#eVHU5VU}b>t-$hwK$aYGqX6qvUxHdc)u`=1|x0uI=gsUTHQ-xPjxC>&zCE!qWq-` zG}F~p){k}Q>~Y3)a$b%%ziLFjJXKyOR^CFv?)=Fx)fq#|7>E9?T}p|`i`EJo2K^uT Cd~?zO diff --git a/muranodashboard-tests/AppForUploadTest/manifest.yaml b/muranodashboard-tests/AppForUploadTest/manifest.yaml deleted file mode 100644 index 6f0abd6..0000000 --- a/muranodashboard-tests/AppForUploadTest/manifest.yaml +++ /dev/null @@ -1,10 +0,0 @@ -Format: 1.0 -Type: Application -FullName: io.murano.apps.AppForUploadTest -Name: AppForUploadTest -Description: | - This is test package. -Author: 'Mirantis, Inc' -Tags: [test_tag] -Classes: - io.murano.apps.AppForUploadTest: AppForUploadTest.yaml diff --git a/muranodashboard-tests/PostgreSQL/Classes/PostgreSql.yaml b/muranodashboard-tests/PostgreSQL/Classes/PostgreSql.yaml deleted file mode 100644 index 8b24f53..0000000 --- a/muranodashboard-tests/PostgreSQL/Classes/PostgreSql.yaml +++ /dev/null @@ -1,47 +0,0 @@ -Namespaces: - =: io.murano.apps.PostgreSql - std: io.murano - res: io.murano.resources - - -Name: PostgreSql - -Extends: std:Application - -Properties: - name: - Contract: $.string().notNull() - - instance: - Contract: $.class(res:Instance).notNull() - - username: - Contract: $.string().notNull() - - password: - Contract: $.string().notNull() - - database: - Contract: $.string().notNull() - -Workflow: - deploy: - Body: - - $.instance.deploy() - - $resources: new('io.murano.system.Resources') - # Deploy PostgreSql - - $template: $resources.yaml('DeployPostgreSql.template') - - $.instance.agent.call($template, $resources) - # Configure Database on PostgreSQL - - $template: $resources.yaml('ConfigurePostgreSqlDatabase.template').bind(dict( - database => $.database, - username => $.username, - password => $.password - )) - - $.instance.agent.call($template, $resources) - - getIp: - Body: - - $resources: new('io.murano.system.Resources') - - $template: $resources.yaml('GetIP.template') - - $.instance.agent.call($template, $resources) diff --git a/muranodashboard-tests/PostgreSQL/Resources/ConfigurePostgreSqlDatabase.template b/muranodashboard-tests/PostgreSQL/Resources/ConfigurePostgreSqlDatabase.template deleted file mode 100644 index e311f63..0000000 --- a/muranodashboard-tests/PostgreSQL/Resources/ConfigurePostgreSqlDatabase.template +++ /dev/null @@ -1,22 +0,0 @@ -FormatVersion: 2.0.0 -Version: 1.0.0 -Name: Add database and user to PostgreSql - -Parameters: - database: $database - username: $username - password: $password - -Body: | - return configure('{0} {1} {2}'.format(args.database, args.username, args.password)).stdout - -Scripts: - configure: - Type: Application - Version: 1.0.0 - EntryPoint: configurePostgreSqlDatabase.sh - Files: - - - Options: - captureStdout: true - captureStderr: false diff --git a/muranodashboard-tests/PostgreSQL/Resources/DeployPostgreSql.template b/muranodashboard-tests/PostgreSQL/Resources/DeployPostgreSql.template deleted file mode 100644 index edf6abe..0000000 --- a/muranodashboard-tests/PostgreSQL/Resources/DeployPostgreSql.template +++ /dev/null @@ -1,21 +0,0 @@ -FormatVersion: 2.0.0 -Version: 1.0.0 -Name: Deploy PostgreSql - -Parameters: - appName: $appName - -Body: | - return deploy(args.appName).stdout - -Scripts: - deploy: - Type: Application - Version: 1.0.0 - EntryPoint: deployPostgreSql.sh - Files: - - - - - Options: - captureStdout: true - captureStderr: false diff --git a/muranodashboard-tests/PostgreSQL/Resources/GetIP.template b/muranodashboard-tests/PostgreSQL/Resources/GetIP.template deleted file mode 100644 index 3b8b2e0..0000000 --- a/muranodashboard-tests/PostgreSQL/Resources/GetIP.template +++ /dev/null @@ -1,19 +0,0 @@ -FormatVersion: 2.0.0 -Version: 1.0.0 -Name: Deploy Tomcat - -Parameters: - appName: $appName - -Body: | - return getIp(args.appName).stdout - -Scripts: - getIp: - Type: Application - Version: 1.0.0 - EntryPoint: Linux/getIp.sh - Files: [] - Options: - captureStdout: true - captureStderr: false diff --git a/muranodashboard-tests/PostgreSQL/Resources/scripts/common.sh b/muranodashboard-tests/PostgreSQL/Resources/scripts/common.sh deleted file mode 100644 index 8afef14..0000000 --- a/muranodashboard-tests/PostgreSQL/Resources/scripts/common.sh +++ /dev/null @@ -1,204 +0,0 @@ -#!/bin/bash -# -DEBUGLVL=3 -LOGFILE=/tmp/muranodeployment.log -PIPAPPS="pip python-pip pip-python" -PIPCMD="" -if [ "$DEBUGLVL" -eq 4 ]; then - set -x -fi -function log { - if [ "$DEBUGLVL" -gt 0 ]; then - chars=$(echo "@$" | wc -c) - case $DEBUGLVL in - 1 ) - echo -e "LOG:>$@" - ;; - 2) - echo -e "$(date +"%m-%d-%Y %H:%M") LOG:>$@" | tee --append $LOGFILE - ;; - 3) - echo -e "$(date +"%m-%d-%Y %H:%M") LOG:>$@" >> $LOGFILE - ;; - 4) - echo -e "$(date +"%m-%d-%Y %H:%M") LOG:>$@" | tee --append $LOGFILE - ;; - esac - fi -} -function lowercase(){ - echo "$1" | sed "y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/" -} -function find_pip() -{ - for cmd in $PIPAPPS - do - _cmd=$(which $cmd 2>/dev/null) - if [ $? -eq 0 ];then - break - fi - done - if [ -z $_cmd ];then - echo "Can't find \"pip\" in system, please install it first, exiting!" - exit 1 - else - PIPCMD=$_cmd - fi -} -OPTIND=1 # Reset if getopts used previously -function collect_args(){ - _n=$1 - shift - ARGS='' - while true - do - if [[ "$_n" == -* ]] || [ -z "$_n" ]; then - OPTIND=$((OPTIND - 1)) - break - fi - #echo "_n=$_n ; $OPTIND" - if [ -z "$ARGS" ]; then - ARGS=$OPTARG - else - ARGS="$ARGS $_n" - fi - eval _n=\$$OPTIND - OPTIND=$((OPTIND + 1)) - #sleep 1 - done - echo $ARGS - unset _n - unset ARGS -} -function get_os(){ - KERNEL=$(uname -r) - MACH=$(uname -m) - OS=$(uname) - if [ "${OS}" = "Linux" ] ; then - if [ -f /etc/redhat-release ] ; then - DistroBasedOn='RedHat' - Packager='yum' - DIST=$(cat /etc/redhat-release |sed s/\ release.*//) - PSUEDONAME=$(cat /etc/redhat-release | sed s/.*\(// | sed s/\)//) - REV=$(cat /etc/redhat-release | sed s/.*release\ // | sed s/\ .*//) - elif [ -f /etc/SuSE-release ] ; then - DistroBasedOn='SuSe' - Packager='zypper' - PSUEDONAME=$(cat /etc/SuSE-release | tr "\n" ' '| sed s/VERSION.*//) - REV=$(cat /etc/SuSE-release | tr "\n" ' ' | sed s/.*=\ //) - elif [ -f /etc/mandrake-release ] ; then - DistroBasedOn='Mandrake' - Packager='urpmi urpme' - PSUEDONAME=$(cat /etc/mandrake-release | sed s/.*\(// | sed s/\)//) - REV=$(cat /etc/mandrake-release | sed s/.*release\ // | sed s/\ .*//) - elif [ -f /etc/debian_version ] ; then - DistroBasedOn='Debian' - Packager='apt-get' - DIST=$(cat /etc/lsb-release | grep '^DISTRIB_ID' | awk -F= '{ print $2 }') - PSUEDONAME=$(cat /etc/lsb-release | grep '^DISTRIB_CODENAME' | awk -F= '{ print $2 }') - REV=$(cat /etc/lsb-release | grep '^DISTRIB_RELEASE' | awk -F= '{ print $2 }') - fi - if [ -f /etc/UnitedLinux-release ] ; then - DIST="${DIST}[$(cat /etc/UnitedLinux-release | tr "\n" ' ' | sed s/VERSION.*//)]" - fi - OS=$(lowercase $OS) - DistroBasedOn=$(lowercase $DistroBasedOn) - readonly OS - readonly DIST - readonly DistroBasedOn - readonly PSUEDONAME - readonly REV - readonly KERNEL - readonly MACH - #readonly Packager - else - OS=unknown - readonly OS - log "OS:$OS" - exit 1 - fi -} -function add_fw_rule(){ - _rule_string=$@ - _tmp_fw_port=$(echo $_rule_string | grep -o -e "dport [0-9]*\s") - _tmp_fw_proto=$(echo $_rule_string | grep -o -e "-p \w*\s") - _fw_port=$(echo $_tmp_fw_port | awk '{print $2}') - _fw_proto=$(echo $_tmp_fw_proto |awk '{print $2}') - _fw_reload="" - #find iptables and add rule - case $DIST in - "Fedora") - _fw_cmd=$(which firewall-cmd) - _fw_port=$(echo $_rule_string | grep -o -e "dport [0-9]*\s" | awk '{print $2}') - _fw_proto=$(echo $_rule_string | grep -o -e "-p \w*\s" | awk '{print $2}') - _fw_rule="--permanent --add-port=$_fw_port/$_fw_proto" - _fw_enable_rules="$_fw_cmd --reload" - ;; - *) - _fw_cmd=$(which iptables) - _fw_rule=$_rule_string - _fw_enable_rules="service $(basename $_fw_cmd) save" - ;; - esac - iptcmdsave=$(which iptables-save) - if [[ "$_fw_cmd" != '' ]] && [[ "$iptcmdsave" != '' ]]; then - eval "$iptcmdsave | grep -e \"$_tmp_fw_port\" | grep -e \"$_tmp_fw_proto\"" > /dev/null 2>&1 - if [ $? -ne 0 ]; then - eval $_fw_cmd $_fw_rule - if [ $? -ne 0 ]; then - log "Can't set firewall rules, exiting..." - exit 1 - else - if [ -n "$_fw_enable_rules" ]; then - log "Running \"$_fw_enable_rules\"" - $_fw_enable_rules > /dev/null - fi - log "$_fw_cmd rule with $_fw_rule set." - fi - else - log "$_fw_cmd rule exists." - fi - else - log "There are no fw found..." - fi -} -function enable_init(){ - _initctrl="" - _init_suffix="" - _service=$1 - case $DistroBasedOn in - "debian") - _initctrl="update-rc.d" - _init_suffix="defaults" - ;; - *) - _initctrl="chkconfig" - _init_suffix="on" - ;; - esac - $_initctrl $_service $_init_suffix - if [ $? -ne 0 ]; then - log "$_initctrl $_service $_init_suffix - fails!" - exit 1 - fi -} -function restart_service(){ - _service=$1 - service $_service restart > /dev/null 2>&1 - if [ $? -ne 0 ]; then - log "Can't start $_service service!" - exit 1 - fi -} -function package_renamer(){ - _pkg=$1 - case $DistroBasedOn in - "debian") - _pkg=$(echo $_pkg | sed 's/-devel$/-dev/') - ;; - *) - _pkg=$(echo $_pkg | sed 's/-dev$/-devel/') - ;; - esac - echo $_pkg -} \ No newline at end of file diff --git a/muranodashboard-tests/PostgreSQL/Resources/scripts/configurePostgreSqlDatabase.sh b/muranodashboard-tests/PostgreSQL/Resources/scripts/configurePostgreSqlDatabase.sh deleted file mode 100644 index d6e095b..0000000 --- a/muranodashboard-tests/PostgreSQL/Resources/scripts/configurePostgreSqlDatabase.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -function include(){ - curr_dir=$(cd $(dirname "$0") && pwd) - inc_file_path=$curr_dir/$1 - if [ -f "$inc_file_path" ]; then - . $inc_file_path - else - echo -e "$inc_file_path not found!" - exit 1 - fi -} -include "common.sh" - -get_os -[[ $? -ne 0 ]] && exit 1 -if [[ "$DistroBasedOn" != "redhat" ]]; then - DEBUGLVL=4 - log "ERROR: We are sorry, only \"redhat\" based distribution of Linux supported for this service type, exiting!" - exit 1 -fi - -su -c "psql -d postgres -c \"CREATE DATABASE $1\"" -s /bin/sh postgres -su -c "psql -d postgres -c \"CREATE USER $2 WITH PASSWORD '$3'\"" -s /bin/sh postgres -su -c "psql -d postgres -c \"GRANT ALL PRIVILEGES ON DATABASE $1 to $2;\"" -s /bin/sh postgres -echo "host $1 $2 all md5" >> /var/lib/pgsql/data/pg_hba.conf - -systemctl restart postgresql.service diff --git a/muranodashboard-tests/PostgreSQL/Resources/scripts/deployPostgreSql.sh b/muranodashboard-tests/PostgreSQL/Resources/scripts/deployPostgreSql.sh deleted file mode 100644 index 6d8d44c..0000000 --- a/muranodashboard-tests/PostgreSQL/Resources/scripts/deployPostgreSql.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -function include(){ - curr_dir=$(cd $(dirname "$0") && pwd) - inc_file_path=$curr_dir/$1 - if [ -f "$inc_file_path" ]; then - . $inc_file_path - else - echo -e "$inc_file_path not found!" - exit 1 - fi -} -include "common.sh" - -get_os -[[ $? -ne 0 ]] && exit 1 -if [[ "$DistroBasedOn" != "redhat" ]]; then - DEBUGLVL=4 - log "ERROR: We are sorry, only \"redhat\" based distribution of Linux supported for this service type, exiting!" - exit 1 -fi - -bash installer.sh -p sys -i "postgresql-server postgresql-contrib" - -postgresql-setup initdb - -sed -e "s/^#listen_addresses =.*$/listen_addresses = \'*\'/" -i /var/lib/pgsql/data/postgresql.conf -add_fw_rule '-I INPUT 1 -p tcp -m tcp --dport 5432 -j ACCEPT -m comment --comment "by murano, PostgreSQL"' - -systemctl enable postgresql.service -systemctl start postgresql.service diff --git a/muranodashboard-tests/PostgreSQL/Resources/scripts/getIp.sh b/muranodashboard-tests/PostgreSQL/Resources/scripts/getIp.sh deleted file mode 100644 index f7113c6..0000000 --- a/muranodashboard-tests/PostgreSQL/Resources/scripts/getIp.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -curl -s http://169.254.169.254/latest/meta-data/local-ipv4 diff --git a/muranodashboard-tests/PostgreSQL/Resources/scripts/installer.sh b/muranodashboard-tests/PostgreSQL/Resources/scripts/installer.sh deleted file mode 100644 index 9d4baa5..0000000 --- a/muranodashboard-tests/PostgreSQL/Resources/scripts/installer.sh +++ /dev/null @@ -1,142 +0,0 @@ -#!/bin/bash -# -INSTALLER_OPTS="" -UNINSTALLER_OPTS="" -PMGR="" -PMGR_LIST_OPTS="" - -function include(){ - curr_dir=$(cd $(dirname "$0") && pwd) - inc_file_path=$curr_dir/$1 - if [ -f "$inc_file_path" ]; then - . $inc_file_path - else - exit 1 - fi -} -function set_install_options(){ - case $1 in - apt-get ) - INSTALLER_OPTS="-y -q install" - UNINSTALLER_OPTS="-y -q remove" - PMGR="dpkg" - PMGR_LIST_OPTS="-s" - ;; - yum ) - INSTALLER_OPTS="--assumeyes install" - UNINSTALLER_OPTS="--assumeyes erase" - PMGR="rpm" - PMGR_LIST_OPTS="-q" - ;; - urpm* ) - INSTALLER_OPTS="-y" - UNINSTALLER_OPTS="" - PMGR="rpm" - PMGR_LIST_OPTS="-q" - ;; - zypper ) - INSTALLER_OPTS="install" - UNINSTALLER_OPTS="remove --quiet" - PMGR="rpm" - PMGR_LIST_OPTS="-q" - ;; - pip ) - INSTALLER_OPTS="install" - UNINSTALLER_OPTS="uninstall --yes" - find_pip - PACKAGER=$PIPCMD - PMGR=$PIPCMD - PMGR_LIST_OPTS="freeze | grep" - ;; - * ) - exit 1 - ;; - esac - PACKAGER=$(which $1) - if [ $? -ne 0 ]; then - log "Can't find \"$1\", exiting!" - exit 1 - fi -} -function package_install(){ - PKG=$1 - eval "$PMGR $PMGR_LIST_OPTS $PKG" > /dev/null 2>&1 - if [ $? -eq 0 ]; then - log "\"$PKG\" already installed" - else - log "Installing \"$PKG\" ..." - $PACKAGER $INSTALLER_OPTS $PKG > /dev/null 2>&1 - if [ $? -ne 0 ]; then - log "\"$PKG\" installation fails, exiting!" - exit 1 - else - log "\t\t...success" - fi - fi -} -function package_uninstall(){ - PKG=$1 - eval "$PMGR $PMGR_LIST_OPTS $PKG" > /dev/null 2>&1 - if [ $? -eq 1 ]; then - log "\"$PKG\" not installed" - else - log "Unnstalling \"$PKG\" ..." - $PACKAGER $UNINSTALLER_OPTS $PKG > /dev/null 2>&1 - if [ $? -ne 0 ]; then - log "\"$PKG\" uninstallation fails, exiting!" - exit 1 - else - log "\t\t...success" - fi - fi -} -function run_install(){ - for PKG in $@ - do - package_install $PKG - done -} -function run_uninstall(){ - for PKG in $@ - do - package_uninstall $PKG - done -} -# Main workflow -include "common.sh" -if [ $# -eq 0 ]; then - script=$(basename $0) - echo -e "Usage:\n\t* install packages -- ./$script -p package_manager -i package0 [packageN]\n\t* remove packages -- ./$script -p package_manager -r package0 [packageN]" - exit 1 -fi -Packager='' -get_os -if [ $? -ne 0 ]; then - log "Unsupported *nix version ($DistroBasedOn - $DIST/$PSUEDONAME/$REV/$MACH)" - exit 1 -fi -while getopts ":p:i:r:" opt ; do - case "$opt" in - p) - if [[ "$OPTARG" != sys ]]; then - Packager=$OPTARG - fi - set_install_options $Packager - ;; - i) - n=$OPTARG - run_install $(collect_args $n $@) - break; - ;; - r) - n=$OPTARG - run_uninstall $(collect_args $n $@) - break; - ;; - \?) - log "Invalid option: -$OPTARG" >&2 - exit 1 - ;; - esac -done -shift $((OPTIND-1)) \ No newline at end of file diff --git a/muranodashboard-tests/PostgreSQL/UI/ui.yaml b/muranodashboard-tests/PostgreSQL/UI/ui.yaml deleted file mode 100644 index c516238..0000000 --- a/muranodashboard-tests/PostgreSQL/UI/ui.yaml +++ /dev/null @@ -1,85 +0,0 @@ -Version: 2 - -Application: - ?: - type: io.murano.apps.PostgreSql - name: $.serviceConfiguration.name - database: $.serviceConfiguration.database - username: $.serviceConfiguration.username - password: $.serviceConfiguration.password - instance: - ?: - type: io.murano.resources.Instance - name: generateHostname($.serviceConfiguration.unitNamingPattern, 1) - flavor: $.instanceConfiguration.flavor - image: $.instanceConfiguration.osImage - -Forms: - - serviceConfiguration: - fields: - - name: name - type: string - label: Service Name - description: >- - To identify your service in logs please specify a service name - - name: database - type: string - label: Database - description: >- - Please, provide database name that is going to be created - - name: username - type: string - label: Username - description: >- - Please, provide username that is going to be used to connect to the database - - name: password - type: password - label: Password - descriptionTitle: Password - description: >- - Please, provide password that is going to be used to connect to the database - - name: dcInstances - type: integer - hidden: true - initial: 1 - - name: unitNamingPattern - type: string - required: false - hidden: true - widgetMedia: - js: ['muranodashboard/js/support_placeholder.js'] - css: {all: ['muranodashboard/css/support_placeholder.css']} - - instanceConfiguration: - fields: - - name: title - type: string - required: false - hidden: true - descriptionTitle: Instance Configuration - description: Specify some instance parameters on which service would be created. - - name: flavor - type: flavor - label: Instance flavor - description: >- - Select registered in Openstack flavor. Consider that service performance - depends on this parameter. - required: false - - name: osImage - type: image - imageType: linux - label: Instance image - description: >- - Select valid image for a service. Image should already be prepared and - registered in glance. - - name: keyPair - type: keypair - label: Key Pair - description: >- - Select the Key Pair to control access to instances. You can login to - instances using this KeyPair after the deployment of service. - required: false - - name: availabilityZone - type: azone - label: Availability zone - description: Select availability zone where service would be installed. - required: false diff --git a/muranodashboard-tests/PostgreSQL/logo.png b/muranodashboard-tests/PostgreSQL/logo.png deleted file mode 100644 index e1a24717ead46edf8a7a111f11a97e48bde97693..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11634 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 Cd~?zO diff --git a/muranodashboard-tests/PostgreSQL/manifest.yaml b/muranodashboard-tests/PostgreSQL/manifest.yaml deleted file mode 100644 index 4f1005d..0000000 --- a/muranodashboard-tests/PostgreSQL/manifest.yaml +++ /dev/null @@ -1,13 +0,0 @@ -Format: 1.0 -Type: Application -FullName: io.murano.apps.PostgreSql -Name: PostgreSQL -Description: | - PostgreSQL is a powerful, open source object-relational database system. - It has more than 15 years of active development and a proven architecture - that has earned it a strong reputation for reliability, data integrity, - and correctness. -Author: 'Mirantis, Inc' -Tags: [Database, Postgre, SQL, RDBMS] -Classes: - io.murano.apps.PostgreSql: PostgreSql.yaml diff --git a/muranodashboard-tests/base.py b/muranodashboard-tests/base.py index 2f06324..6060954 100644 --- a/muranodashboard-tests/base.py +++ b/muranodashboard-tests/base.py @@ -10,11 +10,9 @@ import requests from selenium import webdriver from selenium.common.exceptions import NoSuchElementException import selenium.webdriver.common.by as by -from selenium.webdriver.common.desired_capabilities import DesiredCapabilities from selenium.webdriver.support.ui import WebDriverWait import testtools import time -import zipfile from keystoneclient.v2_0 import client as ksclient from muranoclient.client import Client as mclient @@ -86,24 +84,11 @@ class UITestCase(BaseDeps): cls.location = os.path.realpath( os.path.join(os.getcwd(), os.path.dirname(__file__))) - def archive_app(app_name): - __folderpath__ = os.path.join(cls.location, "{0}".format(app_name)) - __rootlen__ = len(__folderpath__) + 1 - with zipfile.ZipFile(os.path.join( - cls.location, - "{0}.zip".format(app_name)), "w") as zf: - for dirname, _, files in os.walk(__folderpath__): - for filename in files: - fn = os.path.join(dirname, filename) - zf.write(fn, fn[__rootlen__:]) - archive_app('PostgreSQL') - archive_app('AppForUploadTest') - - def upload_package(package_name, body): + def upload_package(package_name, body, app): files = {'%s' % package_name: open( - os.path.join(cls.location, 'PostgreSQL.zip'), 'rb')} + os.path.join(cls.location, app), 'rb')} post_body = {'JsonString': json.dumps(body)} request_url = '{endpoint}{url}'.format( @@ -117,7 +102,24 @@ class UITestCase(BaseDeps): cls.postgre_id = upload_package( 'PostgreSQL', - {"categories": ["Web"], "tags": ["tag"]}) + {"categories": ["Databases"], "tags": ["tag"]}, + 'murano-app-incubator/io.murano.apps.PostgreSql.zip') + cls.apache_id = upload_package( + 'Apache', + {"categories": ["Application Servers"], "tags": ["tag"]}, + 'murano-app-incubator/io.murano.apps.apache.Apache.zip') + cls.tomcat_id = upload_package( + 'Tomcat', + {"categories": ["Application Servers"], "tags": ["tag"]}, + 'murano-app-incubator/io.murano.apps.apache.Tomcat.zip') + cls.telnet_id = upload_package( + 'Telnet', + {"categories": ["Web"], "tags": ["tag"]}, + 'murano-app-incubator/io.murano.apps.linux.Telnet.zip') + cls.ad_id = upload_package( + 'Active Directory', + {"categories": ["Microsoft Services"], "tags": ["tag"]}, + 'murano-app-incubator/io.murano.windows.ActiveDirectory.zip') def setUp(self): super(UITestCase, self).setUp() @@ -140,13 +142,17 @@ class UITestCase(BaseDeps): def tearDownClass(cls): super(UITestCase, cls).tearDownClass() - os.remove(os.path.join(cls.location, 'PostgreSQL.zip')) - os.remove(os.path.join(cls.location, 'AppForUploadTest.zip')) + def delete_package(package_id): + request_url = '{endpoint}{url}'.format( + endpoint=cfg.common.murano_url, + url='/v1/catalog/packages/{0}'.format(package_id)) + requests.delete(request_url, headers=cls.headers) - request_url = '{endpoint}{url}'.format( - endpoint=cfg.common.murano_url, - url='/v1/catalog/packages/{0}'.format(cls.postgre_id)) - requests.delete(request_url, headers=cls.headers) + delete_package(cls.postgre_id) + delete_package(cls.apache_id) + delete_package(cls.tomcat_id) + delete_package(cls.telnet_id) + delete_package(cls.ad_id) def take_screenshot(self, test_name): screenshot_dir = './screenshots' @@ -238,11 +244,11 @@ class UITestCase(BaseDeps): self.driver.find_element_by_id( "murano__row_{0}__action_show".format(element_id)).click() - def create_demo_service(self, service_name): + def create_demo_service(self, app_name): self.driver.find_element_by_xpath( self.elements.get('apps', 'Demo')).click() - self.fill_field(by.By.ID, 'id_0-name', service_name) + self.fill_field(by.By.ID, 'id_0-name', app_name) self.driver.find_element_by_xpath( self.elements.get('button', 'ButtonSubmit')).click() @@ -250,33 +256,29 @@ class UITestCase(BaseDeps): self.driver.find_element_by_xpath( self.elements.get('button', 'ButtonSubmit')).click() - def create_linux_telnet(self, service_name): - self.driver.find_element_by_xpath( - self.elements.get('apps', 'Telnet')).click() + def create_linux_telnet(self, app_name, app_id): + self.select_and_click_action_for_app('quick-add', app_id) - self.fill_field(by.By.ID, 'id_0-name', service_name) + self.fill_field(by.By.ID, 'id_0-name', app_name) self.driver.find_element_by_xpath( self.elements.get('button', 'ButtonSubmit')).click() self.select_from_list('1-osImage', self.linux_image) - self.select_from_list('1-keyPair', self.keypair) self.driver.find_element_by_xpath( self.elements.get('button', 'InputSubmit')).click() - def create_linux_apache(self, service_name): - self.driver.find_element_by_xpath( - self.elements.get('apps', 'Apache')).click() + def create_linux_apache(self, app_name, app_id): + self.select_and_click_action_for_app('quick-add', app_id) - self.fill_field(by.By.ID, 'id_0-name', service_name) + self.fill_field(by.By.ID, 'id_0-name', app_name) self.driver.find_element_by_xpath( self.elements.get('button', 'ButtonSubmit')).click() self.select_from_list('1-osImage', self.linux_image) - self.select_from_list('1-keyPair', self.keypair) self.driver.find_element_by_xpath( self.elements.get('button', 'InputSubmit')).click() - def create_ad_service(self, service_name): - self.fill_field(by.By.ID, 'id_0-name', service_name) + def create_ad_service(self, app_name): + self.fill_field(by.By.ID, 'id_0-name', app_name) self.fill_field(by.By.ID, 'id_0-adminPassword', 'P@ssw0rd') self.fill_field(by.By.ID, 'id_0-adminPassword-clone', 'P@ssw0rd') self.fill_field(by.By.ID, 'id_0-recoveryPassword', 'P@ssw0rd') @@ -288,11 +290,11 @@ class UITestCase(BaseDeps): next_button = self.elements.get('button', 'InputSubmit') self.driver.find_element_by_xpath(next_button).click() - def create_iis_service(self, service_name): + def create_iis_service(self, app_name): self.driver.find_element_by_xpath( self.elements.get('apps', 'IIS')).click() - self.fill_field(by.By.ID, 'id_0-name', service_name) + self.fill_field(by.By.ID, 'id_0-name', app_name) self.fill_field(by.By.ID, 'id_0-adminPassword', 'P@ssw0rd') self.fill_field(by.By.ID, 'id_0-adminPassword-clone', 'P@ssw0rd') self.driver.find_element_by_xpath( @@ -302,11 +304,11 @@ class UITestCase(BaseDeps): self.driver.find_element_by_xpath( self.elements.get('button', 'InputSubmit')).click() - def create_asp_service(self, service_name): + def create_asp_service(self, app_name): self.driver.find_element_by_xpath( self.elements.get('apps', 'ASP')).click() - self.fill_field(by.By.ID, 'id_0-name', service_name) + self.fill_field(by.By.ID, 'id_0-name', app_name) self.fill_field(by.By.ID, 'id_0-adminPassword', 'P@ssw0rd') self.fill_field(by.By.ID, 'id_0-adminPassword-clone', 'P@ssw0rd') self.fill_field(by.By.ID, 'id_0-repository', self.asp_git_repository) @@ -318,11 +320,11 @@ class UITestCase(BaseDeps): self.driver.find_element_by_xpath( self.elements.get('button', 'InputSubmit')).click() - def create_iisfarm_service(self, service_name): + def create_iisfarm_service(self, app_name): self.driver.find_element_by_xpath( self.elements.get('apps', 'IISFarm')).click() - self.fill_field(by.By.ID, 'id_0-name', service_name) + self.fill_field(by.By.ID, 'id_0-name', app_name) self.fill_field(by.By.ID, 'id_0-adminPassword', 'P@ssw0rd') self.fill_field(by.By.ID, 'id_0-adminPassword-clone', 'P@ssw0rd') @@ -333,11 +335,11 @@ class UITestCase(BaseDeps): self.driver.find_element_by_xpath( self.elements.get('button', 'InputSubmit')).click() - def create_aspfarm_service(self, service_name): + def create_aspfarm_service(self, app_name): self.driver.find_element_by_xpath( self.elements.get('apps', 'ASPFarm')).click() - self.fill_field(by.By.ID, 'id_0-name', service_name) + self.fill_field(by.By.ID, 'id_0-name', app_name) self.fill_field(by.By.ID, 'id_0-adminPassword', 'P@ssw0rd') self.fill_field(by.By.ID, 'id_0-adminPassword-clone', 'P@ssw0rd') self.fill_field(by.By.ID, 'id_0-repository', self.asp_git_repository) @@ -349,11 +351,11 @@ class UITestCase(BaseDeps): self.driver.find_element_by_xpath( self.elements.get('button', 'InputSubmit')).click() - def create_mssql_service(self, service_name): + def create_mssql_service(self, app_name): self.driver.find_element_by_xpath( self.elements.get('apps', 'MSSQL')).click() - self.fill_field(by.By.ID, 'id_0-name', service_name) + self.fill_field(by.By.ID, 'id_0-name', app_name) self.fill_field(by.By.ID, 'id_0-adminPassword', 'P@ssw0rd') self.fill_field(by.By.ID, 'id_0-adminPassword-clone', 'P@ssw0rd') self.fill_field(by.By.ID, 'id_0-saPassword', 'P@ssw0rd') @@ -366,11 +368,11 @@ class UITestCase(BaseDeps): self.driver.find_element_by_xpath( self.elements.get('button', 'InputSubmit')).click() - def create_sql_cluster_service(self, service_name, domain_name): + def create_sql_cluster_service(self, app_name, domain_name): self.driver.find_element_by_xpath( self.elements.get('apps', 'SQL_cluster')).click() - self.fill_field(by.By.ID, 'id_0-name', service_name) + self.fill_field(by.By.ID, 'id_0-name', app_name) self.fill_field(by.By.ID, 'id_0-adminPassword', 'P@ssw0rd') self.fill_field(by.By.ID, 'id_0-adminPassword-clone', 'P@ssw0rd') @@ -407,15 +409,11 @@ class UITestCase(BaseDeps): self.driver.find_element_by_xpath( self.elements.get('button', 'ButtonSubmit')).click() - def create_tomcat_service(self, service_name, database): - self.driver.find_element_by_xpath( - self.elements.get('apps', 'Tomcat')).click() - - self.fill_field(by.By.ID, 'id_0-name', service_name) + def create_tomcat_service(self, app_name, database): + self.fill_field(by.By.ID, 'id_0-name', app_name) + self.select_from_list('0-database', database) self.fill_field(by.By.ID, 'id_0-repository', self.tomcat_repository) - self.select_from_list('id_0-psqlDatabase', database) - self.driver.find_element_by_xpath( self.elements.get('button', 'ButtonSubmit')).click() @@ -423,10 +421,10 @@ class UITestCase(BaseDeps): self.driver.find_element_by_xpath( self.elements.get('button', 'InputSubmit')).click() + self.driver.find_element_by_xpath( + self.elements.get('button', 'InputSubmit')).click() def create_postgreSQL_service(self, app_name): - self.driver.find_element_by_xpath( - self.elements.get('apps', 'postgreSQL')).click() self.fill_field(by.By.ID, 'id_0-name', app_name) self.fill_field(by.By.ID, 'id_0-database', 'psql-base') self.fill_field(by.By.ID, 'id_0-username', 'admin') @@ -446,13 +444,6 @@ class UITestCase(BaseDeps): ".//*[@data-display='{0}']".format(el_name)).get_attribute("id") return path.split('__')[-1] - def click_to_add_to_env(self, app_name): - self.navigate_to('Manage') - self.go_to_submenu('Package Definitions') - app_id = self.get_element_id(app_name) - self.navigate_to('Application_Catalog') - self.go_to_submenu('Applications') - def delete_component(self, component_name): component_id = self.get_element_id(component_name) self.driver.find_element_by_id( @@ -471,7 +462,7 @@ class UITestCase(BaseDeps): self.elements.get('button', 'ButtonSubmit')).click() time.sleep(3) appeared_text = self.driver.find_element_by_xpath( - "(.//div[@class = 'control-group form-field clearfix error'][%d])" + ".//div[@class = 'control-group form-field clearfix error'][%d]" % num).text index = appeared_text.find(error_message) diff --git a/muranodashboard-tests/common.ini b/muranodashboard-tests/common.ini index efe7b8a..be0897a 100644 --- a/muranodashboard-tests/common.ini +++ b/muranodashboard-tests/common.ini @@ -7,6 +7,4 @@ Next=//*[@id="create_service_form"]/strong/strong/div/button Murano=//*[@id="main_content"]/div[2]/div/dl/dt[3]/div Application_Catalog=//*[@id="main_content"]/div[2]/div/dl/dd[3]/div[1]/h4/div Manage=//*[@id="main_content"]/div[2]/div/dl/dd[3]/div[2]/h4/div -[apps] -AD=.//*[@id='main_content']/div[3]/div[1]/div[1]/div/div[2]/a[1] -IIS=.//*[@id='main_content']/div[3]/div[1]/div[3]/div/div[2]/a[1] +AddToEnv=.//*[@href='/horizon/murano/create_environment?next=/horizon/murano/catalog/index'] diff --git a/muranodashboard-tests/config/config_file.conf b/muranodashboard-tests/config/config_file.conf index 7dcf526..1c4aa65 100644 --- a/muranodashboard-tests/config/config_file.conf +++ b/muranodashboard-tests/config/config_file.conf @@ -7,4 +7,4 @@ tenant = WebTestProject keystone_url = http://127.0.0.1:5000/v2.0/ keypair_name = default_keypair asp_git_repository = git_repo_for_asp_app -tomcat_repository = git_repo_for_tomcat_servlets \ No newline at end of file +tomcat_repository = git_repo_for_tomcat \ No newline at end of file diff --git a/muranodashboard-tests/sanity_check.py b/muranodashboard-tests/sanity_check.py index c83d632..8cc8cac 100644 --- a/muranodashboard-tests/sanity_check.py +++ b/muranodashboard-tests/sanity_check.py @@ -118,7 +118,7 @@ class UISanityTests(UITestCase): self.assertIn('{"type": "windows.2012", "title": "TestImage"}', self.driver.page_source) - @testtools.skip("New UI in progress") + @testtools.skip("App is not in incubator") def test_006_create_and_delete_demo_service(self): """ Test check ability to create and delete demo service @@ -146,85 +146,76 @@ class UISanityTests(UITestCase): self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT, 'DemoService')) - @testtools.skip("New UI in progress") def test_007_create_and_delete_linux_telnet(self): """ - Test check ability to create and delete linux telnet service + Test check ability to create and delete Linux Telnet service Scenario: - 1. Navigate to Environments page - 2. Create environment - 3. Create linux telnet service in this environment by filling - the creation form - 4. Delete linux telnet service from environment + 1. Navigate to 'Application Catalog' + 2. Click on 'Quick Deploy' for Telnet application + 3. Create Linux Telnet app by filling the creation form + 4. Delete Linux Telnet app from environment """ - self.go_to_submenu('Environments') - self.create_environment('test') - self.env_to_components_list('test') + self.navigate_to('Manage') + self.go_to_submenu('Package Definitions') + telnet_id = self.get_element_id('Telnet') - self.driver.find_element_by_link_text('Add Application').click() - self.create_linux_telnet('linuxtelnet') + self.navigate_to('Application_Catalog') + self.go_to_submenu('Applications') + + self.create_linux_telnet('linuxtelnet', telnet_id) - self.go_to_submenu('Environments') - self.env_to_components_list('test') self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT, 'linuxtelnet')) - self.delete_component('linuxtelnet') self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT, 'linuxtelnet')) - @testtools.skip("New UI in progress") def test_008_create_and_delete_linux_apache(self): """ - Test check ability to create and delete linux apache service + Test check ability to create and delete Linux Apache service Scenario: - 1. Navigate to Environments page - 2. Create environment - 3. Create linux apache service in this environment by filling - the creation form - 4. Delete linux apache service from environment + 1. Navigate to 'Application Catalog' + 2. Click on 'Quick Deploy' for Apache application + 3. Create Linux Apache app by filling the creation form + 4. Delete Linux Apache app from environment """ - self.go_to_submenu('Environments') - self.create_environment('test') - self.env_to_components_list('test') + self.navigate_to('Manage') + self.go_to_submenu('Package Definitions') + apache_id = self.get_element_id('Apache HTTP Server') - self.driver.find_element_by_link_text('Add Component').click() - self.create_linux_apache('linuxapache') + self.navigate_to('Application_Catalog') + self.go_to_submenu('Applications') + + self.create_linux_apache('linuxapache', apache_id) - self.go_to_submenu('Environments') - self.env_to_components_list('test') self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT, 'linuxapache')) - self.delete_component('linuxapache') self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT, 'linuxapache')) - @testtools.skip("New UI in progress") def test_009_create_and_delete_ad_service(self): """ - Test check ability to create and delete active directory service + Test check ability to create and delete Active Directory service Scenario: - 1. Navigate to Environments page - 2. Create environment - 3. Create active directory service in this environment by filling - the creation form - 4. Delete active directory service from environment + 1. Navigate to 'Application Catalog' + 2. Click on 'Quick Deploy' for Active Directory application + 3. Create Active Directory app by filling the creation form + 4. Delete Active Directory app from environment """ - self.go_to_submenu('Environments') - self.create_environment('test') - self.env_to_components_list('test') + self.navigate_to('Manage') + self.go_to_submenu('Package Definitions') + ad_id = self.get_element_id('Active Directory') - self.driver.find_element_by_link_text('Add Component').click() - self.driver.find_element_by_xpath( - self.elements.get('apps', 'AD')).click() + self.navigate_to('Application_Catalog') + self.go_to_submenu('Applications') + + self.select_and_click_action_for_app('quick-add', ad_id) self.create_ad_service('muranotest.domain') - self.go_to_submenu('Environments') - self.env_to_components_list('test') self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT, 'muranotest.domain')) @@ -232,7 +223,7 @@ class UISanityTests(UITestCase): self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT, 'muranotest.domain')) - @testtools.skip("New UI in progress") + @testtools.skip("App is not in incubator") def test_010_create_and_delete_iis_service(self): """ Test check ability to create and delete IIS service @@ -259,7 +250,7 @@ class UISanityTests(UITestCase): self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT, 'IISService')) - @testtools.skip("New UI in progress") + @testtools.skip("App is not in incubator") def test_011_create_and_delete_asp_service(self): """ Test check ability to create and delete ASP.Net service @@ -287,7 +278,7 @@ class UISanityTests(UITestCase): self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT, 'ASPService')) - @testtools.skip("New UI in progress") + @testtools.skip("App is not in incubator") def test_012_create_and_delete_iisfarm_service(self): """ Test check ability to create and delete IIS Farm service @@ -315,7 +306,7 @@ class UISanityTests(UITestCase): self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT, 'IISFarmService')) - @testtools.skip("New UI in progress") + @testtools.skip("App is not in incubator") def test_013_create_and_delete_aspfarm_service(self): """ Test check ability to create and delete ASP.Net Farm service @@ -343,7 +334,7 @@ class UISanityTests(UITestCase): self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT, 'ASPFarmService')) - @testtools.skip("New UI in progress") + @testtools.skip("App is not in incubator") def test_014_create_and_delete_mssql_service(self): """ Test check ability to create and delete MSSQL service @@ -371,7 +362,7 @@ class UISanityTests(UITestCase): self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT, 'MSSQLService')) - @testtools.skip("New UI in progress") + @testtools.skip("App is not in incubator") def test_015_create_and_delete_sql_cluster_service(self): """ Test check ability to create and delete MSSQL cluster service @@ -401,53 +392,67 @@ class UISanityTests(UITestCase): self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT, 'SQLCluster')) - @testtools.skip("New UI in progress") def test_016_create_and_delete_tomcat_service(self): """ - Test check ability to create and delete tomcat service + Test check ability to create and delete Tomcat service Scenario: - 1. Navigate to Environments page - 2. Create environment - 3. Create tomcat service in this environment by filling - the creation form - 4. Delete tomcat service from environment + 1. Navigate to 'Application Catalog' + 2. Click on 'Quick Deploy' for Tomcat application + 3. Firstly, create PostgreSQL app by filling the creation form + 4. Create Tomcat app, in case of database select created + early PostgreSQL + 5. Delete Tomcat app from environment """ + self.navigate_to('Manage') + self.go_to_submenu('Package Definitions') + tomcat_id = self.get_element_id('Apache Tomcat') + postgre_id = self.get_element_id('PostgreSQL') + + self.navigate_to('Application_Catalog') self.go_to_submenu('Environments') self.create_environment('test') + env_id = self.get_element_id('test') self.env_to_components_list('test') self.driver.find_element_by_link_text('Add Component').click() - self.create_postgreSQL_service('posrgreSQL') + self.select_and_click_action_for_app('add/{0}'.format(env_id), + postgre_id) + self.create_postgreSQL_service('PostgreSQL') + self.driver.find_element_by_xpath( + self.elements.get('button', 'InputSubmit')).click() self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT, - 'posrgreSQL')) + 'PostgreSQL')) - self.driver.find_element_by_link_text('Create Service').click() - self.create_tomcat_service('tomcat-serv', 'posrgreSQL') + self.driver.find_element_by_link_text('Add Component').click() + self.select_and_click_action_for_app('add/{0}'.format(env_id), + tomcat_id) + + self.create_tomcat_service('tomcat-serv', 'PostgreSQL') self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT, 'tomcat-serv')) - self.delete_component('tomcat-serv') self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT, 'tomcat-serv')) - @testtools.skip("New UI in progress") def test_017_create_and_delete_postgreSQL_service(self): """ - Test check ability to create and delete postgreSQL service + Test check ability to create and delete PostgreSQL service Scenario: - 1. Navigate to Environments page - 2. Create environment - 3. Create postgreSQL service in this environment by filling - the creation form - 4. Delete postgreSQL service from environment + 1. Navigate to 'Application Catalog' + 2. Click on 'Quick Deploy' for PostgreSQL application + 3. Create PostgreSQL app by filling the creation form + 4. Delete PostgreSQL app from environment """ - self.go_to_submenu('Environments') - self.create_environment('test') - self.env_to_components_list('test') + self.navigate_to('Manage') + self.go_to_submenu('Package Definitions') + postgresql_id = self.get_element_id('PostgreSQL') - self.driver.find_element_by_link_text('Add Component').click() + self.navigate_to('Application_Catalog') + self.go_to_submenu('Applications') + + self.select_and_click_action_for_app('quick-add', postgresql_id) self.create_postgreSQL_service('PostgreSQL') self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT, 'PostgreSQL')) @@ -456,7 +461,7 @@ class UISanityTests(UITestCase): self.assertFalse(self.check_element_on_page(by.By.LINK_TEXT, 'PostgreSQL')) - @testtools.skip("New UI in progress") + @testtools.skip("https://bugs.launchpad.net/murano/+bug/1321690") def test_018_check_regex_expression_for_ad_name(self): """ Test check that validation of domain name field work and appropriate @@ -483,13 +488,14 @@ class UISanityTests(UITestCase): 12. Set "domain.local" as a domain name and check that error message didn't appear """ - self.go_to_submenu('Environments') - self.create_environment('test') - self.env_to_components_list('test') + self.navigate_to('Manage') + self.go_to_submenu('Package Definitions') + ad_id = self.get_element_id('Active Directory') - self.driver.find_element_by_link_text('Add Component').click() - self.driver.find_element_by_xpath( - self.elements.get('apps', 'AD')).click() + self.navigate_to('Application_Catalog') + self.go_to_submenu('Applications') + + self.select_and_click_action_for_app('quick-add', ad_id) self.fill_field(by.By.ID, field='id_0-name', value='a') self.assertTrue(self.check_that_error_message_is_correct( @@ -537,7 +543,7 @@ class UISanityTests(UITestCase): 'Period characters are allowed only when ' 'they are used to delimit the components of domain style names', 1)) - @testtools.skip("New UI in progress") + @testtools.skip("App is not in incubator") def test_019_check_regex_expression_for_iis_name(self): """ Test check that validation of iis name field work and appropriate @@ -577,70 +583,67 @@ class UISanityTests(UITestCase): self.assertFalse(self.check_that_error_message_is_correct( 'Just letters, numbers, underscores and hyphens are allowed.', 1)) - @testtools.skip("New UI in progress") def test_020_check_regex_expression_for_git_repo_field(self): """ Test check that validation of git repository field work and appropriate error message is appeared after entering incorrect url Scenario: - 1. Navigate to Environments page - 2. Create environment and start to create ASP.Net service + 1. Navigate to Application Catalog > Applications + 2. Start to create Tomcat service 3. Set "a" as a git repository url and verify error message 4. Set "://@:" as a git repository url and verify error message """ - self.go_to_submenu('Environments') - self.create_environment('test') - self.env_to_components_list('test') + self.navigate_to('Manage') + self.go_to_submenu('Package Definitions') + tomcat_id = self.get_element_id('Apache Tomcat') - self.driver.find_element_by_link_text('Add Component').click() - self.driver.find_element_by_xpath( - self.elements.get('apps', 'ASP')).click() + self.navigate_to('Application_Catalog') + self.go_to_submenu('Applications') + self.select_and_click_action_for_app('quick-add', tomcat_id) self.fill_field(by.By.ID, field='id_0-repository', value='a') self.assertTrue(self.check_that_error_message_is_correct( - 'Enter correct git repository url', 4)) + 'Enter a correct git repository URL', 3)) self.fill_field(by.By.ID, field='id_0-repository', value='://@:') self.assertTrue(self.check_that_error_message_is_correct( - 'Enter correct git repository url', 4)) + 'Enter a correct git repository URL', 3)) - @testtools.skip("New UI in progress") def test_021_check_validation_for_hostname_template_field(self): """ Test check that validation of hostname template field work and appropriate error message is appeared after entering incorrect name Scenario: - 1. Navigate to Environments page - 2. Create environment and start to create demo service - 3. Set "demo" as a hostname template name a and verify error message - 4. Set "demo" as a hostname template name and change number of - instances from 2 to 1 and check that there is no error message + 1. Navigate to Application Catalog > Applications + 2. Start to create Telnet service + 3. Set "`qwe`" as a hostname template name a and verify error message + 4. Set "host" as a hostname template name and + check that there is no error message """ - self.go_to_submenu('Environments') - self.create_environment('test') - self.env_to_components_list('test') + self.navigate_to('Manage') + self.go_to_submenu('Package Definitions') + telnet_id = self.get_element_id('Telnet') - self.driver.find_element_by_link_text('Add Component').click() - self.driver.find_element_by_xpath( - self.elements.get('apps', 'Demo')).click() + self.navigate_to('Application_Catalog') + self.go_to_submenu('Applications') - self.fill_field(by.By.ID, 'id_0-name', 'demo') - self.fill_field(by.By.ID, 'id_0-unitNamingPattern', 'demo') - - xpath = ".//*[@id='create_service_form']/div[1]/div[1]/fieldset/div[1]" + self.select_and_click_action_for_app('quick-add', telnet_id) + self.fill_field(by.By.ID, 'id_0-name', 'name') + self.fill_field(by.By.ID, 'id_0-unitNamingPattern', '`qwe`') self.driver.find_element_by_xpath( self.elements.get('button', 'ButtonSubmit')).click() - self.assertTrue(self.check_element_on_page(by.By.XPATH, xpath)) + self.assertTrue(self.check_that_error_message_is_correct( + 'Enter a valid value.', 1)) - self.fill_field(by.By.ID, 'id_0-dcInstances', value='1') + self.fill_field(by.By.ID, 'id_0-unitNamingPattern', 'host') self.driver.find_element_by_xpath( self.elements.get('button', 'ButtonSubmit')).click() WebDriverWait(self.driver, 10).until(lambda s: s.find_element( - by.By.ID, '1-osImage').is_displayed()) + by.By.ID, 'id_1-osImage').is_displayed()) @testtools.skip("New UI in progress") def test_022_check_bool_field_validation(self): @@ -702,7 +705,7 @@ class UISanityTests(UITestCase): self.assertTrue(self.check_that_error_message_is_correct( 'This field is required.', 1)) - @testtools.skip("New UI in progress") + @testtools.skip("App is not in incubator") def test_023_positive_scenario_1_for_the_MS_SQL_Cluster_Form(self): """ Test check one possible scenario of creation mssql cluster @@ -748,7 +751,7 @@ class UISanityTests(UITestCase): self.assertTrue(self.check_element_on_page( by.By.ID, 'id_msSqlClusterServer-1-clusterIp')) - @testtools.skip("New UI in progress") + @testtools.skip("App is not in incubator") def test_024_positive_scenario_2_for_the_MS_SQL_Cluster_Form(self): """ Test check one possible scenario of creation mssql cluster @@ -800,7 +803,7 @@ class UISanityTests(UITestCase): self.assertTrue(self.check_element_on_page( by.By.ID, 'id_msSqlClusterServer-1-clusterIp')) - @testtools.skip("New UI in progress") + @testtools.skip("App is not in incubator") def test_025_positive_scenario_3_for_the_MS_SQL_Cluster_Form(self): """ Test check one possible scenario of creation mssql cluster @@ -883,7 +886,7 @@ class UISanityTests(UITestCase): self.assertTrue(self.check_element_on_page( by.By.XPATH, './/*[@data-display="PostgreSQL"]')) - def test_041_modify_description(self): + def test_040_modify_description(self): """ Test check ability to change description of the package @@ -993,7 +996,7 @@ class UISanityTests(UITestCase): self.assertTrue(self.check_package_parameter( 'PostgreSQL', '3', 'True')) - def test_040_check_opportunity_to_delete_package(self): + def test_041_check_opportunity_to_delete_package(self): """ Test check ability to delete package from database @@ -1025,7 +1028,6 @@ class UISanityTests(UITestCase): self.assertTrue(self.check_element_on_page( by.By.XPATH, ".//*[@id='content_body']/div[1]/h2")) - @testtools.skip("There are no default apps in Murano") def test_034_env_creation_form_app_catalog_page(self): """ Test checks that app's option 'Add to environment' is operable @@ -1039,15 +1041,15 @@ class UISanityTests(UITestCase): 4. Add application in created environment """ self.go_to_submenu('Applications') - self.driver.find_element_by_link_text('Add to environment').click() + self.driver.find_element_by_xpath( + self.elements.get('button', 'AddToEnv')).click() - self.fill_field(by.By.ID, 'id_name', 'test_033') + self.fill_field(by.By.ID, 'id_name', 'test_env') self.driver.find_element_by_xpath( self.elements.get('button', 'InputSubmit')).click() - self.navigate_to('Application_Catalog') self.go_to_submenu('Environments') - self.driver.find_element_by_link_text('test_033').click() + self.driver.find_element_by_link_text('test_env').click() self.assertTrue( self.driver.find_element_by_id('services__action_AddApplication')) @@ -1089,7 +1091,6 @@ class UISanityTests(UITestCase): self.driver.find_element_by_xpath( ".//*[@id='MuranoSearchPanel']/form/button").click() - @testtools.skip("There are no default apps in Murano") def test_037_filter_by_category(self): """ Test checks ability to filter applications by category @@ -1102,28 +1103,28 @@ class UISanityTests(UITestCase): 4. Verify result """ self.navigate_to('Manage') - self.go_to_submenu('Package Definition') + self.go_to_submenu('Package Definitions') - package_category1 = self.get_element_id('PACKAGE_CATEGORY1') - package_category2 = self.get_element_id('PACKAGE_CATEGORY2') + package_category1 = self.get_element_id('PostgreSQL') + package_category2 = self.get_element_id('Active Directory') self.navigate_to('Application_Catalog') self.go_to_submenu('Applications') self.driver.find_element_by_id('MuranoCategoriesPanelToggle').click() - self.driver.find_element_by_link_text('CATEGORY1').click() + self.driver.find_element_by_link_text('Databases').click() self.assertTrue(self.check_element_on_page( - by.By.XPATH, "//*[@href='/murano/catalog/details/{1}']". + by.By.XPATH, ".//*[@href='/horizon/murano/catalog/details/{0}']". format(package_category1))) self.driver.find_element_by_id('MuranoCategoriesPanelToggle').click() - self.driver.find_element_by_link_text('CATEGORY2').click() + self.driver.find_element_by_link_text('Microsoft Services').click() self.assertTrue(self.check_element_on_page( - by.By.XPATH, "//*[@href='/murano/catalog/details/{1}']". + by.By.XPATH, ".//*[@href='/horizon/murano/catalog/details/{0}']". format(package_category2))) - @testtools.skip("There are no default apps in Murano") + @testtools.skip("Work in progress") def test_038_check_option_switch_env(self): """ Test checks ability to switch environment and to add app in other env @@ -1139,20 +1140,31 @@ class UISanityTests(UITestCase): 8. Navigate to 'Application Catalog>Environments' and go to the env2 9. Check that added application is here """ + self.navigate_to('Manage') + self.go_to_submenu('Package Definitions') + + app_id = self.get_element_id('Telnet') + + self.navigate_to('Application_Catalog') self.go_to_submenu('Environments') self.create_environment('env1') + self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT, + 'env1')) self.create_environment('env2') + self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT, + 'env1')) self.go_to_submenu('Applications') - self.driver.find_element_by_link_text('Environment').click() - self.driver.find_element_by_link_text('env2').click() + self.driver.find_element_by_id('MuranoDefaultEnvPanelToggle').click() + self.driver.find_element_by_id('environment_switcher').click() + self.driver.find_element_by_xpath( + ".//*[@id='environment_list']/li[2]/a").click() - self.select_and_click_action_for_app('add', 'PostgreSQL') - self.create_iis_service('IISService') + self.create_linux_telnet('linuxtelnet', app_id) self.go_to_submenu('Environments') - self.env_to_components_list('env2') + self.env_to_components_list('env1') self.assertTrue(self.check_element_on_page(by.By.LINK_TEXT, - 'PostgreSQL')) + 'linuxtelnet')) def test_039_check_statistics_panel(self): """