Maor Lipchuk has posted comments on this change.

Change subject: engine, dao: Introduce ISCSI Bond entity, tables and dao
......................................................................


Patch Set 3:

(10 comments)

missing Dao tests
What about permissions?

....................................................
File 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
Line 314: 
Line 315:     // ISCSI Bonds
Line 316:     AddIscsiBond(2000, ActionGroup.CONFIGURE_VM_STORAGE, false, 
QuotaDependency.NONE),
Line 317:     EditIscsiBond(2001, ActionGroup.CONFIGURE_VM_STORAGE, false, 
QuotaDependency.NONE),
Line 318:     RemoveIscsiBond(2002, ActionGroup.CONFIGURE_VM_STORAGE, false, 
QuotaDependency.NONE);
You are adding new action types to non existing commands.
It hsould be in the patch where you add the commands.
Line 319: 
Line 320:     private int intValue;
Line 321:     private ActionGroup actionGroup;
Line 322:     private boolean isActionMonitored;


....................................................
File 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/IscsiBond.java
Line 84:     @Override
Line 85:     public Object getQueryableId() {
Line 86:         return getId();
Line 87:     }
Line 88: }
What about Equals and hashCode. You will need them for the DAO tests


....................................................
File 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/IscsiBondDao.java
Line 4: 
Line 5: import org.ovirt.engine.core.common.businessentities.IscsiBond;
Line 6: import org.ovirt.engine.core.compat.Guid;
Line 7: 
Line 8: public interface IscsiBondDao extends DAO {
You already have save,remove,update in ModificationDao.   Get and GetAll are in 
ReadDAO, why not simply extend GenericDAO which extends them both.
Line 9: 
Line 10:     public IscsiBond get(Guid id);
Line 11: 
Line 12:     public void save(IscsiBond iscsiBond);


....................................................
File 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/IscsiBondDaoDbFacadeImpl.java
Line 51:     }
Line 52: 
Line 53:     @Override
Line 54:     public List<Guid> getNetworkIdsByIscsiBondId(Guid iscsiBondId) {
Line 55:         return 
getCallsHandler().executeReadList("GetNetworksByIscsiBondId", new 
RowMapper<Guid>() {
I don't understand, why you didn't used IscsiBondRowMapper,instance
Line 56:             @Override
Line 57:             public Guid mapRow(ResultSet rs, int index) throws 
SQLException {
Line 58:                 return new Guid((UUID) rs.getObject(1));
Line 59:             }


Line 60:         }, getCustomMapSqlParameterSource().addValue("iscsi_bond_id", 
iscsiBondId));
Line 61:     }
Line 62: 
Line 63:     @Override
Line 64:     public void addNetwork(Guid iscsiBondId, Guid networkId) {
suggestion: I think that addNetworkToBond sounds more accurate and clear
Line 65:         
getCallsHandler().executeModification("InsertNetworkToIscsiBond",
Line 66:                 getCustomMapSqlParameterSource()
Line 67:                 .addValue("iscsi_bond_id", iscsiBondId)
Line 68:                 .addValue("network_id", networkId));


Line 68:                 .addValue("network_id", networkId));
Line 69:     }
Line 70: 
Line 71:     @Override
Line 72:     public void removeNetwork(Guid iscsiBondId, Guid networkId) {
suggestion: I think that removeNetworkToBond sounds more accurate and clear
Line 73:         
getCallsHandler().executeModification("RemoveNetworkFromIscsiBond",
Line 74:                 getCustomMapSqlParameterSource()
Line 75:                 .addValue("iscsi_bond_id", iscsiBondId)
Line 76:                 .addValue("network_id", networkId));


....................................................
File packaging/dbscripts/iscsi_bonds_sp.sql
Line 24: 
Line 25: Create or replace FUNCTION GetNetworksByIscsiBondId(v_iscsi_bond_id 
UUID) RETURNS SETOF UUID STABLE
Line 26:    AS $procedure$
Line 27: BEGIN
Line 28:       RETURN QUERY SELECT iscsi_bonds_networks_map.network_id
suggestion: iscsi_bonds_networks_map. can be removed from select, there is only 
one table
Line 29:       FROM iscsi_bonds_networks_map
Line 30:       WHERE iscsi_bond_id = v_iscsi_bond_id;
Line 31: END; $procedure$
Line 32: LANGUAGE plpgsql;


Line 67:       -- Get (and keep) a shared lock with "right to upgrade to 
exclusive"
Line 68:       -- in order to force locking parent before children
Line 69:       SELECT id INTO v_val FROM iscsi_bonds WHERE id = v_id FOR UPDATE;
Line 70:       DELETE FROM iscsi_bonds_networks_map WHERE iscsi_bond_id = v_id;
Line 71:       DELETE FROM iscsi_bonds WHERE id = v_id;
You have a delete cascade on iscsi_bonds to iscsi_bonds_networks_map. you dont 
need to delete iscsi_bonds_networks_map also
Line 72: END; $procedure$
Line 73: LANGUAGE plpgsql;
Line 74: 
Line 75: 


....................................................
File packaging/dbscripts/upgrade/03_04_0340_add_iscsi_bond.sql
Line 2: (
Line 3:    id UUID NOT NULL,
Line 4:    name varchar(50) NOT NULL,
Line 5:    description varchar(4000),
Line 6:    storage_pool_id UUID NOT NULL,
actually storage pool id is a bit redundant since the network table has this 
field also, but I think that for the sake of decoupling maybe it's worth to 
keep it.
Line 7:    CONSTRAINT PK_iscsi_bonds PRIMARY KEY(id)
Line 8: ) WITH OIDS;
Line 9: 
Line 10: ALTER TABLE iscsi_bonds ADD  CONSTRAINT FK_iscsi_bonds_storage_pool 
FOREIGN KEY(storage_pool_id)


Line 20: ALTER TABLE iscsi_bonds_networks_map ADD CONSTRAINT 
FK_iscsi_bonds_networks_map_iscsi_bond_id FOREIGN KEY(iscsi_bond_id)
Line 21: REFERENCES iscsi_bonds(id) ON DELETE CASCADE;
Line 22: 
Line 23: ALTER TABLE iscsi_bonds_networks_map ADD CONSTRAINT 
FK_iscsi_bonds_networks_map_network_id FOREIGN KEY(network_id)
Line 24: REFERENCES network(id) ON DELETE CASCADE;
What will happen if we will remove a storage pool.
should we cascade delete the bond to? should we need to keep the bond orphan?


-- 
To view, visit http://gerrit.ovirt.org/22951
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I12313c02810a2f0e75016bdd78b44da43f2154d4
Gerrit-PatchSet: 3
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Sergey Gotliv <sgot...@redhat.com>
Gerrit-Reviewer: Allon Mureinik <amure...@redhat.com>
Gerrit-Reviewer: Maor Lipchuk <mlipc...@redhat.com>
Gerrit-Reviewer: Sergey Gotliv <sgot...@redhat.com>
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to