public void Install(RunningDeployment deployment) { var package = deployment.Variables.Get(SpecialVariables.Action.Azure.CloudServicePackagePath); Log.Info("Uploading package to Azure blob storage: '{0}'", package); var packageHash = HashCalculator.Hash(package); var nugetPackageVersion = deployment.Variables.Get(SpecialVariables.Package.NuGetPackageVersion); var uploadedFileName = Path.ChangeExtension(Path.GetFileName(package), "." + nugetPackageVersion + "_" + packageHash + ".cspkg"); var credentials = credentialsFactory.GetCredentials( deployment.Variables.Get(SpecialVariables.Action.Azure.SubscriptionId), deployment.Variables.Get(SpecialVariables.Action.Azure.CertificateThumbprint), deployment.Variables.Get(SpecialVariables.Action.Azure.CertificateBytes) ); var storageAccountName = deployment.Variables.Get(SpecialVariables.Action.Azure.StorageAccountName); var storageEndpointSuffix = deployment.Variables.Get(SpecialVariables.Action.Azure.StorageEndPointSuffix, DefaultVariables.StorageEndpointSuffix); var defaultServiceManagementEndpoint = deployment.Variables.Get(SpecialVariables.Action.Azure.ServiceManagementEndPoint, DefaultVariables.ServiceManagementEndpoint); var uploadedUri = azurePackageUploader.Upload(credentials, storageAccountName, package, uploadedFileName, storageEndpointSuffix, defaultServiceManagementEndpoint); Log.SetOutputVariable(SpecialVariables.Action.Azure.UploadedPackageUri, uploadedUri.ToString(), deployment.Variables); Log.Info("Package uploaded to " + uploadedUri.ToString()); }
void UpdateConfigurationWithCurrentInstanceCount(XContainer localConfigurationFile, string configurationFileName, VariableDictionary variables) { if (!variables.GetFlag(SpecialVariables.Action.Azure.UseCurrentInstanceCount)) { return; } var serviceName = variables.Get(SpecialVariables.Action.Azure.CloudServiceName); var slot = (DeploymentSlot)Enum.Parse(typeof(DeploymentSlot), variables.Get(SpecialVariables.Action.Azure.Slot)); var remoteConfigurationFile = configurationRetriever.GetConfiguration( credentialsFactory.GetCredentials(variables.Get(SpecialVariables.Action.Azure.SubscriptionId), variables.Get(SpecialVariables.Action.Azure.CertificateThumbprint), variables.Get(SpecialVariables.Action.Azure.CertificateBytes)), serviceName, slot); if (remoteConfigurationFile == null) { Log.Info("There is no current deployment of service '{0}' in slot '{1}', so existing instance counts will not be imported.", serviceName, slot); return; } var rolesByCount = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase); Log.Verbose("Local instance counts (from " + Path.GetFileName(configurationFileName) + "): "); WithInstanceCounts(localConfigurationFile, (roleName, attribute) => { Log.Verbose(" - " + roleName + " = " + attribute.Value); string value; if (rolesByCount.TryGetValue(roleName, out value)) { attribute.SetValue(value); } }); Log.Verbose("Remote instance counts: "); WithInstanceCounts(remoteConfigurationFile, (roleName, attribute) => { rolesByCount[roleName] = attribute.Value; Log.Verbose(" - " + roleName + " = " + attribute.Value); }); Log.Verbose("Replacing local instance count settings with remote settings: "); WithInstanceCounts(localConfigurationFile, (roleName, attribute) => { string value; if (!rolesByCount.TryGetValue(roleName, out value)) { return; } attribute.SetValue(value); Log.Verbose(" - " + roleName + " = " + attribute.Value); }); }
public void SetUp() { fileSystem = Substitute.For<ICalamariFileSystem>(); packageUploader = Substitute.For<IAzurePackageUploader>(); credentialsFactory = Substitute.For<ISubscriptionCloudCredentialsFactory>(); credentialsFactory.GetCredentials(azureSubscriptionId, certificateThumbprint, certificateBytes) .Returns(new FakeSubscriptionCloudCredentials(azureSubscriptionId)); variables = new VariableDictionary(); variables.Set(SpecialVariables.OriginalPackageDirectoryPath, stagingDirectory); variables.Set(SpecialVariables.Action.Azure.SubscriptionId, azureSubscriptionId); variables.Set(SpecialVariables.Action.Azure.CertificateThumbprint, certificateThumbprint); variables.Set(SpecialVariables.Action.Azure.CertificateBytes, certificateBytes); variables.Set(SpecialVariables.Action.Azure.StorageAccountName, storageAccountName); deployment = new RunningDeployment(stagingDirectory, variables); convention = new UploadAzureCloudServicePackageConvention(fileSystem, packageUploader, credentialsFactory); }
public void SetUp() { fileSystem = Substitute.For <ICalamariFileSystem>(); packageUploader = Substitute.For <IAzurePackageUploader>(); credentialsFactory = Substitute.For <ISubscriptionCloudCredentialsFactory>(); credentialsFactory.GetCredentials(azureSubscriptionId, certificateThumbprint, certificateBytes) .Returns(new FakeSubscriptionCloudCredentials(azureSubscriptionId)); variables = new CalamariVariableDictionary(); variables.Set(SpecialVariables.OriginalPackageDirectoryPath, stagingDirectory); variables.Set(SpecialVariables.Action.Azure.SubscriptionId, azureSubscriptionId); variables.Set(SpecialVariables.Action.Azure.CertificateThumbprint, certificateThumbprint); variables.Set(SpecialVariables.Action.Azure.CertificateBytes, certificateBytes); variables.Set(SpecialVariables.Action.Azure.StorageAccountName, storageAccountName); deployment = new RunningDeployment(stagingDirectory, variables); convention = new UploadAzureCloudServicePackageConvention(fileSystem, packageUploader, credentialsFactory); }
public void SetUp() { result = null; fileSystem = Substitute.For <ICalamariFileSystem>(); credentialsFactory = Substitute.For <ISubscriptionCloudCredentialsFactory>(); configurationRetriever = Substitute.For <IAzureCloudServiceConfigurationRetriever>(); variables = new CalamariVariableDictionary(); variables.Set(SpecialVariables.OriginalPackageDirectoryPath, StagingDirectory); deployment = new RunningDeployment(StagingDirectory, variables); variables.Set(SpecialVariables.Action.Azure.SubscriptionId, AzureSubscriptionId); variables.Set(SpecialVariables.Action.Azure.CertificateThumbprint, CertificateThumbprint); variables.Set(SpecialVariables.Action.Azure.CertificateBytes, CertificateBytes); variables.Set(SpecialVariables.Action.Azure.CloudServiceName, CloudServiceName); variables.Set(SpecialVariables.Action.Azure.Slot, DeploymentSlot.ToString()); credentialsFactory.GetCredentials(AzureSubscriptionId, CertificateThumbprint, CertificateBytes) .Returns(new FakeSubscriptionCloudCredentials(AzureSubscriptionId)); convention = new ConfigureAzureCloudServiceConvention(fileSystem, credentialsFactory, configurationRetriever); }
public void SetUp() { result = null; fileSystem = Substitute.For<ICalamariFileSystem>(); credentialsFactory = Substitute.For<ISubscriptionCloudCredentialsFactory>(); configurationRetriever = Substitute.For<IAzureCloudServiceConfigurationRetriever>(); variables = new CalamariVariableDictionary(); variables.Set(SpecialVariables.OriginalPackageDirectoryPath, StagingDirectory); deployment = new RunningDeployment(StagingDirectory, variables); variables.Set(SpecialVariables.Action.Azure.SubscriptionId, AzureSubscriptionId); variables.Set(SpecialVariables.Action.Azure.CertificateThumbprint, CertificateThumbprint); variables.Set(SpecialVariables.Action.Azure.CertificateBytes, CertificateBytes); variables.Set(SpecialVariables.Action.Azure.CloudServiceName, CloudServiceName); variables.Set(SpecialVariables.Action.Azure.Slot, DeploymentSlot.ToString()); credentialsFactory.GetCredentials(AzureSubscriptionId, CertificateThumbprint, CertificateBytes) .Returns(new FakeSubscriptionCloudCredentials(AzureSubscriptionId)); convention = new ConfigureAzureCloudServiceConvention(fileSystem, credentialsFactory, configurationRetriever); }