@@ -622,123 +622,144 @@ func (r *result) adjustHooks(hooks *Hooks, plugin string) error {
622622	return  nil 
623623}
624624
625- func  (r  * result ) adjustResources ( resources   * LinuxResources , plugin  string ) error  {
626- 	if  resources  ==  nil  {
625+ func  (r  * result ) processMemoryResource ( mem   * LinuxMemory ,  targetContainer ,  targetReply   * LinuxMemory ,  id , plugin  string ) error  {
626+ 	if  mem  ==  nil  {
627627		return  nil 
628628	}
629629
630- 	create , id  :=  r .request .create , r .request .create .Container .Id 
631- 	container  :=  create .Container .Linux .Resources 
632- 	reply  :=  r .reply .adjust .Linux .Resources 
633- 
634- 	if  mem  :=  resources .Memory ; mem  !=  nil  {
635- 		if  v  :=  mem .GetLimit (); v  !=  nil  {
636- 			if  err  :=  r .owners .ClaimMemLimit (id , plugin ); err  !=  nil  {
637- 				return  err 
638- 			}
639- 			container .Memory .Limit  =  Int64 (v .GetValue ())
640- 			reply .Memory .Limit  =  Int64 (v .GetValue ())
630+ 	if  v  :=  mem .GetLimit (); v  !=  nil  {
631+ 		if  err  :=  r .owners .ClaimMemLimit (id , plugin ); err  !=  nil  {
632+ 			return  err 
641633		}
642- 		if   v   :=   mem . GetReservation ();  v   !=   nil  { 
643- 			 if   err   :=   r . owners . ClaimMemReservation ( id ,  plugin );  err   !=   nil  { 
644- 				 return   err 
645- 			} 
646- 			 container . Memory . Reservation   =   Int64 ( v . GetValue ()) 
647- 			reply . Memory . Reservation   =   Int64 ( v . GetValue ()) 
634+ 		targetContainer . Limit   =   Int64 ( v . GetValue ()) 
635+ 		targetReply . Limit   =   Int64 ( v . GetValue ()) 
636+ 	} 
637+ 	if   v   :=   mem . GetReservation ();  v   !=   nil  { 
638+ 		if   err   :=   r . owners . ClaimMemReservation ( id ,  plugin );  err   !=   nil  { 
639+ 			return   err 
648640		}
649- 		if   v   :=   mem . GetSwap ();  v   !=   nil  { 
650- 			 if   err   :=   r . owners . ClaimMemSwapLimit ( id ,  plugin );  err   !=   nil  { 
651- 				 return   err 
652- 			} 
653- 			 container . Memory . Swap   =   Int64 ( v . GetValue ()) 
654- 			reply . Memory . Swap   =   Int64 ( v . GetValue ()) 
641+ 		targetContainer . Reservation   =   Int64 ( v . GetValue ()) 
642+ 		targetReply . Reservation   =   Int64 ( v . GetValue ()) 
643+ 	} 
644+ 	if   v   :=   mem . GetSwap ();  v   !=   nil  { 
645+ 		if   err   :=   r . owners . ClaimMemSwapLimit ( id ,  plugin );  err   !=   nil  { 
646+ 			return   err 
655647		}
656- 		if   v   :=   mem . GetKernel ();  v   !=   nil  { 
657- 			 if   err   :=   r . owners . ClaimMemKernelLimit ( id ,  plugin );  err   !=   nil  { 
658- 				 return   err 
659- 			} 
660- 			 container . Memory . Kernel   =   Int64 ( v . GetValue ()) 
661- 			reply . Memory . Kernel   =   Int64 ( v . GetValue ()) 
648+ 		targetContainer . Swap   =   Int64 ( v . GetValue ()) 
649+ 		targetReply . Swap   =   Int64 ( v . GetValue ()) 
650+ 	} 
651+ 	if   v   :=   mem . GetKernel ();  v   !=   nil  { 
652+ 		if   err   :=   r . owners . ClaimMemKernelLimit ( id ,  plugin );  err   !=   nil  { 
653+ 			return   err 
662654		}
663- 		if   v   :=   mem . GetKernelTcp ();  v   !=   nil  { 
664- 			 if   err   :=   r . owners . ClaimMemTCPLimit ( id ,  plugin );  err   !=   nil  { 
665- 				 return   err 
666- 			} 
667- 			 container . Memory . KernelTcp   =   Int64 ( v . GetValue ()) 
668- 			reply . Memory . KernelTcp   =   Int64 ( v . GetValue ()) 
655+ 		targetContainer . Kernel   =   Int64 ( v . GetValue ()) 
656+ 		targetReply . Kernel   =   Int64 ( v . GetValue ()) 
657+ 	} 
658+ 	if   v   :=   mem . GetKernelTcp ();  v   !=   nil  { 
659+ 		if   err   :=   r . owners . ClaimMemTCPLimit ( id ,  plugin );  err   !=   nil  { 
660+ 			return   err 
669661		}
670- 		if   v   :=   mem . GetSwappiness ();  v   !=   nil  { 
671- 			 if   err   :=   r . owners . ClaimMemSwappiness ( id ,  plugin );  err   !=   nil  { 
672- 				 return   err 
673- 			} 
674- 			 container . Memory . Swappiness   =   UInt64 ( v . GetValue ()) 
675- 			reply . Memory . Swappiness   =   UInt64 ( v . GetValue ()) 
662+ 		targetContainer . KernelTcp   =   Int64 ( v . GetValue ()) 
663+ 		targetReply . KernelTcp   =   Int64 ( v . GetValue ()) 
664+ 	} 
665+ 	if   v   :=   mem . GetSwappiness ();  v   !=   nil  { 
666+ 		if   err   :=   r . owners . ClaimMemSwappiness ( id ,  plugin );  err   !=   nil  { 
667+ 			return   err 
676668		}
677- 		if   v   :=   mem . GetDisableOomKiller ();  v   !=   nil  { 
678- 			 if   err   :=   r . owners . ClaimMemDisableOomKiller ( id ,  plugin );  err   !=   nil  { 
679- 				 return   err 
680- 			} 
681- 			 container . Memory . DisableOomKiller   =   Bool ( v . GetValue ()) 
682- 			reply . Memory . DisableOomKiller   =   Bool ( v . GetValue ()) 
669+ 		targetContainer . Swappiness   =   UInt64 ( v . GetValue ()) 
670+ 		targetReply . Swappiness   =   UInt64 ( v . GetValue ()) 
671+ 	} 
672+ 	if   v   :=   mem . GetDisableOomKiller ();  v   !=   nil  { 
673+ 		if   err   :=   r . owners . ClaimMemDisableOomKiller ( id ,  plugin );  err   !=   nil  { 
674+ 			return   err 
683675		}
684- 		if   v   :=   mem . GetUseHierarchy ();  v   !=   nil  { 
685- 			 if   err   :=   r . owners . ClaimMemUseHierarchy ( id ,  plugin );  err   !=   nil  { 
686- 				 return   err 
687- 			} 
688- 			 container . Memory . UseHierarchy   =   Bool ( v . GetValue ()) 
689- 			reply . Memory . UseHierarchy   =   Bool ( v . GetValue ()) 
676+ 		targetContainer . DisableOomKiller   =   Bool ( v . GetValue ()) 
677+ 		targetReply . DisableOomKiller   =   Bool ( v . GetValue ()) 
678+ 	} 
679+ 	if   v   :=   mem . GetUseHierarchy ();  v   !=   nil  { 
680+ 		if   err   :=   r . owners . ClaimMemUseHierarchy ( id ,  plugin );  err   !=   nil  { 
681+ 			return   err 
690682		}
683+ 		targetContainer .UseHierarchy  =  Bool (v .GetValue ())
684+ 		targetReply .UseHierarchy  =  Bool (v .GetValue ())
691685	}
692- 	if  cpu  :=  resources .Cpu ; cpu  !=  nil  {
693- 		if  v  :=  cpu .GetShares (); v  !=  nil  {
694- 			if  err  :=  r .owners .ClaimCPUShares (id , plugin ); err  !=  nil  {
695- 				return  err 
696- 			}
697- 			container .Cpu .Shares  =  UInt64 (v .GetValue ())
698- 			reply .Cpu .Shares  =  UInt64 (v .GetValue ())
686+ 
687+ 	return  nil 
688+ }
689+ 
690+ func  (r  * result ) processCPUResource (cpu  * LinuxCPU , targetContainer , targetReply  * LinuxCPU , id , plugin  string ) error  {
691+ 	if  cpu  ==  nil  {
692+ 		return  nil 
693+ 	}
694+ 
695+ 	if  v  :=  cpu .GetShares (); v  !=  nil  {
696+ 		if  err  :=  r .owners .ClaimCPUShares (id , plugin ); err  !=  nil  {
697+ 			return  err 
699698		}
700- 		if   v   :=   cpu . GetQuota ();  v   !=   nil  { 
701- 			 if   err   :=   r . owners . ClaimCPUQuota ( id ,  plugin );  err   !=   nil  { 
702- 				 return   err 
703- 			} 
704- 			 container . Cpu . Quota   =   Int64 ( v . GetValue ()) 
705- 			reply . Cpu . Quota   =   Int64 ( v . GetValue ()) 
699+ 		targetContainer . Shares   =   UInt64 ( v . GetValue ()) 
700+ 		targetReply . Shares   =   UInt64 ( v . GetValue ()) 
701+ 	} 
702+ 	if   v   :=   cpu . GetQuota ();  v   !=   nil  { 
703+ 		if   err   :=   r . owners . ClaimCPUQuota ( id ,  plugin );  err   !=   nil  { 
704+ 			return   err 
706705		}
707- 		if   v   :=   cpu . GetPeriod ();  v   !=   nil  { 
708- 			 if   err   :=   r . owners . ClaimCPUPeriod ( id ,  plugin );  err   !=   nil  { 
709- 				 return   err 
710- 			} 
711- 			 container . Cpu . Period   =   UInt64 ( v . GetValue ()) 
712- 			reply . Cpu . Period   =   UInt64 ( v . GetValue ()) 
706+ 		targetContainer . Quota   =   Int64 ( v . GetValue ()) 
707+ 		targetReply . Quota   =   Int64 ( v . GetValue ()) 
708+ 	} 
709+ 	if   v   :=   cpu . GetPeriod ();  v   !=   nil  { 
710+ 		if   err   :=   r . owners . ClaimCPUPeriod ( id ,  plugin );  err   !=   nil  { 
711+ 			return   err 
713712		}
714- 		if   v   :=   cpu . GetRealtimeRuntime ();  v   !=   nil  { 
715- 			 if   err   :=   r . owners . ClaimCPURealtimeRuntime ( id ,  plugin );  err   !=   nil  { 
716- 				 return   err 
717- 			} 
718- 			 container . Cpu . RealtimeRuntime   =   Int64 ( v . GetValue ()) 
719- 			reply . Cpu . RealtimeRuntime   =   Int64 ( v . GetValue ()) 
713+ 		targetContainer . Period   =   UInt64 ( v . GetValue ()) 
714+ 		targetReply . Period   =   UInt64 ( v . GetValue ()) 
715+ 	} 
716+ 	if   v   :=   cpu . GetRealtimeRuntime ();  v   !=   nil  { 
717+ 		if   err   :=   r . owners . ClaimCPURealtimeRuntime ( id ,  plugin );  err   !=   nil  { 
718+ 			return   err 
720719		}
721- 		if   v   :=   cpu . GetRealtimePeriod ();  v   !=   nil  { 
722- 			 if   err   :=   r . owners . ClaimCPURealtimePeriod ( id ,  plugin );  err   !=   nil  { 
723- 				 return   err 
724- 			} 
725- 			 container . Cpu . RealtimePeriod   =   UInt64 ( v . GetValue ()) 
726- 			reply . Cpu . RealtimePeriod   =   UInt64 ( v . GetValue ()) 
720+ 		targetContainer . RealtimeRuntime   =   Int64 ( v . GetValue ()) 
721+ 		targetReply . RealtimeRuntime   =   Int64 ( v . GetValue ()) 
722+ 	} 
723+ 	if   v   :=   cpu . GetRealtimePeriod ();  v   !=   nil  { 
724+ 		if   err   :=   r . owners . ClaimCPURealtimePeriod ( id ,  plugin );  err   !=   nil  { 
725+ 			return   err 
727726		}
728- 		if   v   :=   cpu . GetCpus ();  v   !=   ""  { 
729- 			 if   err   :=   r . owners . ClaimCPUSetCPUs ( id ,  plugin );  err   !=   nil  { 
730- 				 return   err 
731- 			} 
732- 			 container . Cpu . Cpus   =   v 
733- 			reply . Cpu . Cpus   =   v 
727+ 		targetContainer . RealtimePeriod   =   UInt64 ( v . GetValue ()) 
728+ 		targetReply . RealtimePeriod   =   UInt64 ( v . GetValue ()) 
729+ 	} 
730+ 	if   v   :=   cpu . GetCpus ();  v   !=   ""  { 
731+ 		if   err   :=   r . owners . ClaimCPUSetCPUs ( id ,  plugin );  err   !=   nil  { 
732+ 			return   err 
734733		}
735- 		if   v   :=   cpu . GetMems ();  v   !=   ""  { 
736- 			 if   err   :=   r . owners . ClaimCPUSetMems ( id ,  plugin );  err   !=   nil  { 
737- 				 return   err 
738- 			} 
739- 			 container . Cpu . Mems   =   v 
740- 			reply . Cpu . Mems   =   v 
734+ 		targetContainer . Cpus   =   v 
735+ 		targetReply . Cpus   =   v 
736+ 	} 
737+ 	if   v   :=   cpu . GetMems ();  v   !=   ""  { 
738+ 		if   err   :=   r . owners . ClaimCPUSetMems ( id ,  plugin );  err   !=   nil  { 
739+ 			return   err 
741740		}
741+ 		targetContainer .Cpus  =  v 
742+ 		targetReply .Cpus  =  v 
743+ 	}
744+ 
745+ 	return  nil 
746+ }
747+ 
748+ func  (r  * result ) adjustResources (resources  * LinuxResources , plugin  string ) error  {
749+ 	if  resources  ==  nil  {
750+ 		return  nil 
751+ 	}
752+ 
753+ 	create , id  :=  r .request .create , r .request .create .Container .Id 
754+ 	container  :=  create .Container .Linux .Resources 
755+ 	reply  :=  r .reply .adjust .Linux .Resources 
756+ 
757+ 	if  err  :=  r .processMemoryResource (resources .Memory , container .Memory , reply .Memory , id , plugin ); err  !=  nil  {
758+ 		return  err 
759+ 	}
760+ 
761+ 	if  err  :=  r .processCPUResource (resources .Cpu , container .Cpu , reply .Cpu , id , plugin ); err  !=  nil  {
762+ 		return  err 
742763	}
743764
744765	for  _ , l  :=  range  resources .HugepageLimits  {
@@ -886,99 +907,12 @@ func (r *result) updateResources(reply, u *ContainerUpdate, plugin string) error
886907		resources  =  reply .Linux .Resources .Copy ()
887908	}
888909
889- 	if  mem  :=  u .Linux .Resources .Memory ; mem  !=  nil  {
890- 		if  v  :=  mem .GetLimit (); v  !=  nil  {
891- 			if  err  :=  r .owners .ClaimMemLimit (id , plugin ); err  !=  nil  {
892- 				return  err 
893- 			}
894- 			resources .Memory .Limit  =  Int64 (v .GetValue ())
895- 		}
896- 		if  v  :=  mem .GetReservation (); v  !=  nil  {
897- 			if  err  :=  r .owners .ClaimMemReservation (id , plugin ); err  !=  nil  {
898- 				return  err 
899- 			}
900- 			resources .Memory .Reservation  =  Int64 (v .GetValue ())
901- 		}
902- 		if  v  :=  mem .GetSwap (); v  !=  nil  {
903- 			if  err  :=  r .owners .ClaimMemSwapLimit (id , plugin ); err  !=  nil  {
904- 				return  err 
905- 			}
906- 			resources .Memory .Swap  =  Int64 (v .GetValue ())
907- 		}
908- 		if  v  :=  mem .GetKernel (); v  !=  nil  {
909- 			if  err  :=  r .owners .ClaimMemKernelLimit (id , plugin ); err  !=  nil  {
910- 				return  err 
911- 			}
912- 			resources .Memory .Kernel  =  Int64 (v .GetValue ())
913- 		}
914- 		if  v  :=  mem .GetKernelTcp (); v  !=  nil  {
915- 			if  err  :=  r .owners .ClaimMemTCPLimit (id , plugin ); err  !=  nil  {
916- 				return  err 
917- 			}
918- 			resources .Memory .KernelTcp  =  Int64 (v .GetValue ())
919- 		}
920- 		if  v  :=  mem .GetSwappiness (); v  !=  nil  {
921- 			if  err  :=  r .owners .ClaimMemSwappiness (id , plugin ); err  !=  nil  {
922- 				return  err 
923- 			}
924- 			resources .Memory .Swappiness  =  UInt64 (v .GetValue ())
925- 		}
926- 		if  v  :=  mem .GetDisableOomKiller (); v  !=  nil  {
927- 			if  err  :=  r .owners .ClaimMemDisableOomKiller (id , plugin ); err  !=  nil  {
928- 				return  err 
929- 			}
930- 			resources .Memory .DisableOomKiller  =  Bool (v .GetValue ())
931- 		}
932- 		if  v  :=  mem .GetUseHierarchy (); v  !=  nil  {
933- 			if  err  :=  r .owners .ClaimMemUseHierarchy (id , plugin ); err  !=  nil  {
934- 				return  err 
935- 			}
936- 			resources .Memory .UseHierarchy  =  Bool (v .GetValue ())
937- 		}
910+ 	if  err  :=  r .processMemoryResource (u .Linux .Resources .Memory , resources .Memory , & LinuxMemory {}, id , plugin ); err  !=  nil  {
911+ 		return  err 
938912	}
939- 	if  cpu  :=  u .Linux .Resources .Cpu ; cpu  !=  nil  {
940- 		if  v  :=  cpu .GetShares (); v  !=  nil  {
941- 			if  err  :=  r .owners .ClaimCPUShares (id , plugin ); err  !=  nil  {
942- 				return  err 
943- 			}
944- 			resources .Cpu .Shares  =  UInt64 (v .GetValue ())
945- 		}
946- 		if  v  :=  cpu .GetQuota (); v  !=  nil  {
947- 			if  err  :=  r .owners .ClaimCPUQuota (id , plugin ); err  !=  nil  {
948- 				return  err 
949- 			}
950- 			resources .Cpu .Quota  =  Int64 (v .GetValue ())
951- 		}
952- 		if  v  :=  cpu .GetPeriod (); v  !=  nil  {
953- 			if  err  :=  r .owners .ClaimCPUPeriod (id , plugin ); err  !=  nil  {
954- 				return  err 
955- 			}
956- 			resources .Cpu .Period  =  UInt64 (v .GetValue ())
957- 		}
958- 		if  v  :=  cpu .GetRealtimeRuntime (); v  !=  nil  {
959- 			if  err  :=  r .owners .ClaimCPURealtimeRuntime (id , plugin ); err  !=  nil  {
960- 				return  err 
961- 			}
962- 			resources .Cpu .RealtimeRuntime  =  Int64 (v .GetValue ())
963- 		}
964- 		if  v  :=  cpu .GetRealtimePeriod (); v  !=  nil  {
965- 			if  err  :=  r .owners .ClaimCPURealtimePeriod (id , plugin ); err  !=  nil  {
966- 				return  err 
967- 			}
968- 			resources .Cpu .RealtimePeriod  =  UInt64 (v .GetValue ())
969- 		}
970- 		if  v  :=  cpu .GetCpus (); v  !=  ""  {
971- 			if  err  :=  r .owners .ClaimCPUSetCPUs (id , plugin ); err  !=  nil  {
972- 				return  err 
973- 			}
974- 			resources .Cpu .Cpus  =  v 
975- 		}
976- 		if  v  :=  cpu .GetMems (); v  !=  ""  {
977- 			if  err  :=  r .owners .ClaimCPUSetMems (id , plugin ); err  !=  nil  {
978- 				return  err 
979- 			}
980- 			resources .Cpu .Mems  =  v 
981- 		}
913+ 
914+ 	if  err  :=  r .processCPUResource (u .Linux .Resources .Cpu , resources .Cpu , & LinuxCPU {}, id , plugin ); err  !=  nil  {
915+ 		return  err 
982916	}
983917
984918	for  _ , l  :=  range  u .Linux .Resources .HugepageLimits  {
0 commit comments