Skip to content

Commit 1c01895

Browse files
committed
Update Fluent to support an overload for creating a cloud service with custom package and configuration.
1 parent 8fb1ba6 commit 1c01895

File tree

7 files changed

+48
-19
lines changed

7 files changed

+48
-19
lines changed

Elastacloud.AzureManagement.Fluent.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
33
<metadata>
44
<id>Elastacloud.AzureManagement.Fluent</id>
5-
<version>0.5.1.2</version>
5+
<version>0.5.1.3</version>
66
<title>Azure Fluent Management Library</title>
77
<authors>Elastacloud Limited (@azurecoder,@andybareweb,@isaac_abraham)</authors>
88
<owners>Elastacloud Limited</owners>

Elastacloud.AzureManagement.Fluent/Clients/ServiceClient.cs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@
77
* Email: [email protected] *
88
************************************************************************************************************/
99

10-
using System;
11-
using System.Collections.Generic;
12-
using System.Linq;
13-
using System.Security.Cryptography.X509Certificates;
1410
using Elastacloud.AzureManagement.Fluent.Clients.Interfaces;
1511
using Elastacloud.AzureManagement.Fluent.Commands.Certificates;
1612
using Elastacloud.AzureManagement.Fluent.Commands.Services;
@@ -20,6 +16,10 @@
2016
using Elastacloud.AzureManagement.Fluent.Services;
2117
using Elastacloud.AzureManagement.Fluent.Services.Classes;
2218
using Elastacloud.AzureManagement.Fluent.Types;
19+
using System;
20+
using System.Collections.Generic;
21+
using System.Linq;
22+
using System.Security.Cryptography.X509Certificates;
2323

2424
namespace Elastacloud.AzureManagement.Fluent.Clients
2525
{
@@ -272,13 +272,15 @@ public void DeployServiceToAzure(PaaSDeploymentSettings settings)
272272
manager.GetDeploymentManager()
273273
.AddCertificate(ManagementCertificate)
274274
.ForNewDeployment(settings.CloudServiceName)
275-
.SetCspkgEndpoint(settings.CspkgStorageEndpoint)
276-
.WithNewHostedService(settings.CscfgConfig)
275+
.SetCspkgEndpoint(settings.CspkgStorageEndpoint, settings.CscfgConfig)
276+
.WithNewHostedService(settings.CloudServiceName)
277277
.WithStorageAccount(settings.StorageAccountName)
278278
.AddEnvironment(DeploymentSlot.Production)
279279
.AddLocation(settings.Location)
280280
.AddParams(DeploymentParams.StartImmediately)
281-
.WaitUntilAllRoleInstancesAreRunning();
281+
.WaitUntilAllRoleInstancesAreRunning()
282+
.Go()
283+
.Commit();
282284
}
283285

284286
private CertificateGenerator BuildCertGenerator(string name, string password)

Elastacloud.AzureManagement.Fluent/Fluent API/Services/Classes/BuildActivity.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@
77
* Email: [email protected] *
88
************************************************************************************************************/
99

10+
using Elastacloud.AzureManagement.Fluent.Types;
1011
using System;
1112
using System.Diagnostics;
1213
using System.IO;
13-
using Elastacloud.AzureManagement.Fluent.Types;
14+
using System.Xml.Linq;
1415

1516
namespace Elastacloud.AzureManagement.Fluent.Services.Classes
1617
{
@@ -64,6 +65,14 @@ IHostedServiceActivity IBuildActivity.SetCspkgEndpoint(string uriEndpoint, strin
6465
return _manager;
6566
}
6667

68+
public IHostedServiceActivity SetCspkgEndpoint(Uri uriEndpoint, XDocument configuration)
69+
{
70+
UseExistingBuild = true;
71+
_manager.CspkgEndpoint = uriEndpoint.ToString();
72+
_manager.CscfgFileInstance = CscfgFile.GetAdHocInstance(configuration);
73+
return _manager;
74+
}
75+
6776
/// <summary>
6877
/// Creates a buildactivity if one does not already exist and sets the ccproj file for msbuild
6978
/// </summary>
@@ -209,5 +218,7 @@ internal Process StartMsBuildProcess()
209218
msbuildProcess.WaitForExit();
210219
return msbuildProcess;
211220
}
221+
222+
212223
}
213224
}

