I have code to delete the Plugin device from the system, when I try to execute 
this code I get an exception before my Command gets invoked in system code that 
tries to create an event. I debugged this to the event table underlying SQL 
definition. I wanted to know what the best practice was for CloudStack:

  *   Update the Event Table definition to accommodate a longer Type Field
  *   Limit my choice of naming to fit the existing 32 byte Event Field

Ideally I wanted to change the event definition, but the change will impact 
database upgrade as we go from one release to another.
-Soheil

mysql> describe event;
+-------------+---------------------+------+-----+-----------+----------------+
| Field       | Type                | Null | Key | Default   | Extra          |
+-------------+---------------------+------+-----+-----------+----------------+
| id          | bigint(20) unsigned | NO   | PRI | NULL      | auto_increment |
.....
| type        | varchar(32)         | NO   | MUL | NULL      |                |
.....
+-------------+---------------------+------+-----+-----------+----------------+
-------


@Entity

@Table(name="event")

public class EventVO implements Event {


....

    @Column(name="type")

    private String type;


------

ERROR [cloud.api.ApiServer] (183551903@qtp-729770861-5:) unhandled exception 
executing api command: deleteInfobloxDevice
com.cloud.utils.exception.CloudRuntimeException: DB Exception on: 
com.mysql.jdbc.JDBC4PreparedStatement@59c7f05d: INSERT INTO event (event.type, 
event.state, event.description, event.created, event.user_id, event.account_id, 
event.domain_id, event.level, event.start_id, event.parameters, event.uuid, 
event.archived) VALUES (_binary'PHYSICAL.INFOBLOXCONTROLLER.DELETE', 
'Scheduled', _binary'Deleting Infoblox Controller', '2013-07-16 04:11:58', 2, 
2, 1, _binary'INFO', 0, null, _binary'eefc03f0-f60b-4450-a43a-319e66c15e94', 0)
at com.cloud.utils.db.GenericDaoBase.persist(GenericDaoBase.java:1342)
......
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long 
for column 'type' at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4072)

Reply via email to