Changeset View
Changeset View
Standalone View
Standalone View
src/applications/harbormaster/storage/build/HarbormasterBuild.php
Show First 20 Lines • Show All 224 Lines • ▼ Show 20 Lines | |||||
/* -( Build Messages )----------------------------------------------------- */ | /* -( Build Messages )----------------------------------------------------- */ | ||||
private function getUnprocessedMessages() { | private function getUnprocessedMessages() { | ||||
return $this->assertAttached($this->unprocessedMessages); | return $this->assertAttached($this->unprocessedMessages); | ||||
} | } | ||||
public function attachUnprocessedMessages(array $messages) { | public function attachUnprocessedMessages(array $messages) { | ||||
assert_instances_of($messages, 'HarbormasterBuildMessage'); | |||||
$this->unprocessedMessages = $messages; | $this->unprocessedMessages = $messages; | ||||
return $this; | return $this; | ||||
} | } | ||||
public function canRestartBuild() { | public function canRestartBuild() { | ||||
try { | try { | ||||
$this->assertCanRestartBuild(); | $this->assertCanRestartBuild(); | ||||
return true; | return true; | ||||
▲ Show 20 Lines • Show All 85 Lines • ▼ Show 20 Lines | public function canResumeBuild() { | ||||
return $this->isPaused() && | return $this->isPaused() && | ||||
!$this->isResuming(); | !$this->isResuming(); | ||||
} | } | ||||
public function isPausing() { | public function isPausing() { | ||||
$is_pausing = false; | $is_pausing = false; | ||||
foreach ($this->getUnprocessedMessages() as $message_object) { | foreach ($this->getUnprocessedMessages() as $message_object) { | ||||
$message_type = $message_object->getCommand(); | $message_type = $message_object->getType(); | ||||
switch ($message_type) { | switch ($message_type) { | ||||
case HarbormasterBuildCommand::COMMAND_PAUSE: | case HarbormasterBuildCommand::COMMAND_PAUSE: | ||||
$is_pausing = true; | $is_pausing = true; | ||||
break; | break; | ||||
case HarbormasterBuildCommand::COMMAND_RESUME: | case HarbormasterBuildCommand::COMMAND_RESUME: | ||||
case HarbormasterBuildCommand::COMMAND_RESTART: | case HarbormasterBuildCommand::COMMAND_RESTART: | ||||
$is_pausing = false; | $is_pausing = false; | ||||
break; | break; | ||||
case HarbormasterBuildCommand::COMMAND_ABORT: | case HarbormasterBuildCommand::COMMAND_ABORT: | ||||
$is_pausing = true; | $is_pausing = true; | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
return $is_pausing; | return $is_pausing; | ||||
} | } | ||||
public function isResuming() { | public function isResuming() { | ||||
$is_resuming = false; | $is_resuming = false; | ||||
foreach ($this->getUnprocessedMessages() as $message_object) { | foreach ($this->getUnprocessedMessages() as $message_object) { | ||||
$message_type = $message_object->getCommand(); | $message_type = $message_object->getType(); | ||||
switch ($message_type) { | switch ($message_type) { | ||||
case HarbormasterBuildCommand::COMMAND_RESTART: | case HarbormasterBuildCommand::COMMAND_RESTART: | ||||
case HarbormasterBuildCommand::COMMAND_RESUME: | case HarbormasterBuildCommand::COMMAND_RESUME: | ||||
$is_resuming = true; | $is_resuming = true; | ||||
break; | break; | ||||
case HarbormasterBuildCommand::COMMAND_PAUSE: | case HarbormasterBuildCommand::COMMAND_PAUSE: | ||||
$is_resuming = false; | $is_resuming = false; | ||||
break; | break; | ||||
case HarbormasterBuildCommand::COMMAND_ABORT: | case HarbormasterBuildCommand::COMMAND_ABORT: | ||||
$is_resuming = false; | $is_resuming = false; | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
return $is_resuming; | return $is_resuming; | ||||
} | } | ||||
public function isRestarting() { | public function isRestarting() { | ||||
$is_restarting = false; | $is_restarting = false; | ||||
foreach ($this->getUnprocessedMessages() as $message_object) { | foreach ($this->getUnprocessedMessages() as $message_object) { | ||||
$message_type = $message_object->getCommand(); | $message_type = $message_object->getType(); | ||||
switch ($message_type) { | switch ($message_type) { | ||||
case HarbormasterBuildCommand::COMMAND_RESTART: | case HarbormasterBuildCommand::COMMAND_RESTART: | ||||
$is_restarting = true; | $is_restarting = true; | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
return $is_restarting; | return $is_restarting; | ||||
} | } | ||||
public function isAborting() { | public function isAborting() { | ||||
$is_aborting = false; | $is_aborting = false; | ||||
foreach ($this->getUnprocessedMessages() as $message_object) { | foreach ($this->getUnprocessedMessages() as $message_object) { | ||||
$message_type = $message_object->getCommand(); | $message_type = $message_object->getType(); | ||||
switch ($message_type) { | switch ($message_type) { | ||||
case HarbormasterBuildCommand::COMMAND_ABORT: | case HarbormasterBuildCommand::COMMAND_ABORT: | ||||
$is_aborting = true; | $is_aborting = true; | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
return $is_aborting; | return $is_aborting; | ||||
} | } | ||||
public function markUnprocessedMessagesAsProcessed() { | public function markUnprocessedMessagesAsProcessed() { | ||||
// TODO: See T13072. This is a placeholder until BuildCommand and | foreach ($this->getUnprocessedMessages() as $key => $message_object) { | ||||
// BuildMessage merge. | $message_object | ||||
return $this->deleteUnprocessedMessages(); | ->setIsConsumed(1) | ||||
->save(); | |||||
} | |||||
return $this; | |||||
} | } | ||||
public function deleteUnprocessedMessages() { | public function deleteUnprocessedMessages() { | ||||
foreach ($this->getUnprocessedMessages() as $key => $message_object) { | foreach ($this->getUnprocessedMessages() as $key => $message_object) { | ||||
$message_object->delete(); | $message_object->delete(); | ||||
unset($this->unprocessedMessages[$key]); | unset($this->unprocessedMessages[$key]); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 196 Lines • Show Last 20 Lines |