/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 7 ĠAr mel ĠS oro Ċ Ġ* Ċ Ġ* Ġ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 Ġorg . rm 3 l . docker _ api _ graphql . resolvers Ċ Ċ import Ġgraphql . kick start . tools . GraphQL Resolver Ċ import Ġcom . spotify . docker . client . Default Docker Client Ċ import Ġcom . spotify . docker . client . messages . swarm . Node Ċ import Ġcom . spotify . docker . client . messages . swarm . Sw arm Ċ import Ġorg . rm 3 l . docker _ api _ graphql . resources . Node Filter Ċ Ċ class ĠSw arm Resolver ( val Ġdocker Client : ĠDefault Docker Client ) Ġ: ĊĠĠĠĠĠĠĠ ĠGraphQL Resolver < Sw arm > Ġ{ ĊĊĠĠĠ Ġfun Ġunlock Key ( swarm : ĠSw arm ) Ġ= Ġdocker Client . unlock Key () ĊĊĠĠĠ Ġfun Ġnodes ( swarm : ĠSw arm , Ġfilter : ĠNode Filter ?): ĠList < Node > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( filter Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdocker Client . list Nodes () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcriteria Builder Ġ= ĠNode . find () ĊĠĠĠĠĠĠĠ Ġfilter . id ?. forEach Ġ{ Ġcriteria Builder . nodeId ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġfilter . label ?. forEach Ġ{ Ġcriteria Builder . label ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġfilter . membership ?. forEach Ġ{ Ġcriteria Builder . membership ( it . name ) Ġ} ĊĠĠĠĠĠĠĠ Ġfilter . name ?. forEach Ġ{ Ġcriteria Builder . nodeName ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġfilter . role ?. forEach Ġ{ Ġcriteria Builder . node Role ( it . name ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdocker Client . list Nodes ( criteria Builder . build ()) ĊĠĠĠ Ġ} Ċ } Ċ