1
- /**
2
- * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License. See License.txt in the project root for
4
- * license information.
5
- */
6
-
7
- package com .microsoft .azure .management .compute .samples ;
8
-
1
+ // Copyright (c) Microsoft Corporation. All rights reserved.
2
+ // Licensed under the MIT License.
3
+
4
+ package com .azure .resourcemanager .compute .samples ;
5
+
6
+ import com .azure .core .credential .TokenCredential ;
7
+ import com .azure .core .http .policy .HttpLogDetailLevel ;
8
+ import com .azure .core .management .AzureEnvironment ;
9
+ import com .azure .identity .DefaultAzureCredentialBuilder ;
10
+ import com .azure .resourcemanager .AzureResourceManager ;
11
+ import com .azure .resourcemanager .compute .models .KnownLinuxVirtualMachineImage ;
12
+ import com .azure .resourcemanager .compute .models .VirtualMachine ;
13
+ import com .azure .core .management .Region ;
14
+ import com .azure .core .management .profile .AzureProfile ;
9
15
import com .jcraft .jsch .JSchException ;
10
- import com .microsoft .azure .management .Azure ;
11
- import com .microsoft .azure .management .compute .CachingTypes ;
12
- import com .microsoft .azure .management .compute .Disk ;
13
- import com .microsoft .azure .management .compute .KnownLinuxVirtualMachineImage ;
14
- import com .microsoft .azure .management .compute .OperatingSystemStateTypes ;
15
- import com .microsoft .azure .management .compute .VirtualMachine ;
16
- import com .microsoft .azure .management .compute .VirtualMachineCustomImage ;
17
- import com .microsoft .azure .management .compute .VirtualMachineDataDisk ;
18
- import com .microsoft .azure .management .compute .VirtualMachineSizeTypes ;
19
- import com .microsoft .azure .management .resources .fluentcore .arm .Region ;
20
- import com .microsoft .azure .management .resources .fluentcore .utils .SdkContext ;
21
- import com .microsoft .azure .management .samples .SSHShell ;
22
- import com .microsoft .azure .management .samples .Utils ;
23
- import com .microsoft .rest .LogLevel ;
24
-
25
- import java .io .File ;
16
+ import com .azure .resourcemanager .compute .models .CachingTypes ;
17
+ import com .azure .resourcemanager .compute .models .Disk ;
18
+ import com .azure .resourcemanager .compute .models .OperatingSystemStateTypes ;
19
+ import com .azure .resourcemanager .compute .models .VirtualMachineCustomImage ;
20
+ import com .azure .resourcemanager .compute .models .VirtualMachineDataDisk ;
21
+ import com .azure .resourcemanager .compute .models .VirtualMachineSizeTypes ;
22
+ import com .azure .resourcemanager .samples .SSHShell ;
23
+ import com .azure .resourcemanager .samples .Utils ;
24
+
26
25
import java .io .IOException ;
27
26
import java .util .ArrayList ;
28
27
import java .util .List ;
@@ -42,22 +41,21 @@ public final class CreateVirtualMachineUsingCustomImageFromVHD {
42
41
43
42
/**
44
43
* Main function which runs the actual sample.
45
- * @param azure instance of the azure client
44
+ * @param azureResourceManager instance of the azure client
46
45
* @return true if sample runs successfully
47
46
*/
48
- public static boolean runSample (Azure azure ) {
49
- final String linuxVMName1 = SdkContext .randomResourceName ("VM1" , 10 );
50
- final String linuxVMName2 = SdkContext .randomResourceName ("VM2" , 10 );
51
- final String linuxVMName3 = SdkContext .randomResourceName ("VM3" , 10 );
52
- final String customImageName = SdkContext .randomResourceName ("img" , 10 );
53
- final String rgName = SdkContext .randomResourceName ("rgCOMV" , 15 );
54
- final String publicIPDnsLabel = SdkContext .randomResourceName ("pip" , 10 );
47
+ public static boolean runSample (AzureResourceManager azureResourceManager ) {
48
+ final String linuxVMName1 = Utils .randomResourceName (azureResourceManager , "VM1" , 10 );
49
+ final String linuxVMName2 = Utils .randomResourceName (azureResourceManager , "VM2" , 10 );
50
+ final String linuxVMName3 = Utils .randomResourceName (azureResourceManager , "VM3" , 10 );
51
+ final String customImageName = Utils .randomResourceName (azureResourceManager , "img" , 10 );
52
+ final String rgName = Utils .randomResourceName (azureResourceManager , "rgCOMV" , 15 );
53
+ final String publicIPDnsLabel = Utils .randomResourceName (azureResourceManager , "pip" , 10 );
55
54
final String userName = "tirekicker" ;
56
- // [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Serves as an example, not for deployment. Please change when using this in your code.")]
57
- final String password = "12NewPA$$w0rd!" ;
55
+ final String password = Utils .password ();
58
56
final Region region = Region .US_WEST_CENTRAL ;
59
57
60
- final String apacheInstallScript = "https://raw.githubusercontent.com/Azure/azure-libraries -for-java/master/azure-samples/src/main/resources/install_apache.sh" ;
58
+ final String apacheInstallScript = "https://raw.githubusercontent.com/Azure/azure-sdk -for-java/master/sdk/resourcemanager/ azure-resourcemanager -samples/src/main/resources/install_apache.sh" ;
61
59
final String apacheInstallCommand = "bash install_apache.sh" ;
62
60
List <String > apacheInstallScriptUris = new ArrayList <>();
63
61
apacheInstallScriptUris .add (apacheInstallScript );
@@ -69,7 +67,7 @@ public static boolean runSample(Azure azure) {
69
67
70
68
System .out .println ("Creating a un-managed Linux VM" );
71
69
72
- VirtualMachine linuxVM = azure .virtualMachines ().define (linuxVMName1 )
70
+ VirtualMachine linuxVM = azureResourceManager .virtualMachines ().define (linuxVMName1 )
73
71
.withRegion (region )
74
72
.withNewResourceGroup (rgName )
75
73
.withNewPrimaryNetwork ("10.0.0.0/28" )
@@ -129,7 +127,7 @@ public static boolean runSample(Azure azure) {
129
127
130
128
System .out .println ("Creating virtual machine custom image from un-managed disk VHDs: " + linuxVM .id ());
131
129
132
- VirtualMachineCustomImage virtualMachineCustomImage = azure .virtualMachineCustomImages ()
130
+ VirtualMachineCustomImage virtualMachineCustomImage = azureResourceManager .virtualMachineCustomImages ()
133
131
.define (customImageName )
134
132
.withRegion (region )
135
133
.withExistingResourceGroup (rgName )
@@ -158,13 +156,13 @@ public static boolean runSample(Azure azure) {
158
156
159
157
System .out .println ("Creating a Linux VM using custom image: " + virtualMachineCustomImage .id ());
160
158
161
- VirtualMachine linuxVM2 = azure .virtualMachines ().define (linuxVMName2 )
159
+ VirtualMachine linuxVM2 = azureResourceManager .virtualMachines ().define (linuxVMName2 )
162
160
.withRegion (region )
163
161
.withExistingResourceGroup (rgName )
164
162
.withNewPrimaryNetwork ("10.0.0.0/28" )
165
163
.withPrimaryPrivateIPAddressDynamic ()
166
164
.withoutPrimaryPublicIPAddress ()
167
- .withLinuxCustomImage (virtualMachineCustomImage .id ())
165
+ .withGeneralizedLinuxCustomImage (virtualMachineCustomImage .id ())
168
166
.withRootUsername (userName )
169
167
.withRootPassword (password )
170
168
.withSize (VirtualMachineSizeTypes .STANDARD_D3_V2 )
@@ -177,13 +175,13 @@ public static boolean runSample(Azure azure) {
177
175
// Create another Linux VM using custom image and configure the data disks from image and
178
176
// add another data disk
179
177
180
- VirtualMachine linuxVM3 = azure .virtualMachines ().define (linuxVMName3 )
178
+ VirtualMachine linuxVM3 = azureResourceManager .virtualMachines ().define (linuxVMName3 )
181
179
.withRegion (region )
182
180
.withExistingResourceGroup (rgName )
183
181
.withNewPrimaryNetwork ("10.0.0.0/28" )
184
182
.withPrimaryPrivateIPAddressDynamic ()
185
183
.withoutPrimaryPublicIPAddress ()
186
- .withLinuxCustomImage (virtualMachineCustomImage .id ())
184
+ .withGeneralizedLinuxCustomImage (virtualMachineCustomImage .id ())
187
185
.withRootUsername (userName )
188
186
.withRootPassword (password )
189
187
.withNewDataDiskFromImage (1 , 200 , CachingTypes .READ_WRITE )
@@ -208,15 +206,15 @@ public static boolean runSample(Azure azure) {
208
206
System .out .println ("Getting OS and data disks SAS Uris" );
209
207
210
208
// OS Disk SAS Uri
211
- Disk osDisk = azure .disks ().getById (linuxVM3 .osDiskId ());
209
+ Disk osDisk = azureResourceManager .disks ().getById (linuxVM3 .osDiskId ());
212
210
213
211
String osDiskSasUri = osDisk .grantAccess (24 * 60 );
214
212
215
213
System .out .println ("OS disk SAS Uri: " + osDiskSasUri );
216
214
217
215
// Data Disks SAS Uri
218
216
for (VirtualMachineDataDisk disk : linuxVM3 .dataDisks ().values ()) {
219
- Disk dataDisk = azure .disks ().getById (disk .id ());
217
+ Disk dataDisk = azureResourceManager .disks ().getById (disk .id ());
220
218
String dataDiskSasUri = dataDisk .grantAccess (24 * 60 );
221
219
System .out .println (String .format ("Data disk (lun: %d) SAS Uri: %s" , disk .lun (), dataDiskSasUri ));
222
220
}
@@ -225,25 +223,21 @@ public static boolean runSample(Azure azure) {
225
223
// Deleting the custom image
226
224
System .out .println ("Deleting custom Image: " + virtualMachineCustomImage .id ());
227
225
228
- azure .virtualMachineCustomImages ().deleteById (virtualMachineCustomImage .id ());
226
+ azureResourceManager .virtualMachineCustomImages ().deleteById (virtualMachineCustomImage .id ());
229
227
230
228
System .out .println ("Deleted custom image" );
231
229
return true ;
232
- } catch (Exception f ) {
233
- System .out .println (f .getMessage ());
234
- f .printStackTrace ();
235
230
} finally {
236
231
try {
237
232
System .out .println ("Deleting Resource Group: " + rgName );
238
- azure .resourceGroups ().beginDeleteByName (rgName );
233
+ azureResourceManager .resourceGroups ().beginDeleteByName (rgName );
239
234
System .out .println ("Deleted Resource Group: " + rgName );
240
235
} catch (NullPointerException npe ) {
241
236
System .out .println ("Did not create any resources in Azure. No clean up is necessary" );
242
237
} catch (Exception g ) {
243
238
g .printStackTrace ();
244
239
}
245
240
}
246
- return false ;
247
241
}
248
242
249
243
/**
@@ -255,17 +249,21 @@ public static void main(String[] args) {
255
249
//=============================================================
256
250
// Authenticate
257
251
258
- final File credFile = new File (System .getenv ("AZURE_AUTH_LOCATION" ));
252
+ final AzureProfile profile = new AzureProfile (AzureEnvironment .AZURE );
253
+ final TokenCredential credential = new DefaultAzureCredentialBuilder ()
254
+ .authorityHost (profile .getEnvironment ().getActiveDirectoryEndpoint ())
255
+ .build ();
259
256
260
- Azure azure = Azure .configure ()
261
- .withLogLevel (LogLevel .BODY )
262
- .authenticate (credFile )
263
- .withDefaultSubscription ();
257
+ AzureResourceManager azureResourceManager = AzureResourceManager
258
+ .configure ()
259
+ .withLogLevel (HttpLogDetailLevel .BASIC )
260
+ .authenticate (credential , profile )
261
+ .withDefaultSubscription ();
264
262
265
263
// Print selected subscription
266
- System .out .println ("Selected subscription: " + azure .subscriptionId ());
264
+ System .out .println ("Selected subscription: " + azureResourceManager .subscriptionId ());
267
265
268
- runSample (azure );
266
+ runSample (azureResourceManager );
269
267
} catch (Exception e ) {
270
268
System .out .println (e .getMessage ());
271
269
e .printStackTrace ();
0 commit comments