Skip to content
This repository has been archived by the owner on Dec 14, 2020. It is now read-only.

Commit

Permalink
Merge pull request #95 from cadsit/scheduling-priority
Browse files Browse the repository at this point in the history
Scheduling priority
  • Loading branch information
rolfbjarne committed Dec 20, 2016
2 parents 78a4865 + a880ff8 commit 84db5fc
Show file tree
Hide file tree
Showing 12 changed files with 187 additions and 202 deletions.
4 changes: 3 additions & 1 deletion MonkeyWrench.DataClasses/Database/DBLane.generated.cs
Expand Up @@ -29,6 +29,7 @@ public partial class DBLane : DBRecord
private bool _enabled;
private DateTime? _changed_date;
private string _additional_roles;
private int _priority;

public string @lane { get { return _lane; } set { _lane = value; } }
public string @source_control { get { return _source_control; } set { _source_control = value; } }
Expand All @@ -41,6 +42,7 @@ public partial class DBLane : DBRecord
public bool @enabled { get { return _enabled; } set { _enabled = value; } }
public DateTime? @changed_date { get { return _changed_date; } set { _changed_date = value; } }
public string @additional_roles { get { return _additional_roles; } set { _additional_roles = value; } }
public int @priority { get { return _priority; } set { _priority = value; } }


public override string Table
Expand All @@ -53,7 +55,7 @@ public override string Table
{
get
{
return new string [] { "lane", "source_control", "repository", "min_revision", "max_revision", "parent_lane_id", "commit_filter", "traverse_merge", "enabled", "changed_date", "additional_roles" };
return new string [] { "lane", "source_control", "repository", "min_revision", "max_revision", "parent_lane_id", "commit_filter", "traverse_merge", "enabled", "changed_date", "additional_roles", "priority" };
}
}

Expand Down
1 change: 1 addition & 0 deletions MonkeyWrench.DataClasses/Database/DBQueueManagement.cs
Expand Up @@ -21,5 +21,6 @@ public enum DBQueueManagement
FinishBeforeNew = 0,
ExecuteLatestAsap = 1, // currently same as FinishBeforeNew (i.e. ignored)
OneRevisionWorkAtATime = 2, //
ChooseHighestPriorityLeastRecent = 3
}
}
Expand Up @@ -29,6 +29,7 @@ public partial class DBRevisionWork : DBRecord
private DateTime? _assignedtime;
private DateTime? _startedtime;
private DateTime? _endtime;
private int _priority;

public int @lane_id { get { return _lane_id; } set { _lane_id = value; } }
public int @host_id { get { return _host_id; } set { _host_id = value; } }
Expand All @@ -41,6 +42,7 @@ public partial class DBRevisionWork : DBRecord
public DateTime? @assignedtime { get { return _assignedtime; } set { _assignedtime = value; } }
public DateTime? @startedtime { get { return _startedtime; } set { _startedtime = value; } }
public DateTime? @endtime { get { return _endtime; } set { _endtime = value; } }
public int @priority { get { return _priority; } set { _priority = value; } }


public override string Table
Expand All @@ -53,7 +55,7 @@ public override string Table
{
get
{
return new string [] { "lane_id", "host_id", "workhost_id", "revision_id", "state", "lock_expires", "completed", "createdtime", "assignedtime", "startedtime", "endtime" };
return new string [] { "lane_id", "host_id", "workhost_id", "revision_id", "state", "lock_expires", "completed", "createdtime", "assignedtime", "startedtime", "endtime", "priority" };
}
}

