package Ġcom . tencent . devops . dispatch . service Ċ Ċ import Ġcom . tencent . devops . dispatch . dao . Pipeline Docker IP Info Dao Ċ import Ġcom . tencent . devops . dispatch . pojo . Docker Host Load Config Ċ import Ġcom . tencent . devops . dispatch . pojo . Docker Ip Info VO Ċ import Ġcom . tencent . devops . dispatch . pojo . Docker Ip List Page Ċ import Ġcom . tencent . devops . dispatch . utils . Docker Host Utils Ċ import Ġorg . jooq . DSL Context Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjava . time . format . DateTime Formatter Ċ Ċ @ Service Ċ class ĠDispatch Docker Service Ġ@ Autowired Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġd sl Context : ĠDSL Context , ĊĠĠĠ Ġprivate Ġval Ġpipeline Docker IP Info Dao : ĠPipeline Docker IP Info Dao , ĊĠĠĠ Ġprivate Ġval Ġdocker Host Utils : ĠDocker Host Utils Ċ ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( Dispatch Docker Service :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlist ( userId : ĠString , Ġpage : ĠInt ?, ĠpageSize : ĠInt ?): ĠDocker Ip List Page < Docker Ip Info VO > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpage NotNull Ġ= Ġpage Ġ?: Ġ 1 ĊĠĠĠĠĠĠĠ Ġval ĠpageSize NotNull Ġ= ĠpageSize Ġ?: Ġ 1 0 ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdocker Ip List Ġ= Ġpipeline Docker IP Info Dao . get Docker Ip List ( dsl Context , Ġpage NotNull , ĠpageSize NotNull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġpipeline Docker IP Info Dao . get Docker Ip Count ( dsl Context ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( docker Ip List . size Ġ== Ġ 0 Ġ|| Ġcount Ġ== Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDocker Ip List Page ( page NotNull , ĠpageSize NotNull , Ġ 0 , Ġempty List ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdocker Ip Info VO List Ġ= Ġmutable ListOf < Docker Ip Info VO >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdocker Ip List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocker Ip Info VO List . add ( Docker Ip Info VO ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġit . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocker Ip Ġ= Ġit . docker Ip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocker Host Port Ġ= Ġit . docker Host Port , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcapacity Ġ= Ġit . capacity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġused Num Ġ= Ġit . used Num , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaverage Cpu Load Ġ= Ġit . cpu Load , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaverage Mem Load Ġ= Ġit . mem Load , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaverage Disk Load Ġ= Ġit . disk Load , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaverage Disk I OL o ad Ġ= Ġit . disk Io Load , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable Ġ= Ġit . enable , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgray Env Ġ= Ġit . gray Env , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspecial On Ġ= Ġit . special On , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcreateTime Ġ= Ġit . gmt Create . format ( DateTime Formatter . of Pattern (" yyyy - MM - dd ĠHH : mm : ss ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDocker Ip List Page ( page NotNull , ĠpageSize NotNull , Ġcount , Ġdocker Ip Info VO List ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" OP Ġdispatch Docker Ġlist Ġerror .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" OP Ġdispatch Docker Ġlist Ġerror .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate ( userId : ĠString , Ġdocker Ip Info VO s : ĠList < Docker Ip Info VO >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info ("$ userId Ġcreate Ġdocker ĠIP Ġ$ docker Ip Info VO s ") ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdocker Ip Info VO s . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Docker IP Info Dao . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġd sl Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocker Ip Ġ= Ġit . docker Ip . trim (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocker Host Port Ġ= Ġit . docker Host Port , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcapacity Ġ= Ġit . capacity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġused Ġ= Ġit . used Num , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcpu Load Ġ= Ġit . average Cpu Load , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmem Load Ġ= Ġit . average Mem Load , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisk Load Ġ= Ġit . average Disk Load , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisk I OL o ad Ġ= Ġit . average Disk I OL o ad , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable Ġ= Ġit . enable , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgray Env Ġ= Ġit . gray Env , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspecial On Ġ= Ġit . special On ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" OP Ġdispatch Docker Ġcreate Ġerror .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" OP Ġdispatch Docker Ġcreate Ġerror .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate ( userId : ĠString , Ġdocker Ip Info Id : ĠLong , Ġdocker Ip Info VO : ĠDocker Ip Info VO ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info ("$ userId Ġupdate ĠDocker ĠIP Ġid : Ġ$ docker Ip Info Id Ġdocker Ip Info VO : Ġ$ docker Ip Info VO ") ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Docker IP Info Dao . update ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġd sl Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid c Ip Ġ= Ġdocker Ip Info VO . docker Ip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġused Ġ= Ġdocker Ip Info VO . used Num , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcpu Load Ġ= Ġdocker Ip Info VO . average Cpu Load , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmem Load Ġ= Ġdocker Ip Info VO . average Mem Load , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisk Load Ġ= Ġdocker Ip Info VO . average Disk Load , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisk I OL o ad Ġ= Ġdocker Ip Info VO . average Disk I OL o ad , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable Ġ= Ġdocker Ip Info VO . enable , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgray Env Ġ= Ġdocker Ip Info VO . gray Env , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspecial On Ġ= Ġdocker Ip Info VO . special On ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" OP Ġdispatch Docker Ġupdate Ġerror .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" OP Ġdispatch Docker Ġupdate Ġerror .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( userId : ĠString , Ġdocker Ip Info Id : ĠLong ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info ("$ userId Ġdelete Ġ$ docker Ip Info Id ") ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Docker IP Info Dao . delete ( dsl Context , Ġdocker Ip Info Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" OP Ġdispatch Docker Ġdelete Ġerror .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" OP Ġdispatch Docker Ġdelete Ġerror .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Docker Host Load Config ( ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġdocker Host Load ConfigMap : ĠMap < String , ĠDocker Host Load Config > ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info ("$ userId Ġcreate Docker Host Load Config Ġ$ docker Host Load ConfigMap ") ĊĠĠĠĠĠĠĠ Ġif Ġ( docker Host Load ConfigMap . size Ġ!= Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" Parameter Ġdocker Host Load ConfigMap ` size Ġis Ġnot Ġ 3 .") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdocker Host Utils . create Load Config ( docker Host Load ConfigMap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" OP Ġdis pat che Docker Ġcreate Ġdocker host Ġload Config Ġerror .", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" OP Ġdis pat che Docker Ġcreate Ġdocker host Ġload Config Ġerror .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }