Skip to content

Commit 1e4aae8

Browse files
committed
Release 1.30.0
1 parent a8bed25 commit 1e4aae8

File tree

3 files changed

+62
-30
lines changed

3 files changed

+62
-30
lines changed

Diff for: README.md

+31-28
Original file line numberDiff line numberDiff line change
@@ -4,47 +4,50 @@ languages:
44
- java
55
products:
66
- azure
7-
- azure-virtual-machines
8-
description: "Making use of the reactive pattern in a complex virtual machine creation scenario"
9-
urlFragment: compute-java-create-vms-async-tracking-related-resources
7+
extensions:
8+
- services: Compute
9+
- platforms: java
1010
---
1111

12-
# Create Virtual Machines Async Tracking Related Resources (Java)
12+
# Getting Started with Compute - Create Virtual Machines Async Tracking Related Resources - in Java #
1313

14-
Making use of the reactive pattern in a complex virtual machine creation scenario
1514

16-
This sample shows how the reactive pattern (RXJava's Observables) supported by the Azure Libraries for Java in their asynchronous API
17-
can be used for handling some more complex real world scenarios involving distributed computation in the cloud with relative ease.
18-
The specific example here shows how Observables enable real time tracking of the creation of many virtual machines in parallel and
19-
all their related resources. Since Azure does not support transactional creation of virtual machines (no automatic rollback in case
20-
of failure), this could be useful for example for the purposes of deleting "orphaned" resources, whenever the creation of some other
21-
resources fails. Or simply showing real-time progress in some UI to the end user.
22-
23-
The sample goes through the following steps:
24-
25-
1. Define a number of virtual machines and their related required resources (such as virtual networks, etc)
26-
2. Start the parallel creation of those virtual machines with observer logic keeping track of the created resources and reporting
27-
them on the console in real time
28-
3. Clean up the "orphaned" resources, i.e. those that were created successfully but whose associated virtual machine
29-
failed to be created for some reason.
15+
Making use of the reactive pattern in a complex virtual machine creation scenario
16+
17+
This sample shows how the reactive pattern (RXJava's Observables) supported by the Azure Libraries for Java in their asynchronous API
18+
can be used for handling some more complex real world scenarios involving distributed computation in the cloud with relative ease.
19+
The specific example here shows how Observables enable real time tracking of the creation of many virtual machines in parallel and
20+
all their related resources. Since Azure does not support transactional creation of virtual machines (no automatic rollback in case
21+
of failure), this could be useful for example for the purposes of deleting "orphaned" resources, whenever the creation of some other
22+
resources fails. Or simply showing real-time progress in some UI to the end user.
23+
24+
The sample goes through the following steps:
25+
26+
1. Define a number of virtual machines and their related required resources (such as virtual networks, etc)
27+
2. Start the parallel creation of those virtual machines with observer logic keeping track of the created resources and reporting
28+
them on the console in real time
29+
3. Clean up the "orphaned" resources, i.e. those that were created successfully but whose associated virtual machine
30+
failed to be created for some reason.
3031

3132

32-
## Running this sample
33+
## Running this Sample ##
3334

3435
To run this sample:
3536

3637
Set the environment variable `AZURE_AUTH_LOCATION` with the full path for an auth file. See [how to create an auth file](https://github.com/Azure/azure-libraries-for-java/blob/master/AUTH.md).
3738

38-
```bash
39-
git clone https://github.com/Azure-Samples/compute-java-create-vms-async-tracking-related-resources.git
40-
cd compute-java-create-vms-async-tracking-related-resources
41-
mvn clean compile exec:java
42-
```
39+
git clone https://github.com/Azure-Samples/compute-java-create-vms-async-tracking-related-resources.git
4340

44-
## More information
41+
cd compute-java-create-vms-async-tracking-related-resources
42+
43+
mvn clean compile exec:java
44+
45+
## More information ##
4546

4647
[http://azure.com/java](http://azure.com/java)
4748

48-
If you don't have a Microsoft Azure subscription you can get a FREE trial account [here](http://go.microsoft.com/fwlink/?LinkId=330212).
49+
If you don't have a Microsoft Azure subscription you can get a FREE trial account [here](http://go.microsoft.com/fwlink/?LinkId=330212)
50+
51+
---
4952

50-
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [[email protected]](mailto:[email protected]) with any additional questions or comments.
53+
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [[email protected]](mailto:[email protected]) with any additional questions or comments.

Diff for: pom.xml

+11-1
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,22 @@
5353
<dependency>
5454
<groupId>com.microsoft.azure</groupId>
5555
<artifactId>azure</artifactId>
56-
<version>1.24.1</version>
56+
<version>1.30.0</version>
5757
</dependency>
5858
<dependency>
5959
<groupId>commons-net</groupId>
6060
<artifactId>commons-net</artifactId>
6161
<version>3.3</version>
6262
</dependency>
63+
<dependency>
64+
<groupId>commons-lang</groupId>
65+
<artifactId>commons-lang</artifactId>
66+
<version>2.6</version>
67+
</dependency>
68+
<dependency>
69+
<groupId>org.apache.commons</groupId>
70+
<artifactId>commons-lang3</artifactId>
71+
<version>3.7</version>
72+
</dependency>
6373
</dependencies>
6474
</project>

Diff for: src/main/java/com/microsoft/azure/management/samples/Utils.java

+20-1
Original file line numberDiff line numberDiff line change
@@ -739,6 +739,24 @@ public static void print(LoadBalancer resource) {
739739
}
740740
}
741741

742+
// Show HTTPS probes
743+
info.append("\n\tHTTPS probes: ")
744+
.append(resource.httpsProbes().size());
745+
for (LoadBalancerHttpProbe probe : resource.httpsProbes().values()) {
746+
info.append("\n\t\tProbe name: ").append(probe.name())
747+
.append("\n\t\t\tPort: ").append(probe.port())
748+
.append("\n\t\t\tInterval in seconds: ").append(probe.intervalInSeconds())
749+
.append("\n\t\t\tRetries before unhealthy: ").append(probe.numberOfProbes())
750+
.append("\n\t\t\tHTTPS request path: ").append(probe.requestPath());
751+
752+
// Show associated load balancing rules
753+
info.append("\n\t\t\tReferenced from load balancing rules: ")
754+
.append(probe.loadBalancingRules().size());
755+
for (LoadBalancingRule rule : probe.loadBalancingRules().values()) {
756+
info.append("\n\t\t\t\tName: ").append(rule.name());
757+
}
758+
}
759+
742760
// Show load balancing rules
743761
info.append("\n\tLoad balancing rules: ")
744762
.append(resource.loadBalancingRules().size());
@@ -994,7 +1012,7 @@ public static void print(AppServicePlan resource) {
9941012
*/
9951013
public static void print(WebAppBase resource) {
9961014
StringBuilder builder = new StringBuilder().append("Web app: ").append(resource.id())
997-
.append("Name: ").append(resource.name())
1015+
.append("\n\tName: ").append(resource.name())
9981016
.append("\n\tState: ").append(resource.state())
9991017
.append("\n\tResource group: ").append(resource.resourceGroupName())
10001018
.append("\n\tRegion: ").append(resource.region())
@@ -1377,6 +1395,7 @@ public static String createRandomName(String namePrefix) {
13771395
*/
13781396
public static void createCertificate(String certPath, String pfxPath,
13791397
String alias, String password, String cnName) throws Exception {
1398+
SdkContext.prepareFileLocation(new File(pfxPath), new File(certPath));
13801399
if (new File(pfxPath).exists()) {
13811400
return;
13821401
}

0 commit comments

Comments
 (0)