Expand Down
2 changes: 1 addition & 1 deletion MonkeyWrench.Database/DB.cs
Expand Up @@ -1163,7 +1163,7 @@ INNER JOIN
AND RevisionWork.lane_id = @lane_id
AND RevisionWork.state <> @dependencynotfulfilled AND RevisionWork.state <> 10 AND RevisionWork.State <> @ignore
AND RevisionWork.completed = false
ORDER BY RevisionWork.workhost_id IS NULL ASC, Revision.date DESC
ORDER BY RevisionWork.workhost_id IS NULL ASC, RevisionWork.priority DESC, Revision.date DESC
LIMIT 1
;";
DB.CreateParameter (cmd, "host_id", host.id);
Expand Down
1 change: 1 addition & 0 deletions MonkeyWrench.Web.UI/EditHost.aspx
Expand Up @@ -47,6 +47,7 @@
<asp:ListItem Text="Completely finish a revision before starting a new one" Value="0"></asp:ListItem>
<asp:ListItem Text="[Don't use]" Value="1"></asp:ListItem>
<asp:ListItem Text="Execute one revision per lane at a time" Value="2"></asp:ListItem>
<asp:ListItem Text="Choose highest priority lane" Value="3"></asp:ListItem>
</asp:DropDownList>
</asp:TableCell>
<asp:TableCell>
Expand Down
250 changes: 56 additions & 194 deletions MonkeyWrench.Web.UI/EditHost.aspx.designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions MonkeyWrench.Web.UI/EditLane.aspx
Expand Up @@ -57,6 +57,17 @@
</asp:TableCell>
<asp:TableCell>Comma-separated list of additional roles (besides admin) that can edit this lane.</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Priority:</asp:TableCell>
<asp:TableCell>
<asp:DropDownList ID="lstPriority" runat="server" Width="600px">
<asp:ListItem Text="Pull Request" Value="0"></asp:ListItem>
<asp:ListItem Text="Normal" Value="1"></asp:ListItem>
<asp:ListItem Text="Release" Value="2"></asp:ListItem>
</asp:DropDownList>
</asp:TableCell>
<asp:TableCell>Default priority of all builds in the lane.</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Parent lane:</asp:TableCell>
<asp:TableCell>
Expand Down
3 changes: 3 additions & 0 deletions MonkeyWrench.Web.UI/EditLane.aspx.cs
Expand Up @@ -90,6 +90,8 @@ protected override void OnInit (EventArgs e)
}
}

lstPriority.SelectedIndex = Int32.Parse (lstPriority.Items.FindByValue (response.Lane.priority.ToString ()).Value);

if (!IsPostBack) {
for (int i = 0; i < cmbSourceControl.Items.Count; i++) {
cmbSourceControl.Items [i].Selected = lane.source_control == cmbSourceControl.Items [i].Text;
Expand Down Expand Up @@ -701,6 +703,7 @@ protected void cmdSave_Click (object sender, EventArgs e)
lane.traverse_merge = chkTraverseMerges.Checked;
lane.enabled = chkEnabled.Checked;
lane.additional_roles = txtRoles.Text;
lane.priority = Int32.Parse (lstPriority.SelectedItem.Value);

Utils.LocalWebService.EditLaneWithTags (Master.WebServiceLogin, lane, !string.IsNullOrEmpty (txtTags.Text) ? txtTags.Text.Split (',') : null);
RedirectToSelf ();
Expand Down
2 changes: 2 additions & 0 deletions MonkeyWrench.Web.UI/EditLane.aspx.designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions MonkeyWrench.Web.WebService/Scheduler/Scheduler.cs
Expand Up @@ -193,8 +193,8 @@ public static bool AddRevisionWork (DB db, List<DBLane> lanes, List<DBHostLane>

try {
using (var cmd = db.CreateCommand (@"
INSERT INTO RevisionWork (lane_id, host_id, revision_id, state)
SELECT Lane.id, Host.id, Revision.id, 10
INSERT INTO RevisionWork (lane_id, host_id, revision_id, priority, state)
SELECT Lane.id, Host.id, Revision.id, Lane.priority, 10
FROM HostLane
INNER JOIN Host ON HostLane.host_id = Host.id
INNER JOIN Lane ON HostLane.lane_id = Lane.id
Expand Down Expand Up @@ -266,8 +266,8 @@ public static bool AddRevisionWorkSlow (DB db, List<DBLane> lanes, List<DBHostLa
}
foreach (var id in selected_lanes.Keys) {
using (var cmd = db.CreateCommand (string.Format (@"
INSERT INTO RevisionWork (lane_id, host_id, revision_id, state)
SELECT Lane.id, Host.id, Revision.id, 10
INSERT INTO RevisionWork (lane_id, host_id, revision_id, priority, state)
SELECT Lane.id, Host.id, Revision.id, Lane.priority, 10
FROM HostLane
INNER JOIN Host ON HostLane.host_id = Host.id
INNER JOIN Lane ON HostLane.lane_id = Lane.id
Expand Down

0 comments on commit 84db5fc

Please sign in to comment.