Skip to content

Commit

Permalink
MBS-7211: Pass version to emcee explicitly
Browse files Browse the repository at this point in the history
  • Loading branch information
Vladimir Ignatov committed Mar 11, 2020
1 parent b95b15f commit 79ebc87
Show file tree
Hide file tree
Showing 42 changed files with 130 additions and 263 deletions.
73 changes: 8 additions & 65 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -344,8 +344,7 @@ let package = Package(
"PathLib",
"SSHDeployer",
"TemporaryStuff",
"TypedResourceLocation",
"Version",
"TypedResourceLocation"
]
),
.testTarget(
Expand Down Expand Up @@ -477,7 +476,6 @@ let package = Package(
"TypedResourceLocation",
"URLResource",
"UniqueIdentifierGenerator",
"Version",
"fbxctest",
]
),
Expand Down Expand Up @@ -600,23 +598,6 @@ let package = Package(
"UniqueIdentifierGeneratorTestHelpers"
]
),
.target(
// MARK: FileHasher
name: "FileHasher",
dependencies: [
"AtomicModels",
"Extensions",
"Models"
]
),
.testTarget(
// MARK: FileHasherTests
name: "FileHasherTests",
dependencies: [
"FileHasher",
"TemporaryStuff"
]
),
.target(
// MARK: FileLock
name: "FileLock",
Expand Down Expand Up @@ -711,7 +692,6 @@ let package = Package(
"SynchronousWaiter",
"TemporaryStuff",
"UniqueIdentifierGenerator",
"Version",
]
),
.testTarget(
Expand All @@ -727,8 +707,6 @@ let package = Package(
"RemotePortDeterminer",
"RemotePortDeterminerTestHelpers",
"TemporaryStuff",
"Version",
"VersionTestHelpers",
]
),
.target(
Expand All @@ -752,8 +730,7 @@ let package = Package(
"Metrics",
"PathLib",
"Sentry",
"TemporaryStuff",
"Version"
"TemporaryStuff"
]
),
.testTarget(
Expand Down Expand Up @@ -939,8 +916,7 @@ let package = Package(
"RESTMethods",
"RequestSender",
"ScheduleStrategy",
"SynchronousWaiter",
"Version",
"SynchronousWaiter"
]
),
.testTarget(
Expand Down Expand Up @@ -1002,7 +978,6 @@ let package = Package(
"DateProvider",
"DistWorkerModels",
"Extensions",
"FileHasher",
"LocalHostDeterminer",
"Logging",
"Metrics",
Expand All @@ -1018,7 +993,6 @@ let package = Package(
"SynchronousWaiter",
"Timer",
"UniqueIdentifierGenerator",
"Version",
"WorkerAlivenessProvider",
]
),
Expand Down Expand Up @@ -1050,7 +1024,6 @@ let package = Package(
"Deployer",
"DistWorkerModels",
"DistWorkerModelsTestHelpers",
"FileHasher",
"Models",
"ModelsTestHelpers",
"QueueClient",
Expand All @@ -1069,9 +1042,8 @@ let package = Package(
"TemporaryStuff",
"TestHelpers",
"UniqueIdentifierGeneratorTestHelpers",
"VersionTestHelpers",
"WorkerAlivenessProvider",
"WorkerAlivenessProviderTestHelpers",
"WorkerAlivenessProviderTestHelpers"
]
),
.target(
Expand All @@ -1080,8 +1052,7 @@ let package = Package(
dependencies: [
"AtomicModels",
"QueueClient",
"RequestSender",
"Version"
"RequestSender"
]
),
.target(
Expand Down Expand Up @@ -1109,17 +1080,15 @@ let package = Package(
"DistDeployer",
"Models",
"RemotePortDeterminer",
"SSHDeployer",
"Version"
"SSHDeployer"
]
),
.testTarget(
// MARK: RemoteQueueTests
name: "RemoteQueueTests",
dependencies: [
"RemotePortDeterminerTestHelpers",
"RemoteQueue",
"VersionTestHelpers"
"RemoteQueue"
]
),
.target(
Expand Down Expand Up @@ -1225,8 +1194,7 @@ let package = Package(
"Models",
"QueueModels",
"RequestSender",
"ScheduleStrategy",
"Version",
"ScheduleStrategy"
]
),
.target(
Expand Down Expand Up @@ -1672,31 +1640,6 @@ let package = Package(
"URLResource",
]
),
.target(
// MARK: Version
name: "Version",
dependencies: [
"FileHasher"
]
),
.target(
// MARK: VersionTestHelpers
name: "VersionTestHelpers",
dependencies: [
"Version"
],
path: "Tests/VersionTestHelpers"
),
.testTarget(
// MARK: VersionTests
name: "VersionTests",
dependencies: [
"Extensions",
"FileHasher",
"TemporaryStuff",
"Version"
]
),
.target(
// MARK: WorkerAlivenessProvider
name: "WorkerAlivenessProvider",
Expand Down
9 changes: 4 additions & 5 deletions Sources/DistDeployer/DeployablesGenerator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,13 @@ import Extensions
import Foundation
import Models
import PathLib
import Version

final class DeployablesGenerator {
private let emceeVersionProvider: VersionProvider
private let emceeVersion: Version
private let remoteEmceeBinaryName: String

public init(emceeVersionProvider: VersionProvider, remoteEmceeBinaryName: String) {
self.emceeVersionProvider = emceeVersionProvider
public init(emceeVersion: Version, remoteEmceeBinaryName: String) {
self.emceeVersion = emceeVersion
self.remoteEmceeBinaryName = remoteEmceeBinaryName
}

Expand All @@ -24,7 +23,7 @@ final class DeployablesGenerator {
files: [
DeployableFile(
source: AbsolutePath(ProcessInfo.processInfo.executablePath),
destination: RelativePath(remoteEmceeBinaryName + "_" + (try emceeVersionProvider.version().value))
destination: RelativePath(remoteEmceeBinaryName + "_" + emceeVersion.value)
)
]
)
Expand Down
5 changes: 5 additions & 0 deletions Sources/DistDeployer/RemoteQueueLaunchdPlist.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ public final class RemoteQueueLaunchdPlist {
private let deploymentId: String
/// Deployment destination where queue should start
private let deploymentDestination: DeploymentDestination
/// Emcee binary version
private let emceeVersion: Version
/// Queue server executable
private let queueServerBinaryDeployableItem: DeployableItem
/// A JSON file location that contains QueueServerRunConfiguration for queue server
Expand All @@ -19,10 +21,12 @@ public final class RemoteQueueLaunchdPlist {
deploymentId: String,
deploymentDestination: DeploymentDestination,
emceeDeployableItem: DeployableItem,
emceeVersion: Version,
queueServerRunConfigurationLocation: QueueServerRunConfigurationLocation
) {
self.deploymentId = deploymentId
self.deploymentDestination = deploymentDestination
self.emceeVersion = emceeVersion
self.queueServerBinaryDeployableItem = emceeDeployableItem
self.queueServerRunConfigurationLocation = queueServerRunConfigurationLocation
}
Expand All @@ -49,6 +53,7 @@ public final class RemoteQueueLaunchdPlist {
label: jobLabel,
programArguments: [
remoteQueueServerBinaryPath.pathString, "startLocalQueueServer",
"--emcee-version", emceeVersion.value,
"--queue-server-run-configuration-location", queueServerRunConfigurationLocation.resourceLocation.stringValue
],
environmentVariables: [:],
Expand Down
10 changes: 5 additions & 5 deletions Sources/DistDeployer/RemoteQueueStarter.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,31 @@ import Foundation
import Models
import PathLib
import TemporaryStuff
import Version

public final class RemoteQueueStarter {
private let deploymentId: String
private let emceeVersionProvider: VersionProvider
private let deploymentDestination: DeploymentDestination
private let emceeVersion: Version
private let queueServerRunConfigurationLocation: QueueServerRunConfigurationLocation
private let tempFolder: TemporaryFolder

public init(
deploymentId: String,
emceeVersionProvider: VersionProvider,
deploymentDestination: DeploymentDestination,
emceeVersion: Version,
queueServerRunConfigurationLocation: QueueServerRunConfigurationLocation,
tempFolder: TemporaryFolder
) {
self.deploymentId = deploymentId
self.emceeVersionProvider = emceeVersionProvider
self.deploymentDestination = deploymentDestination
self.emceeVersion = emceeVersion
self.queueServerRunConfigurationLocation = queueServerRunConfigurationLocation
self.tempFolder = tempFolder
}

public func deployAndStart(deployQueue: DispatchQueue) throws {
let deployablesGenerator = DeployablesGenerator(
emceeVersionProvider: emceeVersionProvider,
emceeVersion: emceeVersion,
remoteEmceeBinaryName: "EmceeQueueServer"
)
try deploy(
Expand All @@ -48,6 +47,7 @@ public final class RemoteQueueStarter {
deploymentId: deploymentId,
deploymentDestination: deploymentDestination,
emceeDeployableItem: emceeBinaryDeployableItem,
emceeVersion: emceeVersion,
queueServerRunConfigurationLocation: queueServerRunConfigurationLocation
)
let launchdPlistDeployableItem = DeployableItem(
Expand Down
17 changes: 9 additions & 8 deletions Sources/DistDeployer/RemoteWorkerLaunchdPlist.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,20 @@ import Models
import SSHDeployer

public final class RemoteWorkerLaunchdPlist {

private let deploymentId: String

private let deploymentDestination: DeploymentDestination
private let emceeVersion: Version
private let executableDeployableItem: DeployableItem
private let queueAddress: SocketAddress

public init(
deploymentId: String,
deploymentDestination: DeploymentDestination,
emceeVersion: Version,
executableDeployableItem: DeployableItem,
queueAddress: SocketAddress
) {
self.deploymentId = deploymentId
self.deploymentDestination = deploymentDestination
self.emceeVersion = emceeVersion
self.executableDeployableItem = executableDeployableItem
self.queueAddress = queueAddress
}
Expand All @@ -27,23 +27,24 @@ public final class RemoteWorkerLaunchdPlist {
let containerPath = SSHDeployer.remoteContainerPath(
forDeployable: executableDeployableItem,
destination: deploymentDestination,
deploymentId: deploymentId
deploymentId: emceeVersion.value
)
let emceeDeployableBinaryFile = try DeployableItemSingleFileExtractor(deployableItem: executableDeployableItem).singleDeployableFile()
let workerBinaryRemotePath = SSHDeployer.remotePath(
deployable: executableDeployableItem,
file: emceeDeployableBinaryFile,
destination: deploymentDestination,
deploymentId: deploymentId
deploymentId: emceeVersion.value
)
let jobLabel = "ru.avito.emcee.worker.\(deploymentId.removingWhitespaces())"
let jobLabel = "ru.avito.emcee.worker.\(emceeVersion.value.removingWhitespaces())"
let launchdPlist = LaunchdPlist(
job: LaunchdJob(
label: jobLabel,
programArguments: [
workerBinaryRemotePath.pathString, "distWork",
"--emcee-version", emceeVersion.value,
"--queue-server", queueAddress.asString,
"--worker-id", deploymentDestination.identifier,
"--worker-id", deploymentDestination.identifier
],
environmentVariables: [:],
workingDirectory: containerPath.pathString,
Expand Down
Loading

0 comments on commit 79ebc87

Please sign in to comment.