Moti Asayag has posted comments on this change. Change subject: core: Make VDS a JPA entity ......................................................................
Patch Set 58: (12 comments) https://gerrit.ovirt.org/#/c/36600/58/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/NumaNodeStatistics.java File backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/NumaNodeStatistics.java: Line 103: if (!(obj instanceof NumaNodeStatistics)) { Line 104: return false; Line 105: } Line 106: NumaNodeStatistics other = (NumaNodeStatistics) obj; Line 107: return Objects.equals(cpuIdle, other.cpuIdle) && Objects.equals(cpuSys, other.cpuSys) the formatter should format as a single condition per line. Line 108: && Objects.equals(cpuUsagePercent, other.cpuUsagePercent) && Objects.equals(cpuUser, other.cpuUser) Line 109: && Objects.equals(memFree, other.memFree) && Objects.equals(memUsagePercent, other.memUsagePercent); Line 110: } Line 111: https://gerrit.ovirt.org/#/c/36600/58/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsDynamic.java File backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsDynamic.java: Line 254: @Column(name = "supported_emulated_machines") Line 255: private String supportedEmulatedMachines; Line 256: Line 257: @OneToMany(cascade = CascadeType.ALL) Line 258: @LazyCollection(LazyCollectionOption.FALSE) why not use FetchType.EAGER instead of LazyCollectionOption.FALSE ? Line 259: @JoinColumn(name = "vds_id", referencedColumnName = "vds_id") Line 260: private List<VdsNumaNode> numaNodeList; Line 261: Line 262: @Column(name = "auto_numa_balancing") Line 651: return null; Line 652: } Line 653: StringBuilder sb = new StringBuilder(); Line 654: for (Version version : versionSet) { Line 655: sb.append(version.toString()); there is no separator between the versions. would you mind replacing this with : for (int i = 0 ; i < versionSet.size() ; i++) { sb.append(version.toString()); if (i < versionSet.size() - 1) { sb.append(','); } } return sb.toString(); In addition, it seems that this will become common around, maybe it should be pulled into new class, say VersionUtils ? (the class could be added next time there is a need for this). Line 656: } Line 657: if (sb.length() > 0) { Line 658: sb.deleteCharAt(sb.length() - 1); Line 659: } https://gerrit.ovirt.org/#/c/36600/58/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatic.java File backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatic.java: Line 36: @Cacheable(true) Line 37: @NamedQueries({ Line 38: @NamedQuery(name = "VdsStatic.getByHostName", Line 39: query = "select v from VdsStatic v where v.hostName = :hostName"), Line 40: @NamedQuery(name = "VdsStatic.getAllForVdsGroup", s/getAllForVdsGroup/getAllForCluster Line 41: query = "select v from VdsStatic v where v.vdsGroupId = :vdsGroupId"), Line 42: @NamedQuery(name = "VdsStatic.getByVdsName", Line 43: query = "select v.name from VdsStatic v where v.name = :name") Line 44: }) https://gerrit.ovirt.org/#/c/36600/58/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatistics.java File backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatistics.java: Line 31: @Type(type = "org.ovirt.engine.core.dao.jpa.GuidUserType") Line 32: private Guid id; Line 33: Line 34: @Column(name = "cpu_idle") Line 35: private BigDecimal cpuIdle; please format. there should be a space line between every variable definition. Line 36: @Column(name = "cpu_load") Line 37: private BigDecimal cpuLoad; Line 38: @Column(name = "cpu_sys") Line 39: private BigDecimal cpuSys; https://gerrit.ovirt.org/#/c/36600/58/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmNumaNode.java File backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmNumaNode.java: Line 27: Line 28: private static final long serialVersionUID = -5384287037435972730L; Line 29: Line 30: @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "vmNumaNode") Line 31: @LazyCollection(LazyCollectionOption.FALSE) why not FetchType.EAGER instead ? Line 32: private List<NumaNodeVmVds> numaNodeVdsList; Line 33: Line 34: public VmNumaNode() { Line 35: setNumaNodeVdsList(new ArrayList<NumaNodeVmVds>()); https://gerrit.ovirt.org/#/c/36600/58/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsStaticDAODbFacadeImpl.java File backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsStaticDAODbFacadeImpl.java: Line 57: Line 58: @Override Line 59: public void update(VdsStatic vds) { Line 60: Guid id = vds.getId(); Line 61: if (Guid.isNullOrEmpty(id)) { why should that ever happen ? this kind of logic seems relevant for save only. Line 62: id = Guid.newGuid(); Line 63: vds.setId(id); Line 64: } Line 65: super.update(vds); https://gerrit.ovirt.org/#/c/36600/58/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmNumaNodeDAODbFacadeImpl.java File backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmNumaNodeDAODbFacadeImpl.java: Line 29: Line 30: @Override Line 31: public List<VmNumaNode> getAllPinnedVmNumaNodeByVdsNumaNodeId(Guid vdsNumaNodeId) { Line 32: List<VmNumaNode> vmNumaNodes = Line 33: multipleResults(entityManager.createNativeQuery("select * from GetVmNumaNodeByVdsNumaNodeIdWithPinnedInfo(CAST( CAST (? AS text) AS uuid),?)", 1. isn't there a nicer way to provide Guid as parameter to a named query ? why the double casting is needed ? 2. could you split the query into few lines ? it exceeds line's limit Line 34: VmNumaNode.class) Line 35: .setParameter(1, vdsNumaNodeId.toString()) Line 36: .setParameter(2, true)); Line 37: Line 40: Line 41: @Override Line 42: public List<VmNumaNode> getAllVmNumaNodeByVdsNumaNodeId(Guid vdsNumaNodeId) { Line 43: List<VmNumaNode> vmNumaNodes = Line 44: multipleResults(entityManager.createNativeQuery("select * from GetVmNumaNodeByVdsNumaNodeId(CAST( CAST (? AS text) AS uuid))", same here Line 45: VmNumaNode.class) Line 46: .setParameter(1, vdsNumaNodeId.toString())); Line 47: Line 48: return vmNumaNodes; Line 51: @Override Line 52: public List<Pair<Guid, VmNumaNode>> getVmNumaNodeInfoByVdsGroupId(Guid vdsGroupId) { Line 53: List<Pair<Guid, VmNumaNode>> vmNumaNodes = new ArrayList<>(); Line 54: List<VmNumaNode> nodes = Line 55: multipleResults(entityManager.createNativeQuery("select vm_numa_node_id as numa_node_id, vm_numa_node_index as numa_node_index,vm_numa_node_mem_total as mem_total, vm_numa_node_distance as distance, vm_numa_node_cpu_idle as cpu_idle, vm_numa_node_cpu_sys as cpu_sys, vm_numa_node_usage_cpu_percent as usage_cpu_percent, vm_numa_node_cpu_user as cpu_user, vm_numa_node_mem_free as mem_free, vm_numa_node_usage_mem_percent as usage_mem_percent, null as vds_id, vm_numa_node_vm_id as vm_id from GetVmNumaNodeByVdsGroup(CAST( CAST (? AS text) AS uuid))", same Line 56: VmNumaNode.class) Line 57: .setParameter(1, vdsGroupId.toString())); Line 58: Line 59: for (VmNumaNode node : nodes) { https://gerrit.ovirt.org/#/c/36600/58/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/jpa/DistanceUserType.java File backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/jpa/DistanceUserType.java: Line 96: public int[] sqlTypes() { Line 97: return new int[] { Types.VARCHAR }; Line 98: } Line 99: Line 100: // format: (<index_id>, <distance>);*, for example: "0, 10; 2, 16" i think such code should be stored on utils library and be covered with tests (preferably @Parameterized runner). Line 101: private Map<Integer, Integer> getDistanceMap(String distance) { Line 102: Map<Integer, Integer> nodeDistance = new HashMap<>(); Line 103: if (StringUtils.isBlank(distance)) { Line 104: return nodeDistance; https://gerrit.ovirt.org/#/c/36600/58/backend/manager/modules/dal/src/test/resources/logging.properties File backend/manager/modules/dal/src/test/resources/logging.properties: Line 13: org.ovirt.engine.core.level=INFO Line 14: org.ovirt.engine.core.utils.ejb.EJBUtilsStrategy.level=SEVERE Line 15: org.ovirt.engine.core.dal.dbbroker.PostgresDbEngineDialect$PostgresJdbcTemplate.level=WARNING Line 16: org.hibernate.SQL.level=FINEST Line 17: org.hibernate.type.level=FINEST isn't that for debug purpose and should be removed/tuned to a higher level ? -- To view, visit https://gerrit.ovirt.org/36600 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I5d7aa140e20dcd9468ae1ed00af1df0cf3e8b9e6 Gerrit-PatchSet: 58 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Liran Zelkha <lzel...@redhat.com> Gerrit-Reviewer: Eli Mesika <emes...@redhat.com> Gerrit-Reviewer: Jenkins CI Gerrit-Reviewer: Liran Zelkha <lzel...@redhat.com> Gerrit-Reviewer: Moti Asayag <masa...@redhat.com> Gerrit-Reviewer: Oved Ourfali <oourf...@redhat.com> Gerrit-Reviewer: Roy Golan <rgo...@redhat.com> Gerrit-Reviewer: Yevgeny Zaspitsky <yzasp...@redhat.com> Gerrit-Reviewer: automat...@ovirt.org Gerrit-HasComments: Yes _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches