Shubhendu Tripathi has uploaded a new change for review. Change subject: gluster: Entities for volume snapshot scheduling ......................................................................
gluster: Entities for volume snapshot scheduling Introduced entities for gluster volume snapshot scheduling. Change-Id: I010e5c3977af7adeac2e6865bb1a99280a40ea70 Signed-off-by: Shubhendu Tripathi <shtri...@redhat.com> --- A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotSchedule.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotScheduleRecurrence.java M packaging/dbscripts/create_views.sql A packaging/dbscripts/upgrade/03_06_0680_add_gluster_volume_snapshot_schedule_tables.sql 4 files changed, 188 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/85/36485/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotSchedule.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotSchedule.java new file mode 100644 index 0000000..c14af59 --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotSchedule.java @@ -0,0 +1,144 @@ +package org.ovirt.engine.core.common.businessentities.gluster; + +import java.sql.Time; +import java.util.Date; + +import org.ovirt.engine.core.common.businessentities.IVdcQueryable; +import org.ovirt.engine.core.common.utils.ObjectUtils; +import org.ovirt.engine.core.compat.Guid; + +public class GlusterVolumeSnapshotSchedule extends IVdcQueryable { + private static final long serialVersionUID = 2L; + private Guid clusterId; + private Guid volumeId; + private GlusterVolumeSnapshotScheduleRecurrence recurrence; + private Integer interval; + private Date startDate; + private Time executionTime; + private String days; + private Date endByDate; + + public Guid getClusterId() { + return this.clusterId; + } + + public void setClusterId(Guid id) { + this.clusterId = id; + } + + public Guid getVolumeId() { + return volumeId; + } + + public void setVolumeId(Guid volumeId) { + this.volumeId = volumeId; + } + + public GlusterVolumeSnapshotScheduleRecurrence getRecurrence() { + return recurrence; + } + + public void setRecurrence(GlusterVolumeSnapshotScheduleRecurrence recurrence) { + this.recurrence = recurrence; + } + + public int getInterval() { + return interval; + } + + public void setInterval(int interval) { + this.interval = interval; + } + + public Date getStartDate() { + return startDate; + } + + public void setStartDate(Date startDate) { + this.startDate = startDate; + } + + public Time getExecutionTime() { + return executionTime; + } + + public void setExecutionTime(Time executionTime) { + this.executionTime = executionTime; + } + + public String getDays() { + return this.days; + } + + public void setDays(String days) { + this.days = days; + } + + public Date getEndByDate() { + return endByDate; + } + + public void setEndByDate(Date endByDate) { + this.endByDate = endByDate; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + + result = prime * result + (clusterId == null ? 0 : clusterId.hashCode()); + result = prime * result + (volumeId == null ? 0 : volumeId.hashCode()); + result = prime * result + (recurrence == null ? 0 : recurrence.hashCode()); + result = prime * result + (interval == null ? 0 : interval.hashCode()); + result = prime * result + (startDate == null ? 0 : startDate.hashCode()); + result = prime * result + (executionTime == null ? 0 : executionTime.hashCode()); + result = prime * result + (days == null ? 0 : days.hashCode()); + result = prime * result + (endByDate == null ? 0 : endByDate.hashCode()); + + return result; + } + + @Override + public boolean equals(Object obj) { + if (obj == null || !(obj instanceof GlusterVolumeSnapshotSchedule)) { + return false; + } + + GlusterVolumeSnapshotSchedule schedule = (GlusterVolumeSnapshotSchedule) obj; + + if (!(ObjectUtils.objectsEqual(clusterId, schedule.getClusterId()))) { + return false; + } + + if (!(ObjectUtils.objectsEqual(volumeId, schedule.getVolumeId()))) { + return false; + } + + if (!(ObjectUtils.objectsEqual(recurrence, schedule.getRecurrence()))) { + return false; + } + + if (!(ObjectUtils.objectsEqual(interval, schedule.getInterval()))) { + return false; + } + + if (!(ObjectUtils.objectsEqual(startDate, schedule.getStartDate()))) { + return false; + } + + if (!(ObjectUtils.objectsEqual(executionTime, schedule.getExecutionTime()))) { + return false; + } + + if (!(ObjectUtils.objectsEqual(days, schedule.getDays()))) { + return false; + } + + if (!(ObjectUtils.objectsEqual(endByDate, schedule.getEndByDate()))) { + return false; + } + + return true; + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotScheduleRecurrence.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotScheduleRecurrence.java new file mode 100644 index 0000000..8a79a9a --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotScheduleRecurrence.java @@ -0,0 +1,20 @@ +package org.ovirt.engine.core.common.businessentities.gluster; + +public enum GlusterVolumeSnapshotScheduleRecurrence { + INTERVAL, + HOURLY, + DAILY, + WEEKLY, + MONTHLY, + UNKNOWN; + + public static GlusterVolumeSnapshotScheduleRecurrence from(String value) { + for (GlusterVolumeSnapshotScheduleRecurrence recurrence : values()) { + if (recurrence.name().equals(value)) { + return recurrence; + } + } + + return GlusterVolumeSnapshotScheduleRecurrence.UNKNOWN; + } +} diff --git a/packaging/dbscripts/create_views.sql b/packaging/dbscripts/create_views.sql index d0c4e55..c7d9845 100644 --- a/packaging/dbscripts/create_views.sql +++ b/packaging/dbscripts/create_views.sql @@ -1722,6 +1722,13 @@ FROM gluster_volume_snapshots INNER JOIN gluster_volumes ON gluster_volume_snapshots.volume_id = gluster_volumes.id; +CREATE OR REPLACE VIEW gluster_volume_snapshot_schedules_view +AS +SELECT gluster_volume_snapshot_schedules.*, + gluster_volumes.cluster_id AS cluster_id +FROM gluster_volume_snapshot_schedules +INNER JOIN gluster_volumes ON gluster_volume_snapshot_schedules.volume_id = gluster_volumes.id; + CREATE OR REPLACE VIEW gluster_volume_bricks_view AS SELECT gluster_volume_bricks.*, diff --git a/packaging/dbscripts/upgrade/03_06_0680_add_gluster_volume_snapshot_schedule_tables.sql b/packaging/dbscripts/upgrade/03_06_0680_add_gluster_volume_snapshot_schedule_tables.sql new file mode 100644 index 0000000..5ac17c8 --- /dev/null +++ b/packaging/dbscripts/upgrade/03_06_0680_add_gluster_volume_snapshot_schedule_tables.sql @@ -0,0 +1,17 @@ +-- Add gluster_volume_snapshot_schedules table +CREATE TABLE gluster_volume_snapshot_schedules +( + volume_id UUID NOT NULL, + recurrence VARCHAR(128) NOT NULL, + interval INTEGER, + start_date TIMESTAMP WITH TIME ZONE, + execution_time TIME, + days VARCHAR(256), + end_by TIMESTAMP WITH TIME ZONE, + _create_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT LOCALTIMESTAMP, + _update_date TIMESTAMP WITH TIME ZONE, + CONSTRAINT pk_volume_id PRIMARY KEY(volume_id) +) WITH OIDS; + +SELECT fn_db_create_constraint('gluster_volume_snapshot_schedules', 'fk_gluster_volume_snapshot_schedules_volume_id', 'FOREIGN KEY (volume_id) REFERENCES gluster_volumes(id) ON DELETE CASCADE'); + -- To view, visit http://gerrit.ovirt.org/36485 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I010e5c3977af7adeac2e6865bb1a99280a40ea70 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Shubhendu Tripathi <shtri...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches