CpuQuantity.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package seecoder.devcloud.api.k8s.model;
  2. import io.kubernetes.client.custom.Quantity;
  3. import lombok.Getter;
  4. /**
  5. * CPU配额数量,默认单位为m,即CPU时间
  6. */
  7. @Getter
  8. public class CpuQuantity {
  9. private final Quantity quantity;
  10. private final Unit unit;
  11. private static final Unit DEFAULT_UNIT = Unit.Mi;
  12. //Cpu=0
  13. public static final CpuQuantity EMPTY = new CpuQuantity(0);
  14. //Cpu的默认分配额度
  15. public static final CpuQuantity DEFAULT = new CpuQuantity(50);
  16. //Cpu单位
  17. public enum Unit{
  18. Mi("m");
  19. private String code;
  20. Unit(String code) {
  21. this.code = code;
  22. }
  23. public String getCode(){
  24. return this.code;
  25. }
  26. }
  27. public CpuQuantity(int quantity){
  28. this.quantity = Quantity.fromString(quantity + DEFAULT_UNIT.getCode());
  29. this.unit = DEFAULT_UNIT;
  30. }
  31. public CpuQuantity(long quantity) {
  32. this.quantity = Quantity.fromString(quantity + DEFAULT_UNIT.getCode());
  33. this.unit = DEFAULT_UNIT;
  34. }
  35. public CpuQuantity(Quantity quantity) {
  36. this.quantity = quantity;
  37. this.unit = DEFAULT_UNIT;
  38. }
  39. public Quantity toQuantity(){
  40. return quantity;
  41. }
  42. public String getQuantity() {
  43. return quantity.toSuffixedString();
  44. }
  45. public static CpuQuantity getCpuQuantity(Quantity quantity) {
  46. if (quantity == null) {
  47. return null;
  48. } else {
  49. return new CpuQuantity(quantity);
  50. }
  51. }
  52. }