package Ġcom . github . nik it av bv . servic emon itor . api Ċ Ċ import Ġcom . github . nik it av bv . servic emon itor . INIT _ API Ċ import Ġcom . github . nik it av bv . servic emon itor . metric . Metric Repositories Ċ import Ġcom . github . nik it av bv . servic emon itor . metric . resources . CPU Metric Repository Ċ import Ġcom . github . nik it av bv . servic emon itor . metric . resources . Disk Usage Metric Repository Ċ import Ġcom . github . nik it av bv . servic emon itor . metric . resources . Docker Metric Repository Ċ import Ġcom . github . nik it av bv . servic emon itor . metric . resources . IO Metric Repository Ċ import Ġcom . github . nik it av bv . servic emon itor . metric . resources . Memory Metric Repository Ċ import Ġcom . github . nik it av bv . servic emon itor . metric . resources . Mysql Metric Repository Ċ import Ġcom . github . nik it av bv . servic emon itor . metric . resources . Network Metric Repository Ċ import Ġcom . github . nik it av bv . servic emon itor . metric . resources . N ginx Metric Repository Ċ import Ġcom . github . nik it av bv . servic emon itor . metric . resources . U ptime Metric Repository Ċ import Ġcom . github . nik it av bv . servic emon itor . user . Application UserRepository Ċ import Ġorg . springframework . web . bind . annotation . GetMapping Ċ import Ġorg . springframework . web . bind . annotation . RestController Ċ import Ġjavax . servlet . http . HttpServletRequest Ċ Ċ const Ġval ĠSTATUS _ SETUP _ REQUIRED : ĠString Ġ= Ġ" setup _ required " Ċ const Ġval ĠSTATUS _ AUTH _ REQUIRED : ĠString Ġ= Ġ" auth _ required " Ċ const Ġval ĠSTATUS _ OK : ĠString Ġ= Ġ" ok " Ċ Ċ @ RestController Ċ class ĠInit API Controller ( ĊĠĠĠ Ġval Ġuser Repository : ĠApplication UserRepository , ĊĠĠĠ Ġval Ġmemory Metric Repository : ĠMemory Metric Repository , ĊĠĠĠ Ġval Ġio Metric Repository : ĠIO Metric Repository , ĊĠĠĠ Ġval Ġdisk Usage Metric Repository : ĠDisk Usage Metric Repository , ĊĠĠĠ Ġval Ġcpu Metric Repository : ĠCPU Metric Repository , ĊĠĠĠ Ġval Ġu ptime Metric Repository : ĠU ptime Metric Repository , ĊĠĠĠ Ġval Ġnetwork Metric Repository : ĠNetwork Metric Repository , ĊĠĠĠ Ġval Ġdocker Metric Repository : ĠDocker Metric Repository , ĊĠĠĠ Ġval Ġnginx Metric Repository : ĠNginx Metric Repository , ĊĠĠĠ Ġval Ġmysql Metric Repository : ĠM ysql Metric Repository Ċ ) Ġ{ ĊĊĠĠĠ Ġ@ GetMapping ( INIT _ API ) ĊĠĠĠ Ġfun Ġinit ( httpRequest : ĠHttpServletRequest ): ĠInit API Response Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! check If Setup Is Done () Ġ-> ĠInit API Response ( status Ġ= ĠSTATUS _ SETUP _ REQUIRED ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠhttpRequest . remote User Ġ== Ġnull Ġ-> ĠInit API Response ( status Ġ= ĠSTATUS _ AUTH _ REQUIRED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġuser Repository . findBy Username ( httpRequest . remote User ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġagents : ĠMutable List < Map < String , ĠAny ? >> Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . projects . forEach Ġ{ Ġproject Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . agents . forEach Ġ{ Ġagent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġagents . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġagent . toMap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMetric Repositories ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmemory Metric Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġio Metric Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisk Usage Metric Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcpu Metric Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġu ptime Metric Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork Metric Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocker Metric Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnginx Metric Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmysql Metric Repository ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInit API Response ( status Ġ= ĠSTATUS _ OK , Ġagents Ġ= Ġagents , Ġprojects Ġ= Ġuser . projects ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck If Setup Is Done () Ġ= Ġuser Repository . count () Ġ> Ġ 0 Ċ } Ċ