public Task <ICommand> CreateAsync(IModuleWithIdentity module, IRuntimeInfo runtimeInfo) => Task.FromResult(CreateOrUpdateCommand.BuildCreate( this.moduleManager, module.Module, module.ModuleIdentity, this.configSource, this.combinedConfigProvider.GetCombinedConfig(module.Module, runtimeInfo)) as ICommand);
public Task <ICommand> CreateAsync(IModuleWithIdentity module, IRuntimeInfo runtimeInfo) { if (this.checkImagePullBeforeModuleCreate) { T config = this.combinedConfigProvider.GetCombinedConfig(module.Module, runtimeInfo); return(Task.FromResult( new GroupCommand( new PrepareUpdateCommand(this.moduleManager, module.Module, config), CreateOrUpdateCommand.BuildCreate( this.moduleManager, module.Module, module.ModuleIdentity, this.configSource, config, this.edgeDeviceHostname, this.parentEdgeHostname) as ICommand) as ICommand)); } else { return(Task.FromResult( CreateOrUpdateCommand.BuildCreate( this.moduleManager, module.Module, module.ModuleIdentity, this.configSource, this.combinedConfigProvider.GetCombinedConfig(module.Module, runtimeInfo), this.edgeDeviceHostname, this.parentEdgeHostname) as ICommand)); } }
void VerifyResult(CreateOrUpdateCommandTestData testData, CreateOrUpdateCommand command) { Assert.Equal(testData.ModuleName, command.ModuleSpec.Name); Assert.Equal(testData.ModuleType, command.ModuleSpec.Type); Assert.Equal(testData.ImagePullPolicy, command.ModuleSpec.ImagePullPolicy); Assert.Equal(testData.Settings, command.ModuleSpec.Settings); List <Models.EnvVar> environmentVariables = command.ModuleSpec.EnvironmentVariables.ToList(); foreach (string key in testData.EnvironmentVariables.Keys) { Assert.Equal(testData.EnvironmentVariables[key].Value, environmentVariables.First(v => v.Key.Equals(key)).Value); } Assert.Equal(testData.EdgeletWorkloadUri, environmentVariables.First(v => v.Key.Equals(Constants.EdgeletWorkloadUriVariableName)).Value); Assert.Equal(testData.EdgeletAuthScheme, environmentVariables.First(v => v.Key.Equals(Constants.EdgeletAuthSchemeVariableName)).Value); Assert.Equal(testData.ModuleGenerationId, environmentVariables.First(v => v.Key.Equals(Constants.EdgeletModuleGenerationIdVariableName)).Value); Assert.Equal(testData.IoTHubHostname, environmentVariables.First(v => v.Key.Equals(Constants.IotHubHostnameVariableName)).Value); Assert.Equal(testData.DeviceId, environmentVariables.First(v => v.Key.Equals(Constants.DeviceIdVariableName)).Value); Assert.Equal(testData.ModuleId, environmentVariables.First(v => v.Key.Equals(Constants.ModuleIdVariableName)).Value); Assert.Equal(LogEventLevel.Information.ToString(), environmentVariables.First(v => v.Key.Equals(Logger.RuntimeLogLevelEnvKey)).Value); Assert.Equal(testData.UpstreamProtocol, environmentVariables.First(v => v.Key.Equals(Constants.UpstreamProtocolKey)).Value); Assert.Equal(testData.EdgeletApiVersion, environmentVariables.First(v => v.Key.Equals(Constants.EdgeletApiVersionVariableName)).Value); if (testData.ModuleId.Equals(Constants.EdgeAgentModuleIdentityName)) { Assert.Equal("iotedged", environmentVariables.First(v => v.Key.Equals(Constants.ModeKey)).Value); Assert.Equal(testData.EdgeletManagementUri, environmentVariables.First(v => v.Key.Equals(Constants.EdgeletManagementUriVariableName)).Value); Assert.Equal(testData.NetworkId, environmentVariables.First(v => v.Key.Equals(Constants.NetworkIdKey)).Value); Assert.Equal(testData.EdgeDeviceHostname, environmentVariables.First(v => v.Key.Equals(Constants.EdgeDeviceHostNameKey)).Value); testData.ParentEdgeHostname.ForEach(value => Assert.Equal(value, environmentVariables.First(v => v.Key.Equals(Constants.GatewayHostnameVariableName)).Value)); Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.ParentEdgeHostnameVariableName))); } else if (testData.ModuleId.Equals(Constants.EdgeHubModuleIdentityName)) { Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.ModeKey))); Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.EdgeletManagementUriVariableName))); Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.NetworkIdKey))); Assert.Equal(testData.EdgeDeviceHostname, environmentVariables.First(v => v.Key.Equals(Constants.EdgeDeviceHostNameKey)).Value); testData.ParentEdgeHostname.ForEach(value => Assert.Equal(value, environmentVariables.First(v => v.Key.Equals(Constants.GatewayHostnameVariableName)).Value)); Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.ParentEdgeHostnameVariableName))); } else { Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.ModeKey))); Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.EdgeletManagementUriVariableName))); Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.NetworkIdKey))); Assert.Equal(testData.EdgeDeviceHostname, environmentVariables.First(v => v.Key.Equals(Constants.GatewayHostnameVariableName)).Value); testData.ParentEdgeHostname.ForEach(value => Assert.Equal(value, environmentVariables.First(v => v.Key.Equals(Constants.ParentEdgeHostnameVariableName)).Value)); Assert.Null(environmentVariables.FirstOrDefault(v => v.Key.Equals(Constants.EdgeDeviceHostNameKey))); } }
async Task <ICommand> UpdateAsync(Option <IModule> current, IModuleWithIdentity next, IRuntimeInfo runtimeInfo, bool start) { T config = this.combinedConfigProvider.GetCombinedConfig(next.Module, runtimeInfo); return(new GroupCommand( new PrepareUpdateCommand(this.moduleManager, next.Module, config), await current.Match(c => this.StopAsync(c), () => Task.FromResult <ICommand>(NullCommand.Instance)), CreateOrUpdateCommand.BuildUpdate( this.moduleManager, next.Module, next.ModuleIdentity, this.configSource, config, start) as ICommand)); }
public void VerfiyCreateOrUpdateCommand(CreateOrUpdateCommandTestData testData) { var mocks = new CreateOrUpdateCommandMocks(testData); CreateOrUpdateCommand command = CreateOrUpdateCommand.BuildCreate( mocks.ModuleManager.Object, mocks.EdgeAgentModule.Object, mocks.EdgeAgentModuleIdentity.Object, mocks.ConfigSource.Object, testData.Settings, testData.EdgeDeviceHostname, testData.ParentEdgeHostname); this.VerifyResult(testData, command); }