Skip to content

Commit cf7141c

Browse files
Wei ZhouDaan Hoogland
authored andcommitted
work queue patch for network to add
1 parent 533bef9 commit cf7141c

File tree

5 files changed

+31
-1
lines changed

5 files changed

+31
-1
lines changed

engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5618,7 +5618,7 @@ public Outcome<VirtualMachine> addVmToNetworkThroughJobQueue(
56185618

56195619
final List<VmWorkJobVO> pendingWorkJobs = _workJobDao.listPendingWorkJobs(
56205620
VirtualMachine.Type.Instance, vm.getId(),
5621-
VmWorkAddVmToNetwork.class.getName());
5621+
VmWorkAddVmToNetwork.class.getName(), String.valueOf(network.getId()));
56225622

56235623
VmWorkJobVO workJob = null;
56245624
if (pendingWorkJobs != null && pendingWorkJobs.size() > 0) {

engine/schema/src/main/resources/META-INF/db/schema-41520to41600.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -791,3 +791,5 @@ ALTER TABLE cloud.user_vm_details MODIFY value varchar(5120) NOT NULL;
791791
ALTER TABLE cloud_usage.usage_network DROP PRIMARY KEY, ADD PRIMARY KEY (`account_id`,`zone_id`,`host_id`,`network_id`,`event_time_millis`);
792792
ALTER TABLE `cloud`.`user_statistics` DROP INDEX `account_id`, ADD UNIQUE KEY `account_id` (`account_id`,`data_center_id`,`public_ip_address`,`device_id`,`device_type`, `network_id`);
793793
ALTER TABLE `cloud_usage`.`user_statistics` DROP INDEX `account_id`, ADD UNIQUE KEY `account_id` (`account_id`,`data_center_id`,`public_ip_address`,`device_id`,`device_type`, `network_id`);
794+
795+
ALTER TABLE `cloud`.`vm_work_job` ADD COLUMN `secondary_key` char(100) COMMENT 'any additional item that must be checked during queueing' AFTER `vm_instance_id`;

framework/jobs/src/main/java/org/apache/cloudstack/framework/jobs/dao/VmWorkJobDao.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ public interface VmWorkJobDao extends GenericDao<VmWorkJobVO, Long> {
3232

3333
List<VmWorkJobVO> listPendingWorkJobs(VirtualMachine.Type type, long instanceId, String jobCmd);
3434

35+
List<VmWorkJobVO> listPendingWorkJobs(VirtualMachine.Type type, long instanceId, String jobCmd, String secondaryKey);
36+
3537
void updateStep(long workJobId, Step step);
3638

3739
void expungeCompletedWorkJobs(Date cutDate);

framework/jobs/src/main/java/org/apache/cloudstack/framework/jobs/dao/VmWorkJobDaoImpl.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public void init() {
6767
PendingWorkJobByCommandSearch.and("jobStatus", PendingWorkJobByCommandSearch.entity().getStatus(), Op.EQ);
6868
PendingWorkJobByCommandSearch.and("vmType", PendingWorkJobByCommandSearch.entity().getVmType(), Op.EQ);
6969
PendingWorkJobByCommandSearch.and("vmInstanceId", PendingWorkJobByCommandSearch.entity().getVmInstanceId(), Op.EQ);
70+
PendingWorkJobByCommandSearch.and("secondaryKey", PendingWorkJobByCommandSearch.entity().getSecondaryKey(), Op.EQ);
7071
PendingWorkJobByCommandSearch.and("step", PendingWorkJobByCommandSearch.entity().getStep(), Op.NEQ);
7172
PendingWorkJobByCommandSearch.and("cmd", PendingWorkJobByCommandSearch.entity().getCmd(), Op.EQ);
7273
PendingWorkJobByCommandSearch.done();
@@ -119,6 +120,20 @@ public List<VmWorkJobVO> listPendingWorkJobs(VirtualMachine.Type type, long inst
119120
return this.listBy(sc, filter);
120121
}
121122

123+
@Override
124+
public List<VmWorkJobVO> listPendingWorkJobs(VirtualMachine.Type type, long instanceId, String jobCmd, String secondaryKey) {
125+
126+
SearchCriteria<VmWorkJobVO> sc = PendingWorkJobByCommandSearch.create();
127+
sc.setParameters("jobStatus", JobInfo.Status.IN_PROGRESS);
128+
sc.setParameters("vmType", type);
129+
sc.setParameters("vmInstanceId", instanceId);
130+
sc.setParameters("secondaryKey", secondaryKey);
131+
sc.setParameters("cmd", jobCmd);
132+
133+
Filter filter = new Filter(VmWorkJobVO.class, "created", true, null, null);
134+
return this.listBy(sc, filter);
135+
}
136+
122137
@Override
123138
public void updateStep(long workJobId, Step step) {
124139
VmWorkJobVO jobVo = findById(workJobId);

framework/jobs/src/main/java/org/apache/cloudstack/framework/jobs/impl/VmWorkJobVO.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ boolean updateState() {
5858
@Column(name = "vm_instance_id")
5959
long vmInstanceId;
6060

61+
@Column(name = "secondary_key")
62+
String secondaryKey;
63+
6164
protected VmWorkJobVO() {
6265
}
6366

@@ -89,4 +92,12 @@ public long getVmInstanceId() {
8992
public void setVmInstanceId(long vmInstanceId) {
9093
this.vmInstanceId = vmInstanceId;
9194
}
95+
96+
public String getSecondaryKey() {
97+
return secondaryKey;
98+
}
99+
100+
public void setSecondaryKey(String secondaryKey) {
101+
this.secondaryKey = secondaryKey;
102+
}
92103
}

0 commit comments

Comments
 (0)