/* Ċ Ġ* ĠTencent Ġis Ġplease d Ġto Ġsupport Ġthe Ġopen Ġsource Ġcommunity Ġby Ġmaking ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġavailable . Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠTH L ĠA 2 9 ĠLimited , Ġa ĠTencent Ġcompany . Ġ ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġis Ġlicensed Ġunder Ġthe ĠMIT Ġlicense . Ċ Ġ* Ċ Ġ* ĠA Ġcopy Ġof Ġthe ĠMIT ĠLicense Ġis Ġincluded Ġin Ġthis Ġfile . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠTerms Ġof Ġthe ĠMIT ĠLicense : Ċ Ġ* Ġ------------------------------------------------ --- Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ċ Ġ* Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ġto Ġuse , Ġcopy , Ċ Ġ* Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe Ċ Ġ* ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT Ċ Ġ* ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN Ċ Ġ* ĠNO ĠEVENT ĠSHALL ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER ĠLIABILITY , Ċ Ġ* ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE Ċ Ġ* ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . tencent . devops . dispatch . controller Ċ Ċ import Ġcom . tencent . devops . common . api . exception . Invalid Param Exception Ċ import Ġcom . tencent . devops . common . api . pojo . Result Ċ import Ġcom . tencent . devops . common . web . Rest Resource Ċ import Ġcom . tencent . devops . dispatch . api . Op VM Resource Ċ import Ġcom . tencent . devops . dispatch . pojo . VM Ċ import Ġcom . tencent . devops . dispatch . pojo . VM Create Ċ import Ġcom . tencent . devops . dispatch . service . VM Service Ċ import Ġcom . tencent . devops . dispatch . utils . Shutdown V MA fter Build Utils Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ Ċ @ Rest Resource Ċ class ĠOp VM Resource Impl Ġ@ Autowired Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġvm Service : ĠVM Service , ĊĠĠĠ Ġprivate Ġval Ġshutdown V MA fter Build Utils : ĠShutdown V MA fter Build Utils Ċ ) Ġ: ĠOp VM Resource Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġlist ( ip : ĠString ?, Ġname : ĠString ?, Ġtype Id : ĠInt ?, Ġos : ĠString ?, Ġos Version : ĠString ?, Ġoffset : ĠInt ?, Ġlimit : ĠInt ?) Ġ= ĠResult ( vm Service . query VM s ( ip , Ġname , Ġtype Id , Ġos , Ġos Version , Ġoffset , Ġlimit )) ĊĊĠĠĠ Ġoverride Ġfun Ġget ( vm Id : ĠLong ): ĠResult < VM > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( vm Id Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInvalid Param Exception (" æĹł æķĪ çļĦ èĻļæĭŁ æľº ID ($ vm Id )") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( vm Service . query VM ById ( vm Id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd ( vm : ĠVM Create ): ĠResult < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġvm Service . add VM ( vm ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetBy Ip ( ip : ĠString ): ĠResult < VM > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( vm Service . query VM By Ip ( ip )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete ( id : ĠLong ): ĠResult < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġvm Service . delete VM ( id ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( vm : ĠVM Create ): ĠResult < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġvm Service . update VM ( vm ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġquery Status ( vm Name : ĠString ): ĠResult < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( vm Service . query VM Status ( vm Name )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmaintain ( vm Id : ĠLong , Ġenable : ĠBoolean ): ĠResult < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġvm Service . maint ain VM ( vm Id , Ġenable ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmaintain ( vm Id : ĠLong ): ĠResult < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( vm Service . query V MM aint ain Status ( vm Id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshutdown After Build ( shutdown : ĠBoolean , Ġpipeline Id : ĠString ): ĠResult < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġshutdown V MA fter Build Utils . shutdown ( shutdown , Ġpipeline Id ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Shutdown After Build () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult ( shutdown V MA fter Build Utils . get Shutdown VM ()) Ċ }