public void ServiceSettingsTest() { ServiceSettings settings = new ServiceSettings(); AzureAssert.AreEqualServiceSettings(string.Empty, string.Empty, string.Empty, string.Empty, settings); }
public void SetAzureServiceProjectTestsLocationValid() { string[] locations = { "West US", "East US", "East Asia", "North Europe" }; foreach (string item in locations) { using (FileSystemHelper files = new FileSystemHelper(this)) { // Create new empty settings file // PowerShellProjectPathInfo paths = new PowerShellProjectPathInfo(files.RootPath); ServiceSettings settings = new ServiceSettings(); mockCommandRuntime = new MockCommandRuntime(); setServiceProjectCmdlet.CommandRuntime = mockCommandRuntime; settings.Save(paths.Settings); settings = setServiceProjectCmdlet.SetAzureServiceProjectProcess(item, null, null, paths.Settings); // Assert location is changed // Assert.Equal<string>(item, settings.Location); ServiceSettings actualOutput = mockCommandRuntime.OutputPipeline[0] as ServiceSettings; Assert.Equal<string>(item, settings.Location); } } }
public static void AreEqualServiceSettings(string location, string slot, string storageAccountName, string subscriptionName, ServiceSettings actual) { Assert.AreEqual<string>(location, actual.Location); Assert.AreEqual<string>(slot, actual.Slot); Assert.AreEqual<string>(storageAccountName, actual.StorageServiceName); Assert.AreEqual<string>(subscriptionName, actual.Subscription); }
public static void AreEqualPublishContext(ServiceSettings settings, string configPath, string deploymentName, string label, string packagePath, string subscriptionId, PublishContext actual) { AreEqualServiceSettings(settings, actual.ServiceSettings); Assert.AreEqual<string>(configPath, actual.CloudConfigPath); Assert.AreEqual<string>(deploymentName, actual.DeploymentName); Assert.AreEqual<string>(label, actual.ServiceName); Assert.AreEqual<string>(packagePath, actual.PackagePath); Assert.AreEqual<string>(subscriptionId, actual.SubscriptionId); Assert.IsTrue(File.Exists(actual.CloudConfigPath)); Assert.IsTrue(File.Exists(actual.PackagePath)); }
public void SetAzureServiceProjectTestsLocationEmptyFail() { using (FileSystemHelper files = new FileSystemHelper(this)) { // Create new empty settings file // PowerShellProjectPathInfo paths = new PowerShellProjectPathInfo(files.RootPath); ServiceSettings settings = new ServiceSettings(); settings.Save(paths.Settings); Testing.AssertThrows<ArgumentException>(() => setServiceProjectCmdlet.SetAzureServiceProjectProcess(string.Empty, null, null, paths.Settings), string.Format(Resources.InvalidOrEmptyArgumentMessage, "Location")); } }
/// <summary> /// When running this test double check that the certificate used in Azure.PublishSettings has not expired. /// </summary> public PublishContextTests() { AzurePowerShell.ProfileDirectory = Test.Utilities.Common.Data.AzureSdkAppDir; service = new AzureServiceWrapper(Directory.GetCurrentDirectory(), Path.GetRandomFileName(), null); service.CreateVirtualCloudPackage(); packagePath = service.Paths.CloudPackage; configPath = service.Paths.CloudConfiguration; settings = ServiceSettingsTestData.Instance.Data[ServiceSettingsState.Default]; AzureSession.DataStore = new MemoryDataStore(); ProfileClient client = new ProfileClient(new AzureSMProfile(Path.Combine(AzureSession.ProfileDirectory, AzureSession.ProfileFile))); AzureSession.DataStore.WriteFile(Test.Utilities.Common.Data.ValidPublishSettings.First(), File.ReadAllText(Test.Utilities.Common.Data.ValidPublishSettings.First())); client.ImportPublishSettings(Test.Utilities.Common.Data.ValidPublishSettings.First(), null); client.Profile.Save(); }
public PublishContext( ServiceSettings settings, string packagePath, string cloudConfigPath, string serviceName, string deploymentName, string rootPath) { Validate.ValidateNullArgument(settings, Resources.InvalidServiceSettingMessage); Validate.ValidateStringIsNullOrEmpty(packagePath, "packagePath"); Validate.ValidateFileFull(cloudConfigPath, Resources.ServiceConfiguration); Validate.ValidateStringIsNullOrEmpty(serviceName, "serviceName"); this.ServiceSettings = settings; this.PackagePath = packagePath; this.CloudConfigPath = cloudConfigPath; this.RootPath = rootPath; this.ServiceName = serviceName; this.DeploymentName = string.IsNullOrEmpty(deploymentName) ? char.ToLower(ServiceSettings.Slot[0]) + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ffff") : deploymentName; if (!string.IsNullOrEmpty(settings.Subscription)) { try { ProfileClient client = new ProfileClient(new AzureSMProfile(Path.Combine(AzureSession.ProfileDirectory, AzureSession.ProfileFile))); SubscriptionId = client.Profile.Subscriptions.Values.Where(s => s.Name == settings.Subscription) .Select(s => s.Id.ToString()) .First(); } catch (Exception) { throw new ArgumentException(string.Format(Resources.SubscriptionIdNotFoundMessage, settings.Subscription), "settings.Subscription"); } } else { throw new ArgumentNullException("settings.Subscription", Resources.InvalidSubscriptionNameMessage); } }
public PublishContext( ServiceSettings settings, string packagePath, string cloudConfigPath, string serviceName, string deploymentName, string rootPath) { Validate.ValidateNullArgument(settings, Resources.InvalidServiceSettingMessage); Validate.ValidateStringIsNullOrEmpty(packagePath, "packagePath"); Validate.ValidateFileFull(cloudConfigPath, Resources.ServiceConfiguration); Validate.ValidateStringIsNullOrEmpty(serviceName, "serviceName"); this.ServiceSettings = settings; this.PackagePath = packagePath; this.CloudConfigPath = cloudConfigPath; this.RootPath = rootPath; this.ServiceName = serviceName; this.DeploymentName = string.IsNullOrEmpty(deploymentName) ? char.ToLower(ServiceSettings.Slot[0]) + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ffff") : deploymentName; if (!string.IsNullOrEmpty(settings.Subscription)) { try { SubscriptionId = WindowsAzureProfile.Instance.Subscriptions.Where(s => s.SubscriptionName == settings.Subscription) .Select(s => s.SubscriptionId) .First(); } catch (Exception) { throw new ArgumentException(Resources.SubscriptionIdNotFoundMessage, settings.Subscription); } } else { throw new ArgumentNullException("settings.Subscription", Resources.InvalidSubscriptionNameMessage); } }
private void InitializeData() { ServiceSettings settings; Data = new Dictionary<ServiceSettingsState, ServiceSettings>(); Data.Add(ServiceSettingsState.Default, new ServiceSettings()); settings = new ServiceSettings(); settings.Location = "South Central US"; settings.Slot = DeploymentSlotType.Production; settings.StorageServiceName = "mystore"; settings.Subscription = "TestSubscription2"; Data.Add(ServiceSettingsState.Sample1, settings); settings = new ServiceSettings(); settings.Location = "South Central US"; settings.Slot = DeploymentSlotType.Production; settings.StorageServiceName = "mystore"; settings.Subscription = "Does not exist subscription"; Data.Add(ServiceSettingsState.DoesNotExistSubscription, settings); }
private void LoadComponents(ServicePathInfo paths) { Validate.ValidateNullArgument(paths, string.Format(Resources.NullObjectMessage, "paths")); Validate.ValidateFileFull(paths.CloudConfiguration, Resources.ServiceConfiguration); Validate.ValidateFileFull(paths.LocalConfiguration, Resources.ServiceConfiguration); Validate.ValidateFileFull(paths.Definition, Resources.ServiceDefinition); try { Validate.ValidateFileFull(paths.Settings, Resources.ServiceSettings); } catch (FileNotFoundException) { // Try recreating the settings file File.WriteAllText(paths.Settings, Resources.SettingsFileEmptyContent); } Definition = General.DeserializeXmlFile<ServiceDefinition>(paths.Definition); CloudConfig = General.DeserializeXmlFile<ServiceConfiguration>(paths.CloudConfiguration); LocalConfig = General.DeserializeXmlFile<ServiceConfiguration>(paths.LocalConfiguration); Settings = ServiceSettings.Load(paths.Settings); }
public static ServiceSettings LoadDefault( string path, string slot, string location, string affinityGroup, string subscription, string storageAccountName, string suppliedServiceName, string serviceDefinitionName, out string serviceName) { ServiceSettings local; ServiceSettings defaultServiceSettings = new ServiceSettings(); if (string.IsNullOrEmpty(path) || !File.Exists(path)) { local = new ServiceSettings(); } else { Validate.ValidateFileFull(path, Resources.ServiceSettings); local = Load(path); } defaultServiceSettings._slot = GetDefaultSlot(local.Slot, null, slot); defaultServiceSettings._location = GetDefaultLocation(local.Location, location); defaultServiceSettings._subscription = GetDefaultSubscription(local.Subscription, subscription); serviceName = GetServiceName(suppliedServiceName, serviceDefinitionName); defaultServiceSettings._storageAccountName = GetDefaultStorageName(local.StorageServiceName, null, storageAccountName, serviceName).ToLower(); defaultServiceSettings._affinityGroup = affinityGroup; return defaultServiceSettings; }
/// <summary> /// Resolves the service runtimes into downloadable URLs. /// </summary> /// <param name="manifest">The custom manifest file</param> /// <returns>Warning text if any</returns> public string ResolveRuntimePackageUrls(string manifest = null) { ServiceSettings settings = ServiceSettings.Load(Paths.Settings); CloudRuntimeCollection availableRuntimePackages; if (!CloudRuntimeCollection.CreateCloudRuntimeCollection(out availableRuntimePackages, manifest)) { throw new ArgumentException( string.Format(Resources.ErrorRetrievingRuntimesForLocation, settings.Location)); } ServiceDefinition definition = this.Components.Definition; StringBuilder warningText = new StringBuilder(); List <CloudRuntimeApplicator> applicators = new List <CloudRuntimeApplicator>(); if (definition.WebRole != null) { foreach (WebRole role in definition.WebRole.Where(role => role.Startup != null && CloudRuntime.GetRuntimeStartupTask(role.Startup) != null)) { CloudRuntime.ClearRuntime(role); string rolePath = Path.Combine(this.Paths.RootPath, role.name); foreach (CloudRuntime runtime in CloudRuntime.CreateRuntime(role, rolePath)) { CloudRuntimePackage package; runtime.CloudServiceProject = this; if (!availableRuntimePackages.TryFindMatch(runtime, out package)) { string warning; if (!runtime.ValidateMatch(package, out warning)) { warningText.AppendFormat("{0}\r\n", warning); } } applicators.Add(CloudRuntimeApplicator.CreateCloudRuntimeApplicator( runtime, package, role)); } } } if (definition.WorkerRole != null) { foreach (WorkerRole role in definition.WorkerRole.Where(role => role.Startup != null && CloudRuntime.GetRuntimeStartupTask(role.Startup) != null)) { string rolePath = Path.Combine(this.Paths.RootPath, role.name); CloudRuntime.ClearRuntime(role); foreach (CloudRuntime runtime in CloudRuntime.CreateRuntime(role, rolePath)) { CloudRuntimePackage package; runtime.CloudServiceProject = this; if (!availableRuntimePackages.TryFindMatch(runtime, out package)) { string warning; if (!runtime.ValidateMatch(package, out warning)) { warningText.AppendFormat(warning + Environment.NewLine); } } applicators.Add(CloudRuntimeApplicator.CreateCloudRuntimeApplicator(runtime, package, role)); } } } applicators.ForEach <CloudRuntimeApplicator>(a => a.Apply()); this.Components.Save(this.Paths); return(warningText.ToString()); }
public void SetAzureServiceProjectTestsStorageTests() { using (FileSystemHelper files = new FileSystemHelper(this)) { // Create new empty settings file // PowerShellProjectPathInfo paths = new PowerShellProjectPathInfo(files.RootPath); ServiceSettings settings = new ServiceSettings(); mockCommandRuntime = new MockCommandRuntime(); setServiceProjectCmdlet.CommandRuntime = mockCommandRuntime; settings.Save(paths.Settings); settings = setServiceProjectCmdlet.SetAzureServiceProjectProcess(null, null, "companystore", paths.Settings); // Assert storageAccountName is changed // Assert.Equal<string>("companystore", settings.StorageServiceName); ServiceSettings actualOutput = mockCommandRuntime.OutputPipeline[0] as ServiceSettings; Assert.Equal<string>("companystore", settings.StorageServiceName); } }
public void SetAzureServiceProjectTestsSlotTests() { string[] slots = { DeploymentSlotType.Production, DeploymentSlotType.Staging }; foreach (string item in slots) { using (FileSystemHelper files = new FileSystemHelper(this)) { // Create new empty settings file // PowerShellProjectPathInfo paths = new PowerShellProjectPathInfo(files.RootPath); ServiceSettings settings = new ServiceSettings(); settings.Save(paths.Settings); setServiceProjectCmdlet.SetAzureServiceProjectProcess(null, item, null, paths.Settings); // Assert slot is changed // settings = ServiceSettings.Load(paths.Settings); Assert.Equal<string>(item, settings.Slot); } } }
public static void AzureServiceExists(string serviceRootPath, string scaffoldFilePath, string serviceName, ServiceSettings settings = null, WebRoleInfo[] webRoles = null, WorkerRoleInfo[] workerRoles = null, string webScaff = null, string workerScaff = null, RoleInfo[] roles = null) { ServiceComponents components = new ServiceComponents(new PowerShellProjectPathInfo(serviceRootPath)); ScaffoldingExists(serviceRootPath, scaffoldFilePath); if (webRoles != null) { for (int i = 0; i < webRoles.Length; i++) { ScaffoldingExists(Path.Combine(serviceRootPath, webRoles[i].Name), webScaff); } } if (workerRoles != null) { for (int i = 0; i < workerRoles.Length; i++) { ScaffoldingExists(Path.Combine(serviceRootPath, workerRoles[i].Name), workerScaff); } } AreEqualServiceConfiguration(components.LocalConfig, serviceName, roles); AreEqualServiceConfiguration(components.CloudConfig, serviceName, roles); IsValidServiceDefinition(components.Definition, serviceName, webRoles, workerRoles); AreEqualServiceSettings(settings ?? new ServiceSettings(), components.Settings); }
public static void AreEqualServiceSettings(ServiceSettings expected, ServiceSettings actual) { AreEqualServiceSettings(expected.Location, expected.Slot, expected.StorageServiceName, expected.Subscription, actual); }
public void SetAzureServiceProjectTestsSlotTestsInvalidFail() { using (FileSystemHelper files = new FileSystemHelper(this)) { // Create new empty settings file // PowerShellProjectPathInfo paths = new PowerShellProjectPathInfo(files.RootPath); ServiceSettings settings = new ServiceSettings(); settings.Save(paths.Settings); Testing.AssertThrows<ArgumentException>(() => setServiceProjectCmdlet.SetAzureServiceProjectProcess(null, "MyHome", null, paths.Settings), string.Format(Resources.InvalidServiceSettingElement, "Slot")); } }
public void SetAzureServiceProjectTestsUnknownLocation() { using (FileSystemHelper files = new FileSystemHelper(this)) { // Create new empty settings file // PowerShellProjectPathInfo paths = new PowerShellProjectPathInfo(files.RootPath); ServiceSettings settings = new ServiceSettings(); settings.Save(paths.Settings); string unknownLocation = "Unknown Location"; settings = setServiceProjectCmdlet.SetAzureServiceProjectProcess(unknownLocation, null, null, paths.Settings); // Assert location is changed // Assert.Equal<string>(unknownLocation, settings.Location); ServiceSettings actualOutput = mockCommandRuntime.OutputPipeline[0] as ServiceSettings; Assert.Equal<string>(unknownLocation, settings.Location); } }