Elastacloud.AzureManagement.Fluent/Fluent API/Services/DeploymentManager.cs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@
77
* Email: [email protected] *
88
************************************************************************************************************/
99

10+
using Elastacloud.AzureManagement.Fluent.Commands.Services;
11+
using Elastacloud.AzureManagement.Fluent.Helpers;
12+
using Elastacloud.AzureManagement.Fluent.Helpers.PublishSettings;
13+
using Elastacloud.AzureManagement.Fluent.Services.Classes;
14+
using Elastacloud.AzureManagement.Fluent.Types;
1015
using System;
1116
using System.Collections.Generic;
1217
using System.Linq;
1318
using System.Security.Cryptography.X509Certificates;
1419
using System.Text;
1520
using System.Xml.Linq;
16-
using Elastacloud.AzureManagement.Fluent.Commands.Services;
17-
using Elastacloud.AzureManagement.Fluent.Helpers;
18-
using Elastacloud.AzureManagement.Fluent.Helpers.PublishSettings;
19-
using Elastacloud.AzureManagement.Fluent.Services.Classes;
20-
using Elastacloud.AzureManagement.Fluent.Types;
2121

2222
namespace Elastacloud.AzureManagement.Fluent.Services
2323
{
@@ -596,6 +596,14 @@ IHostedServiceActivity IBuildActivity.SetCspkgEndpoint(string uriEndpoint, strin
596596
return this;
597597
}
598598

599+
public IHostedServiceActivity SetCspkgEndpoint(Uri uriEndpoint, XDocument configuration)
600+
{
601+
if (BuildActivity == null)
602+
BuildActivity = new BuildActivity(this);
603+
((IBuildActivity)BuildActivity).SetCspkgEndpoint(uriEndpoint, configuration);
604+
return this;
605+
}
606+
599607
/// <summary>
600608
/// Sets the root path to .ccproj
601609
/// </summary>
@@ -625,6 +633,5 @@ IServiceCertificate IRemoteDesktop.WithUsernameAndPassword(string username, stri
625633
}
626634

627635
#endregion
628-
629636
}
630637
}

Elastacloud.AzureManagement.Fluent/Fluent API/Services/IBuildActivity.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
* Email: [email protected] *
88
************************************************************************************************************/
99

10+
using System;
11+
using System.Xml.Linq;
1012
namespace Elastacloud.AzureManagement.Fluent.Services
1113
{
1214
/// <summary>
@@ -19,6 +21,13 @@ public interface IBuildActivity
1921
/// </summary>
2022
IHostedServiceActivity SetCspkgEndpoint(string uriEndpoint, string cscfgFilePath = null);
2123

24+
/// <summary>
25+
/// Sets the cspkg endpoint in blob storage
26+
/// <param name="uriEndpoint">URI to the cloud package in blob storage.</param>
27+
/// <param name="configuration">The .cscfg configuration.</param>
28+
/// </summary>
29+
IHostedServiceActivity SetCspkgEndpoint(Uri uriEndpoint, XDocument configuration);
30+
2231
/// <summary>
2332
/// Sets the build root directory
2433
/// </summary>

Elastacloud.AzureManagement.Fluent/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,5 @@
4949

5050
// Make internal interfaces visible to Moq and the testing library
5151
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2"), InternalsVisibleTo("Elastacloud.AzureManagement.Fluent.Tests")]
52-
[assembly: AssemblyVersion("0.5.1.2")]
53-
[assembly: AssemblyFileVersion("0.5.1.2")]
52+
[assembly: AssemblyVersion("0.5.1.3")]
53+
[assembly: AssemblyFileVersion("0.5.1.3")]

Elastacloud.AzureManagement.Fluent/Types/RoleInstanceStatus.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ namespace Elastacloud.AzureManagement.Fluent.Types
1111
public enum RoleInstanceStatus
1212
{
1313
Unknown,
14-
RoleStateUnknown,
1514
CreatingVM,
1615
StartingVM,
1716
CreatingRole,
@@ -29,7 +28,8 @@ public enum RoleInstanceStatus
2928
UnresponsiveRole,
3029
StoppedDeallocated,
3130
Preparing,
32-
Provisioning
31+
Provisioning,
32+
RoleStateUnknown,
3333
}
3434

3535

0 commit comments

Comments
 (0)